No diré muchas tonterías, compartiré con ustedes los problemas de conexión comunes de las bases de datos SQL operativas de Java.
1. Conectar, consultar, actualizar, cerrar
Estas operaciones básicas de datos se juntan y se escriben en un modelo similar a una herramienta, que es la herramienta SQL modelo Model2. Originalmente quería agregar otras operaciones, como el procesamiento de transacciones, pero aún no he pensado en un método más perfecto. Mire el código en detalle. Los comentarios son muy detallados.
import java.sql.*; import java.util.iterator; import java.util.map; import java.util.set;/*** Creado por NL101 en 2016/1/29.*/public class sqlbean {// Las operaciones de inicialización se escriben la conexión anterior conn = null; preparada PS = null; resultset rs = nulluly striVeNAME se escribe la inicialización se escribe la conexión anterior la conexión = null; preparada; "oracle.jdbc.driver.oracledriver"; string url = "jdbc: oracle: Thin: @localhost: 1521: orcl"; string username = "scott"; string contraseña = "123456";/*** Inicializar la conexión y obtener conn*/public sqlBean () {tryl.forname (drivername); Drivermanager.getConnection (url, username, contraseña);} catch (classNotFoundException e) {E.PrintStackTrace (); System.err.println ("Excepción de la base de datos");} Catch (Sqlexception e) {E.PrintstActAtRace (); System.err.Rintln ("Database Exception");}}}}}}}}} Falta* // *** Crear función de actualización de la base de datos* @param sql Update correspondiente Declaración SQL* @param Parámetros Se requieren parámetros adicionales* @return Outside verdadero actualización falsa exitosa*/public Boolean Update (String sql, string [] params) {int k = 0; try {ps = conn.prepareStatement (sql); para (int i = 0; i <i <par params; i++°///////Ay. ps.setString (i+1, params [i]);} k = ps.ExecuteUpDate ();} Catch (Sqlexception e) {E.PrintStackTrace (); System.err.Println ("Excepción de actualización de la base de datos");} return k> 0? verdadero: falso;}/** La función de consulta de database* @param sql sslen- to query* query @Param* Parámetros* @@return set de resultados de la consulta*/pública resultset Query (string sql, string [] params) {try {ps = conn.preparestatement (sql); for (int i = 0; i <params.length; i ++) {ps.setString (i+1, params [i]);} rs = ps.ExEctequery ();} Catch (sqExcent E) {E.PrintStackTrace (); System.err.println ("Excepción de consulta de base de datos");} return rs;}/*** Cerrar la instrucción de base de datos*/public void Close () {try {if (rs! = null) rs.close (); rs = null; if (ps! = null) ps.close (); ps = null; if (conn! = null) conn.close (); conn = null;} Catch (SQLException e) {E.PrintStackTrace ();}}}Escrito así, si llama a otras clases, puede seguir el siguiente método.
SqlBean sqlBean = new sqlBean (); string [] params = {}; // Si hay un parámetro, escríbelo en resultados rs = sqlbean.Query ("seleccione ename de emp", params); // sql instrucciones // bucle out {while (rs.next ()) (Sqlexception e) {E.PrintStackTrace (); sqlbean.close (); // Cierre la conexión si la excepción} sqlbean.close (); // Cierre la conexión de la base de datos2. Procesamiento de transacciones
Al procesar transacciones, el envío automático siempre se cancela primero, luego se ejecuta el comando y se envía el envío final, y luego la excepción ocurre al revertir. En cuanto a cómo escribir un método, todavía no he pensado en una buena idea.
importar bean.sqlbean; import java.sql.*;/*** creado por NL101 en 2016/1/29.*/public class test {public static void main (string [] args) {Connection conn = null; instrucciones ps = null; string drivername = "oracle.jdbc.driver.oracledriver"; string url = "JDBC: Oracle: Thin: @LocalHost: 1521: ORCL"; String Username = "Scott"; String Password = "7946521"; Pry {class.forname (Drivername); conn = Drivermanager.getConnection (url, username, contraseña); conn.setAutOcommit (false); // Cancel la cancel la autopsisión automática PS = PS = PS = conn.createStatement (); Ps.AddBatch ("Sentencia 1 para operar"); Ps.AddBatch ("Sentencia 2 para operar"); Ps.addbatch ("Sentencia 3 para operar"); Ps.addbatch ("Sentencia 4 para operar"); Ps.ExecuteBatch (); // Sube el comando anterior conn.comit (); // conn.setAutOcommit (true); // habilitar la envío automático} catch (classNotFoundException e) {E.PrintStackTrace (); System.err.println ("Excepción de enlace de datos de datos");} Catch (Sqlexception e) {E.PrintStackTraCe (); System.err.println ("Excepción de procesamiento de transacciones"); Try if if if if if if {If {If {If {If { (conn! = null) {conn.rollback (); // Rodring Operation Conn.setAutOcomMit (true);}} Catch (SqLException e1) {e1.printstackTraace ();}} finalmente {// finalizar la base de datos {if (rs! = null) rs.close (); rs = null; if (((final null; if (conn! = null) conn.close (); conn = null;} catch (sqlexception e) {e.printstacktrace ();}}}}3. Llame a los procedimientos almacenados
call = ct.prepareCall ("{llamar sp_pro4 (?,?,?,?,?,?,?)}"); // establece parámetros de entrada call.setstring (1, "emp"); call.setInt (2, 4); call.setInt (3, 1); // Establecer parámetros de salida call.RegisterOutParameter (4, oracletypes.number); call. RegisterOutParameter (5, oracletypes.number); call.RegisterOutParameter (6, oracletypes.cursor); // ejecutar call.Execute (); // El número total de salidas y páginas totales System.out.println ("Número total de registros"+Call.getInt (4)+"Número total de PAGES"+Call. while (rs.next ()) {for (int i = 0; i <7; i ++) {System.out.print (rs.getString (i+1)+"");} system.out.println ();}4. Conjunto de resultados móviles
Sun solo proporciona una interfaz. Si se puede operar depende de si el controlador JDBC que hace referencia lo admite.
import java.sql.*;public class TestScroll {public static void main(String args[]) {try {new oracle.jdbc.driver.OracleDriver();String url = "jdbc:oracle:thin:@192.168.0.1:1521:SXT";Connection conn = DriverManager.getConnection(url, "scott", "tiger"); instrucción stmt = conn.createStatement (resultset.type_scroll_insensitive, // Establezca el RS para desplazarse a resultado. System.out.println (rs.getInt (1)); rs.last (); // punto a la última línea System.out.println (rs.getString (1)); Syst.out.println (rs.isLast ()); syst.println (rs.ISAfterlast ()); syst em.out.println (rs.getrow ()); rs.previous (); // mueve una línea de línea.out.println (rs.getString (1)); rs.absolute (6); // Este método localiza directamente el número de línea System.out.println (rs.getString (1)); rs.close (); stmt.close (); (Sqlexception E) {E.PrintStackTrace ();}}}5. Conjunto de resultados actualizable
import java.sql.*; clase pública topDatars {public static void main (string args []) {try {new oracle.jdbc.driver.oracledriver (); string url = "jdbc: oracle: delgado:@192.168.0.1: 1521: sxt"; conexión; conn = drivermanager.getConnection (url, "scott", "tiger"); instrucción stmt = conn.createStatement (resultset.type_scroll_insensitive, resultset.concur_updatable); resultset rs = stmt.executequery ("select * from emp2"); rs.next (); // actualize una fila de datos de datos rs.updateString("ename","AAAA");rs.updateRow();//Insert a new row rs.moveToInsertRow();rs.updateInt(1, 9999);rs.updateString("ename","AAAA");rs.updateInt("mgr", 7839);rs.updateDouble("sal", 99.99);rs.insertRow();//Move the cursor to the newly created line rs.moveToCurrentRow();//Delete the line rs.absolute(5);rs.deleteRow();//Cancel update//rs.cancelRowUpdates();}catch(SQLException e){e.printStackTrace();}}}Lo anterior son las operaciones que uso a menudo para conectarme a las bases de datos SQL en Java que el editor comparte con usted. Espero que te sea útil.