Saya tidak akan mengatakan banyak omong kosong, saya akan membagikan kepada Anda masalah koneksi umum dari database SQL operasi Java.
1. Sambungkan, permintaan, perbarui, tutup
Operasi data dasar ini disatukan dan ditulis ke dalam model seperti alat, yang merupakan alat SQL model2 model2. Saya awalnya ingin menambahkan operasi lain, seperti pemrosesan transaksi, tetapi saya belum memikirkan metode yang lebih sempurna. Silakan lihat kode secara detail. Komentarnya sangat rinci.
Impor java.sql.*; impor java.util.iterator; impor java.util.map; impor java.util.set;/*** dibuat oleh nl101 pada 2016/1/29.*/kelas publik sqlbean {// Operasi inisialisasi ditulis dalam koneksi sebelumnya koneksi conn = null null; nullbean ps = noLul = nompred; "oracle.jdbc.driver.oracledRiver"; string url = "jdbc: oracle: thin: @localhost: 1521: orcl"; string username = "scott"; string password = "123456";/*** inisialisasi koneksi dan dapatkan conn*/public sqlbean () {cobalah. DriverManager.getConnection(url,userName,passWord);} catch (ClassNotFoundException e) {e.printStackTrace();System.err.println("Database Link Exception");} catch (SQLException e) {e.printStackTrace();System.err.println("Database link exception");}}/*The function to handle Transaksi tidak ada* // *** Buat fungsi pembaruan database* @param sql Perbarui yang sesuai Pernyataan SQL* @param params parameter tambahan diperlukan* @return benar Pembaruan False Pembaruan False Gagal*/Pembaruan Public Boolean (String SQL, String [] Params) {int k = 0; try {ps = conn.prepareStatement (SQ) {int k = 0; try {ps = conn.prepareStatement (sq) for (sq) for (sq) for (sqor. {// Berikut ini adalah ps.setstring (i+1, params [i]);} k = ps.executeUpdate ();} catch (sqlexception e) {e.printstacktrace (); System.err.println ("Database Update Exception");} return k> 0? True: false; @param params parameter tambahan* @return query hasil set*/hasil publik kueri (string sql, string [] params) {coba {ps = conn.preparestatement (sql); untuk (int i = 0; i <params.length; i ++) {ps.setstring (i+1, params [i]); (Sqlexception e) {e.printstacktrace (); System.err.println ("Pengecualian kueri database");} return rs;}/*** Tutup Pernyataan Basis Data*/public void close () {coba {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 ();}}}Ditulis seperti ini, jika Anda menelepon kelas lain, Anda dapat mengikuti metode berikut.
Sqlbean sqlbean = sqlbean baru (); string [] params = {}; // Jika ada parameter, tulis di resultset rs = sqlbean.query ("pilih ename dari emp", params); // sql pernyataan // loop out try {while (rs.next () {1) {1) {1) {rse () {1) {rs.) (Sqlexception e) {e.printstacktrace (); sqlbean.close (); // tutup koneksi jika pengecualian} sqlbean.close (); // tutup koneksi database2. Pemrosesan transaksi
Saat memproses transaksi, pengiriman otomatis selalu dibatalkan terlebih dahulu, kemudian perintah dieksekusi, dan pengiriman akhir diserahkan, dan kemudian pengecualian terjadi saat berguling kembali. Adapun bagaimana menulis metode, saya belum memikirkan ide yang bagus.
Impor bean.sqlbean; impor java.sql.*;/*** Dibuat oleh NL101 pada 2016/1/29.*/Tes kelas publik {public static void main (string [] args) {koneksi conn = null; pernyataan ps = null; string drivername = "oracle.jdbc.driver.orriver" null; string drivername = "oracle.jdbc.driver.orriver" null; string drivername = "oracle.jdbc.driver.orriver" null; string drivername = "oracle.jdbc.driver.orriver"; "jdbc: oracle: tipis: @localhost: 1521: orcl"; string username = "scott"; string password = "7946521"; coba {class.forname (driverName); conn = driverManager.getConnection (URL, username, kata sandi); conn.setAcommit (false) first/cordery/corder noutation/corder (Username, kata sandi); conn.setAcommit (false) first/corder/cordery/corder nOTOCICICY/KATBANCIONSIONAL/KNOWNICIONS; KATA KUNCI; conn.createStatement (); ps.addbatch ("kalimat 1 untuk beroperasi"); ps.addbatch ("kalimat 2 untuk beroperasi"); ps.addbatch ("kalimat 3 untuk beroperasi"); ps.addbatch ("kalimat 4 untuk beroperasi"); ps. executeBatch (); // kirimkan ke atasan Conn. conn.setAutocommit (true); // Aktifkan pengiriman otomatis} catch (classnotfoundException e) {e.printstacktrace (); System.err.println ("Pengecualian tautan database");} Catch (SQLException E) {E.PrintStackrace (); System.err.r.printl (SQLException E) {E.PrintStackACE (); System.err.r.printl ("TransCrace {" TransCrace {") (Conn! = null) {conn.rollback (); // rolling back operasi conn.setAutocommit (true);}} catch (sqlexception e1) {e1.printstacktrace ();}} akhirnya {// selesaikan basis data {if if (rs! = null) (); = null; if (conn! = null) conn.close (); conn = null;} catch (sqlexception e) {e.printstacktrace ();}}}}3. Panggil prosedur tersimpan
call = ct.prepareCall ("{call sp_pro4 (?,?,?,?,?,?,?)}"); // atur parameter input call.setstring (1, "emp"); call.setint (2, 4); call.setint (3, 1); // atur parameter output call.registeroutparameter (4, oracletypes.number); call.registeroutparameter (5, oracletypes.number); call.registeroutparameter (6, oracletypes.cursor); // jalankan call.execute (); // Jumlah total output dan total halaman System.out.println ("Total Jumlah Catatan"+Call.getint (4)+"-Jumlah Hasil" Call.get (5));//Luncing out (4)-Jumlah Hasil "Call. while (rs.next ()) {for (int i = 0; i <7; i ++) {System.out.print (rs.getString (i+1)+"");} system.out.println ();}4. Set Hasil Bergerak
Sun hanya menyediakan antarmuka. Apakah itu dapat dioperasikan tergantung pada apakah driver JDBC yang Anda referensi mendukungnya.
impor java.sql.*; tes kelas publik testscroll {public static void main (string args []) {coba {new oracle.jdbc.driver.oracledRiver (); string url = "jdbc: oracle: tipis:@192.168.0.1: 1521: sxx"; connection "conn = driver: 192.168.0.1: 1521: sxx"; connection conn = driver: 192.168.0.1: 1521: sxx "; connection conn = driver: 192.168.0.1: 1521: sxt"; connection conn = driver: 192.168.0.1: 1521: sxx "; connection conn = driver: 192.168. stmt = conn.createStatement (resultset.type_scroll_insensitive, // Setel RS ke gulir resultset.concur_read_only); // Pilih * dari emp order by Sal "); rs.next (); System.out.println (rs.getint (1)); rs.last (); // Tunjuk ke sistem terakhir System.out.println (rs.getString (1)); Syst.out.println (rs.islast ()); Syst.out.println (rs.isAfterLast (); Syst. line up system.out.println (rs.getString (1)); rs.absolute (6); // Metode ini secara langsung menempatkan sistem nomor garis.out.println (rs.getString (1)); rs.close (); stmt.close (); conn.close ();} catch (sqlexception e); {conn.close ();} catch (sqlexception e);5. Set Hasil yang Dapat Diperbarui
Impor java.sql.*; kelas publik testupdatars {public static void main (string args []) {coba {new oracle.jdbc.driver.oracledRiver (); string url = "jdbc: oracle: tipis:@192.168.0.1: 1521: sxx"; conn = driverManager.getConnection (url, "scott", "tiger"); pernyataan stmt = conn.createStateMent (resultset.type_scroll_insensitive, hasilnya rs.updateString ("ename", "aaaa"); rs.updaterow (); // masukkan baris baru rs.movetoinsertrow (); rs.updateint (1, 9999); rs.updateString ("ename", "aaaa"); rs.updateint (" -string (" ename "; 99.99); rs.inserTrow (); // pindahkan kursor ke baris yang baru dibuat rs.movetocurrentrow (); // hapus baris rs.absolute (5); rs.deleterow (); // batal pembaruan // rs.cancelrowupdates ();} catch (sqlexception e) {{);}}} {sqlexception e) {); {sqlexception e) {);} {sqlexception {);Di atas adalah operasi yang sering saya gunakan untuk terhubung ke database SQL di Java yang dibagikan oleh editor dengan Anda. Saya harap ini akan membantu Anda.