Cuando se trabaja en proyectos, la selección técnica es muy importante. El método subyacente afecta directamente nuestra velocidad de acceso y modificación de Big Data. Hay muchos marcos de ORM excelentes en Java, como JPA, Hibernate, etc. Como dijimos, los marcos tienen los beneficios de los marcos y, por supuesto, hay algunas áreas que se pueden mejorar. En este momento, necesitamos reencapsular la arquitectura subyacente para diferentes necesidades comerciales y diferentes visitas para admitir la adición, eliminación y modificación de Big Data.
Código:
import java.io.*; import java.sql.*; import java.util.logging.level; import java.util.logging.logger; import javax.servlet.jsp.jstl.sql.*; / ** * dbhelper * @author qmx * */ public class dbhelper {private String sql; // La instrucción SQL se pasará public void setSql (String sql) {this.sql = sql; } Lista privada SQLValues; // Parámetros del sistema de la declaración SQL public void setSqlValues (List sqlValues) {this.sqlValues = sqlValues; } Lista privada <Int> SQLValue; // Parámetros del sistema de la declaración SQL public void setSqlValue (List <List> SQLValues) {this.sqlvalue = sqlValues; } Connectación privada Con; // objeto de conexión public void setCon (conexión con) {this.con = con; } public dbHelper () {this.con = getConnection (); // Asignar valor inicial al objeto de conexión}/*** Obtener conexión de base de datos* @return*/private Connection getConnection () {String Driver_class = null; String Driver_url = NULL; Cadena database_user = null; String database_password = null; Pruebe {inputStream fis = this.getClass (). getResourceASStream ("/db.properties"); // Cargar el archivo de configuración de la base de datos en propiedades de memoria p = nuevas propiedades (); p.load (fis); driver_class = p.getProperty ("Driver_class"); // Obtenga el archivo de configuración de la base de datos Driver_url = P.getProperty ("Driver_url"); database_user = p.getProperty ("database_user"); database_password = p.getProperty ("database_password"); Class.forname (controlador_class); con = drivermanager.getConnection (driver_url, database_user, database_password); } Catch (ClassNotFoundException e) {// TODO Auto Generado Bloque E.PrintStackTrace (); } Catch (Sqlexception e) {// TODO BLOCK AUTO GENERADO E.PRINTSTACKTRACE (); } Catch (FileNotFoundException e) {// TODO Auto Generado Bloque E.PrintStackTrace (); } Catch (ioException e) {// tODO Auto Generated BLOCK E.PrintStackTRace (); } return Con; } / ** * Cierre la base de datos * @param Con * @param pst * @param rst * / private void creall (conexión con, preparada PST, resultset rst) {if (rst! = Null) {try {rst.close (); } Catch (Sqlexception e) {// TODO BLOCK AUTO GENERADO E.PRINTSTACKTRACE (); }} if (pst! = null) {try {pst.close (); } Catch (Sqlexception e) {// TODO BLOCK AUTO GENERADO E.PRINTSTACKTRACE (); }} if (con! = null) {try {con.close (); } Catch (Sqlexception e) {// TODO BLOCK AUTO GENERADO E.PRINTSTACKTRACE (); }} if (con! = null) {try {con.close (); } Catch (Sqlexception e) {// TODO BLOCK AUTO GENERADO E.PRINTSTACKTRACE (); }} if (con! = null) {try {con.close (); } Catch (Sqlexception e) {// TODO BLOCK AUTO GENERADO E.PRINTSTACKTRACE (); }}}} / ** * Cierre la base de datos * @param con * @param pst * @param rst * / private void creall (conexión con, instrucciones pst, resultset rst) {if (rst! = Null) {try {rst.close (); } Catch (Sqlexception e) {// TODO BLOCK AUTO GENERADO E.PRINTSTACKTRACE (); }} if (pst! = null) {try {pst.close (); } Catch (Sqlexception e) {// TODO BLOCK AUTO GENERADO E.PRINTSTACKTRACE (); }} if (pst! = null) {try {pst.close (); } Catch (Sqlexception e) {// TODO BLOCK AUTO GENERADO E.PRINTSTACKTRACE (); }} if (con! = null) {try {con.close (); } Catch (Sqlexception e) {// TODO BLOCK AUTO GENERADO E.PRINTSTACKTRACE (); }}} / ** * find * @param sql * @param sqlvalues * @return * / public dult ejecutualy () {resultado resultado = null; ResultSet rst = null; Preparado PST = NULL; intente {pst = con.preparestatement (sql); if (sqlvalues! = null && sqlvalues.size ()> 0) {// cuando un marcador de posición existe en una instrucción SQL, setSqlValues (pst, sqlvalues); } rst = pst.executeQuery (); result = Resultupport.toresult (rst); // Asegúrese de completar la conversión antes de cerrar la base de datos} Catch (SQLException E) {// TODO Generado automático Bloque E.PrintStackTrace (); } finalmente {this.closealll (con, pst, rst); } resultado de retorno; } / ** * Agregar, eliminar, modificar, * @return * / public int ejecututeUpdate () {int result = -1; Preparado PST = NULL; intente {pst = con.preparestatement (sql); if (sqlvalues! = null && sqlvalues.size ()> 0) {// cuando un marcador de posición existe en una declaración sql setSqlValues (pst, sqlvalues); } resultado = pst.executeUpdate (); } Catch (Sqlexception e) {// TODO BLOCK AUTO GENERADO E.PRINTSTACKTRACE (); } finalmente {this.closealll (con, pst, null); } resultado de retorno; } / *** Método Uso de preparado para agregar lotes* @return* / public int [] ExecuteUpDatemore () {int [] resultado = null; Pruebe {PrepareStatement perSt = con.PrepareStatement (SQL, resultSet.Type_Scroll_Sensitive, ResultSet.concur_read_only); para (List sqlvaluTring: sqlvalue) {for (int i = 0; i <sqlvaluString.size (); i ++) {try {prest.setObject (i+1, sqlvaluestring.get (i)); } Catch (Sqlexception e) {// TODO BLOCK AUTO GENERADO E.PRINTSTACKTRACE (); }} prest.addbatch (); } prest.executeBatch (); /* con.commit ();*/ this.closealll (con, perSt, nulo); } Catch (Sqlexception ex) {logger.getLogger (dbhelper.class.getName ()). log (nivel.severe, null, ex); } resultado de retorno; } / ** * Use PrepareStatement para agregar el método por lotes, strValue: * "Insertar enadlogs (IP, sitio web, yyyymmdd, hour, object_id) valores ('192.168.1.3', 'localhost', '20081009', 8, '23123')" * @ @@throws sqlexception * / público intent [] ejecut [] ejecut [] ejecututeeTatemoruteeTatemoruteUtatemoruteUtateUtateUtateUtateUtateUtateUtatEtatEdatEtatEdatEtatEtatEdatEtatEtatETETETET lanza SQLException {int [] resultado = null; con.setAutOcommit (falso); Declaración stmt = con.createStatement (resultset.type_scroll_sensitive, resultset.concur_read_only); Cadena [] sqlString = null; for (string strValue: sqlString) {stmt.execute (strValue); } con.commit (); resultado de retorno; } / ** * Use PrepareStatement para agregar el método por lotes, strValue: * "Insertar enadlogs (IP, Sitio web, yyyyMMDD, Hour, Object_ID) Valores ('192.168.1.3', 'localHost', '20081009', 8, '23123')" * @ @@throws sqlexception * / público intent [] ExecutemoMoMoMoMoMoMoMoMoMoMoMoMoMoROMO SQLException {// Guarde el modo de envío automático actual booleaneuToCommit = false; Cadena [] sqlString = null; int [] resultado = nulo; intente {booleanautOcommit = con.getAutOcommit (); // Cerrar el envío automático con.setAutOcommit (falso); Declaración stmt = con.createStatement (resultset.type_scroll_sensitive, resultset.concur_read_only); // Use la declaración para recopilar múltiples declaraciones SQL al mismo tiempo/*stmt.addbatch (insert_sql1); stmt.addbatch (insert_sql2); stmt.addbatch (update_sql3); */ for (string strValue: sqlstring) {stmt.addbatch (strValue); } // Enviar todas las declaraciones SQL al mismo tiempo stmt.executeBatch (); // enviar modificaciones con.commit (); con.setAutocommit (booleanautOcommit); this.closeall (con, stmt, nulo); } catch (Exception e) {E.PrintStackTrace (); con.rollback (); // set setAuToCommit (falso) no realiza la operación de reversión de la conexión en la captura, y la tabla de la operación se bloqueará, lo que hace que la base de datos esté en punto} resultado de retorno; } / ** * Asigne un valor al marcador de posición en la instrucción SQL * @param pst * @param sqlvalues * / private void setSqlValues (preparado PST, list sqlvalues) {for (int i = 0; i <sqlvalues.size (); i ++) {try {intit {intit {intit { pst.setObject (i+1, sqlvalues.get (i)); } Catch (Sqlexception e) {// TODO BLOCK AUTO GENERADO E.PRINTSTACKTRACE (); }}}}}} Nuestra información de escritura para acceder a la base de datos en DB.Properties:
Driver_class = com.mysql.jdbc.driver conductor_url = jdbc: mysql: //192.168.22.246: 3306/importexceStest database_user = básico database_password = básico
prueba:
import java.util.*; public class ImportExCeStest {public static void main (string [] args) { /*dbHelper db = new dbHelper (); String sql = "insertar en tb_courSetype (id, CourSetyPename) valores ('2012003', 'QMX3')"; db.setsql (SQL); db.exCuteUpdate ();* / /*dbHelper db1 = new dbHelper (); String sql1 = "insertar en tb_courSetype (id, CourSetyPename) valores (?,?)"; List sqlValues = new ArrayList (); sqlValues.add ("2012004"); sqlValues.add ("QMX4"); db1.setsqlValues (sqlvalues); db1.setsql (SQL1); db1.exCuteUpdate ();*/ dbHelper db = new dbHelper (); Cadena sql = "insertar en tb_courSetype (id, CourSetyPeName) Valores (?,?)"; List <Ind> sqlValues = new ArrayList (); List sqlvalueString = new ArrayList (); sqlvaluestring.add ("2012010"); sqlvaluestring.add ("qmx10"); sqlvalues.add (sqlvaluestring); Lista sqlvaluString1 = new ArrayList (); sqlvaluestring1.add ("2012011"); sqlvaluestring1.add ("qmx11"); sqlvalues.add (sqlvaluestring1); Lista sqlvaluString2 = new ArrayList (); sqlvaluestring2.add ("2012012"); sqlvaluestring2.add ("QMX12"); sqlvalues.add (sqlvaluestring2); List sqlValuTring3 = new ArrayList (); sqlvaluestring3.add ("2012013"); sqlvaluestring3.add ("qmx13"); sqlValues.Add (sqlvaluString3); db.setsqlValue (sqlvalues); db.setsql (SQL); db.ExecuteUpDateMore (); }}