Hay algunos parámetros en la configuración de la fuente de datos que no entiendo del todo. No hablaré de los que no entiendo. Aquí hay dos que he usado.
En primer lugar, no puede faltar el controlador mysql JDBC 5.1 en la ruta apache-tomcat-6.0.16lib.
La primera es preparar apache-tomcat-6.0.16confcontext.xml en TomCat de la siguiente manera:
código xml
<?xml version='1.0' codificación='utf-8'?>
<Contexto>
<Nombre del recurso="jdbc/myTest" auth="Contenedor"
tipo="javax.sql.DataSource" nombre de usuario="raíz" contraseña=""
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://192.168.0.68:3306/puntos" />
<WatchedResource>WEB-INF/web.xml</WatchedResource>
</Contexto>
<?xml version='1.0' codificación='utf-8'?>
<Contexto>
<Nombre del recurso="jdbc/myTest" auth="Contenedor"
tipo="javax.sql.DataSource" nombre de usuario="raíz" contraseña=""
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://192.168.0.68:3306/puntos" />
<WatchedResource>WEB-INF/web.xml</WatchedResource>
</Contexto>
nombre es el nombre de la fuente de datos. El formato es: "jdbc/nombre de la fuente de datos".
No hace falta decir nombre de usuario, contraseña. La contraseña aquí está vacía.
La URL es la misma que la configuración del controlador JDBC.
http://bizhi.knowsky.com/
El segundo es configurar .WebRoot/META-INF/context.xml en el proyecto:
código xml
<?xml versión="1.0" codificación="UTF-8"?>
<Contexto>
<Nombre del recurso="jdbc/test" auth="Contenedor"
tipo="javax.sql.DataSource" nombre de usuario="raíz" contraseña=""
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://192.168.0.68:3306/puntos" />
</Contexto>
<?xml versión="1.0" codificación="UTF-8"?>
<Contexto>
<Nombre del recurso="jdbc/test" auth="Contenedor"
tipo="javax.sql.DataSource" nombre de usuario="raíz" contraseña=""
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://192.168.0.68:3306/puntos" />
</Context>Es casi lo mismo que en Tomcat. Tenga en cuenta que usted mismo crea context.xml en META-INF.
Uso de la fuente de datos:
código java
lista = nueva ArrayList();
Conexión de conexión = nula;
Fuente de datos ds = nulo;
Declaración preparada pst = nulo;
Conjunto de resultados primero = nulo;
String sqlStr = "insertar en valores `usuario`(`userNo`,`userName`) (?,?)";
intentar {
ContextoInicial ctx = nuevoContextoInicial();
ds = (Fuente de datos) ctx.lookup("java:comp/env/jdbc/test");
conexión = ds.getConnection();
pst = conexión.prepareStatement(sqlStr);
pst.clearBatch();
para (int i = 0; i < 4; i++) {
pst.setString(1, "bueno" + i);
pst.setString(2, "isw " + i);
// Utilice lotes para transferir múltiples operaciones SQL a la base de datos como una unidad.
// jdbc.batch_size en Hibernate se recomienda en línea a los 30
pst.addBatch();
}
pst.executeBatch();
primero = pst.executeQuery("seleccionar * del usuario");
// Fetch Size es para establecer el número de registros obtenidos de la base de datos cada vez que prepareStatement de JDBC lee datos.
// jdbc.fetch_size en Hibernate se recomienda en línea a 50
primero.setFetchSize(50);
mientras (primero.siguiente()) {
System.out.println(rst.getString(3));
lista.add(rst.getString(3));
}
} captura (Excepción e) {
e.printStackTrace();
devolver ERROR;
} finalmente {
intentar {
primero.cerrar();
pst.cerrar();
conexión.close();
} captura (SQLException e) {
e.printStackTrace();
}
}
lista = nueva ArrayList();
Conexión de conexión = nula;
Fuente de datos ds = nulo;
Declaración preparada pst = nulo;
Conjunto de resultados primero = nulo;
String sqlStr = "insertar en valores `usuario`(`userNo`,`userName`) (?,?)";
intentar {
ContextoInicial ctx = nuevoContextoInicial();
ds = (Fuente de datos) ctx.lookup("java:comp/env/jdbc/test");
conexión = ds.getConnection();
pst = conexión.prepareStatement(sqlStr);
pst.clearBatch();
para (int i = 0; i < 4; i++) {
pst.setString(1, "bueno" + i);
pst.setString(2, "isw " + i);
// Utilice lotes para transferir múltiples operaciones SQL a la base de datos como una unidad.
// jdbc.batch_size en Hibernate se recomienda en línea a los 30
pst.addBatch();
}
pst.executeBatch();
primero = pst.executeQuery("seleccionar * del usuario");
// Fetch Size es para establecer el número de registros obtenidos de la base de datos cada vez que prepareStatement de JDBC lee datos.
// jdbc.fetch_size en Hibernate se recomienda en línea a 50
primero.setFetchSize(50);
mientras (primero.siguiente()) {
System.out.println(rst.getString(3));
lista.add(rst.getString(3));
}
} captura (Excepción e) {
e.printStackTrace();
devolver ERROR;
} finalmente {
intentar {
primero.cerrar();
pst.cerrar();
conexión.close();
} captura (SQLException e) {
e.printStackTrace();
}
} Permítanme hablar sobre esto anteriormente. Todos dicen que Hibernate realiza operaciones de base de datos de manera más eficiente que JDBC manual. Esto se debe a que tiene algunas optimizaciones para las consultas. Puede que Fetch Size y Batch sean solo la punta del iceberg. .
Con respecto al tamaño de Fectch, el blog debajo de Batch ofrece una explicación más detallada.
http://xuganggogo.javaeye.com/blog/440516
El uso de fuentes de datos en Hibernate hibernate.cfg.xml
código xml
<?xml version='1.0' codificación='UTF-8'?>
<!DOCTYPE configuración-hibernación PUBLIC
"-//Hibernar/Configuración de hibernación DTD 3.0//ES"
" http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd ">
<!-- Generado por MyEclipse Hibernate Tools -->.
<configuración-hibernación>
<fábrica de sesiones>
<!-- La siguiente es la configuración de la fuente de datos -->
<nombre de propiedad="conexión.fuente de datos">
java:comp/env/jdbc/prueba
</propiedad>
<!-- Dialecto de base de datos -->
<nombre de propiedad="dialecto">
org.hibernate.dialect.MySQLDialect
</propiedad>
<nombre de propiedad="jdbc.batch_size">25</property>
<nombre de propiedad="jdbc.fetch_size">50</property>
<recurso de mapeo="com/isw2/entity/UserBean.hbm.xml" />
</sesión-fábrica>
</hibernación-configuración>
<?xml version='1.0' codificación='UTF-8'?>
<!DOCTYPE configuración-hibernación PUBLIC
"-//Hibernar/Configuración de hibernación DTD 3.0//ES"
" http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd ">
<!-- Generado por MyEclipse Hibernate Tools -->.
<configuración-hibernación>
<fábrica de sesiones>
<!-- La siguiente es la configuración de la fuente de datos -->
<nombre de propiedad="conexión.fuente de datos">
java:comp/env/jdbc/prueba
</propiedad>
<!-- Dialecto de base de datos -->
<nombre de propiedad="dialecto">
org.hibernate.dialect.MySQLDialect
</propiedad>
<nombre de propiedad="jdbc.batch_size">25</property>
<nombre de propiedad="jdbc.fetch_size">50</property>
<recurso de mapeo="com/isw2/entity/UserBean.hbm.xml" />
</sesión-fábrica>
</hibernación-configuración>
La razón por la que muchos de nosotros nos damos por vencidos a mitad de camino y no nos sentimos dispuestos a hacerlo en la vida es simplemente porque no nos atenemos a nuestros ideales. Mientras no nos rindamos, nuestros ideales eventualmente se harán realidad.