Konten Utama:
1.JDBC Connection Database (Edit) Langkah (terutama ada enam langkah)
1. Daftarkan driver: class.forname ("com.mysql.jdbc.driver"); ditampilkan beban ke dalam JVM
2. Dapatkan koneksi: (1) Param1: URL untuk terhubung ke database -----》 string url = "jdbc: mysql: // localhost: 3306/test?"+ "UseUnicode = true & karakterenCoding = UTF8";
param2: nama pengguna untuk terhubung ke database--》 string user = "h4";
param3: kata sandi untuk terhubung ke database ----》 string pass = "111";
Koneksi conn = driverManager.getConnection (url, user, pass); // Metode di bawah DriverManager: GetConnection (String URL, String Username, String Password)
(2) Selanjutnya kami menganalisis URL: "JDBC (protokol ini dimulai dengan JDBC): MySQL (ini adalah sub-protokol, nama sistem manajemen basis data): // LocalHost (alamat sumber basis data): 3306 (port target)/tes (tabel tabel untuk ditanya)?"
"UseUnicode = true & characterencoding = utf8"; Ini ditambahkan untuk mencegah kode kacau, dan ditentukan untuk menggunakan set karakter Unicode dan mengeditnya menggunakan UTF-8.
3. Buat objek pernyataan pernyataan (tiga metode utama): pernyataan stmt = conn.createStatement (); // metode di bawah antarmuka koneksi: Pernyataan createStatement ()
PreparedStatement pStmt = conn.preparedStatement ();
Callablestatement cstmt = conn.prepareCall ("{call demosp (?,?)}");
Mari kita analisis di bawah ini: (1) Perbedaan antara pernyataan dan objek yang disiapkan, yang secara dinamis dapat mengatur parameter kueri
(2) Metode untuk mengatur parameter disiapkan statement.setxxxx (parameterIndex, value). Jika tipe parameter database adalah varchar, setString digunakan. Jika jenis parameter bilangan bulat, setint digunakan.
(3) callablestatement.setxxxx (parameterIndex, value) // Tetapkan nilai dalam urutan parameter
Callablestatement.setxxxx (parameterName, value) // Setel nilai sesuai dengan nama parameter. Nama ini adalah nama parameter formal saat mendefinisikan prosedur tersimpan.
(4) Metode CallAblestAtement.RegisterOutParameter digunakan untuk mendeklarasikan parameter jenis output dari prosedur tersimpan untuk menerima nilai output dari prosedur tersimpan
4. Eksekusi Pernyataan SQL: Hasil RS = STMT.ExecuteQuery (SQL); kecuali untuk pernyataan kueri, executeQuery (); Segala sesuatu yang lain dieksekusi ();
Metode di bawah Antarmuka Pernyataan:
Boolean Execute (String SQL): Eksekusi Pernyataan SQL, Benar Jika nilai pengembalian adalah set hasil, sebaliknya salah
Hasil ExecuteQuery (String SQL): Eksekusi Pernyataan SQL, Nilai Pengembalian adalah Hasil
int executeupdate (String SQL): Eksekusi pernyataan SQL, nilai pengembalian adalah jumlah baris yang terpengaruh
5. Set Hasil Proses: Metode GETXXXX dari objek HRESSET tergantung pada jenis bidang dalam tabel dalam database. Misalnya: varchar2 sesuai dengan getstring, jika bilangan bulat, metode yang sesuai adalah getint/getlong
While (rs.next ()) {rs.getint (columnIndex); // Dapatkan nilai bidang melalui nomor kolom rs.getString (ColumnName); // Dapatkan nilai bidang melalui nama kolom Metode umum di bawah antarmuka hasil: befefirst (); Pindahkan kursor ke catatan pertama (depan) di hasil afterlast (); Pindahkan kursor ke catatan terakhir (setelah) di hasil) absolute (intcolumn): pindahkan kursor ke baris yang ditentukan relatif terhadap baris pertama, dan bilangan negatif relatif terhadap rekor terakhir sebelumnya (): pindahkan kursor ke atas seteling (): pindahkan ke bawah. tidak dapat dimodifikasi.6. Tutup Sumber Daya: Setelah operasi selesai, Anda harus menutup JDBC untuk merilis sumber daya JDBC. Tetapi tatanan harus menjadi kebalikan dari ketika Anda mendefinisikan objek, seperti menutup pintu, menutupnya dari dalam pertama dan menutupnya ke luar.
Contoh berikut:
if (rs! = null) {// 1. Tutup set hasil coba {rs.close (); } catch (sqlexception e) {e.printstacktrace (); }} if (stmt! = null) {// 2. Tutup objek yang dinyatakan coba {stmt.close (); } catch (sqlexception e) {e.printstacktrace (); }} if (conn! = null) {// 3. Tutup koneksi (ingat untuk menutup 1.2 sebelumnya. Kemudian tutup koneksi) Coba {conn.close (); } catch (Exception e) {E.PrintStackTrace (); }}2. Di bawah ini adalah contoh data kueri sederhana (terperinci)
Paket javacore1; // Ini adalah nama paket yang Anda buat. Impor java.sql.callablestatement; impor java.sql.connection; impor java.sql.drivermanager; impor java.sql.preparedstatement; impor java.sql.resultset; // Kelima di sebelah kiri adalah nama paket yang ingin Anda impor saat menulis program. Ingatlah untuk menjadi paket di bawah java.sql. impor java.sql.sqlexception; import java.sql.statement; kelas publik jdbc {// tentukan kelas public static void main (string [] args) {// metode utama coba {string driver = "com.mysql.jdbc.driver"; // 1. Tentukan driver nama driver sebagai driver sebagai com.mysql.jdbc.driver string url = "jdbc: mysql: // localhost: 3306/tes?" // 2. Mendefinisikan url; JDBC adalah protokol; MySQL adalah sub-protokol: mewakili nama manajemen sistem basis data; LocalHost: 3306 adalah alamat dan target port dari sumber basis data Anda; Tes adalah lokasi meja yang saya bangun sendiri, dan Anda menggunakan milik Anda sebagai standar. + "UseUnicode = true & characterencoding = utf8"; // Cegah kode kacau; UseUnicode = True Means Menggunakan Set Karakter Unicode; karakterEncoding = UTF8 berarti menggunakan UTF-8 untuk pengeditan. String user = "h4"; // 3. Tentukan nama pengguna dan tulis pengguna yang ingin Anda sambungkan. String pass = "111"; // 4. Kata Sandi Pengguna. String querysql = "pilih * dari karyawan"; // 5. Nama tabel yang ingin Anda cari. Class.forname (driver); // 6. Daftarkan driver dan gunakan class.froname () di kelas kelas di bawah paket java.lang; Driver di sini adalah driver yang ditentukan dalam 1, atau class.forname ("com.mysql.jdbc.driver"); Koneksi conn = driverManager.getConnection (url, user, pass); // 7. Dapatkan koneksi database dan gunakan getConnectin (string url, string username, string password) dari driverManager di java.sql untuk menyelesaikan // url, pengguna, lulus dalam kurung adalah 2, 3, dan 4 langkah yang ditentukan di atas; Pernyataan stmt = conn.createStatement (); // 8. Bangun objek pernyataan untuk menjalankan pernyataan SQL: Terutama ada tiga contoh pernyataan, disiapkan persiapan, dan callablestatement untuk mengimplementasikan // tiga metode implementasi adalah: pernyataan stmt = con.createStatement (); // Persiapan PSTMT = Conn.PrepareStatement (SQL); // callablestatement cstmt = conn.prepareCall ("{call demosp (?,?)}"); Hasil rs = stmt.executeQuery (querysql); // 9. Jalankan SQL dan kembalikan ke akhir; Hasil ExecuteQuery (String SQLString): Digunakan untuk Mengembalikan Objek Set Hasil (Hasil). while (rs.next ()) {//10.transfer hasil set sistem.out.println ("Nomor personel:"+rs.getString ("employee_id")+"gaji:"+rs.getString ("gaji")+"nama:"+rs.getString ("last_name"));//Gunakan The Geting THETTRING () ("Last_name");/Gunakan The Geting The Geting () ! = null) {// 11.close set rekaman coba {rs.close (); } catch (sqlexception e) {e.printstacktrace (); }} if (stmt! = null) {// 12.close objek yang dinyatakan coba {stmt.close (); } catch (sqlexception e) {e.printstacktrace (); }} if (stmt! = null) {// 12.close objek yang dinyatakan coba {stmt.close (); } catch (sqlexception e) {e.printstacktrace (); }} if (conn! = null) {// 13. Tutup koneksi (ingat untuk menutup 11.12 sebelumnya terlebih dahulu. Kemudian tutup koneksi, seperti menutup pintu, tutup bagian dalam terlebih dahulu, dan akhirnya tutup yang paling luar) coba {conn.close (); } catch (sqlexception e) {e.printstacktrace (); }}} catch (Exception e) {e.printstacktrace (); }}}}3. Untuk menjadi lebih intuitif, kami merangkum akuisisi koneksi basis data dan melepaskan koneksi dalam metode untuk memfasilitasi operasi yang lebih baik nanti.
Paket javacore1; import java.sql.connection; impor java.sql.driverManager; kelas publik jdbc {public static void main (string [] args) {koneksi conn = getConnection ("h4", "111"); // Dapatkan database Koneksi/*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0 Lancape,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,Y,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0 Lancapge,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0 Lancapge,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0 Lancapge,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, String pass) {connection conn = null; // mendeklarasikan objek koneksi driver string = "com.mysql.jdbc.driver"; // nama kelas driver string url = "jdbc: mysql: // localhost: 3306/test?" // URL Database + "UseUnicode = true & characterencoding = utf8"; // Cegah kacau coba {class.forname (driver); // daftarkan (muat) driver conn = driverManager.getConnection (url, user, pass); // dapatkan koneksi basis data} catch (pengecualian e) {e.printstackrace (); } return conn; } // Lepaskan koneksi database public static void releaseconnection (koneksi conn) {coba {if (conn! = Null) conn.close (); } catch (Exception e) {E.PrintStackTrace (); }}}4. Menerapkan sebelas fungsi pemrosesan informasi basis data seperti kueri, penyisipan, penghapusan, dan pembaruan.
1. Data kueri
package javacore1;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;public class Query { public static void main(String[] args) { Connection conn = getConnection("h4", "111");// Dapatkan Kueri Koneksi Database (Conn); // Metode Nama Panggilan Database Koneksi ReleASEConnection (Conn); // Rilis Database Connection} // Data kueri, tentukan metode kueri public static void kueri (koneksi conn) {string sql = "pilih * dari karyawan"; coba {pernyataan stmt = conn.createStatement (); //You can also use PreparedStatement to do ResultSet rs=stmt.executeQuery(Sql);//Execute the sql statement and return the end while(rs.next()){//Transfer the result set and go to the next line System.out.println("personnel number:"+rs.getString("employee_id")+"salary:"+rs.getString("salary")); } if (rs! = null) {coba {rs.close (); } catch (sqlexception e) {e.printstacktrace (); }} if (stmt! = null) {coba {stmt.close (); } catch (sqlexception e) {e.printstacktrace (); }} if (conn! = null) {coba {conn.close (); } catch (sqlexception e) {e.printstacktrace (); }}} catch (Exception e) {e.printstacktrace (); }} // Database Koneksi Publik Statis Koneksi GetConnection (String User, String Pass) {Connection Conn = Null; // Deklarasikan Objek Koneksi String Driver = "com.mysql.jdbc.driver"; // Driver Class Name String URL = "JDBC: MySQL: // LocalHost: 3306/uji?" // URL Database + "UseUnicode = true & characterencoding = utf8"; // Cegah kacau coba {class.forname (driver); // daftarkan (muat) driver conn = driverManager.getConnection (url, user, pass); // dapatkan koneksi basis data} catch (pengecualian e) {e.printstackrace (); } return conn; } // Rilis Database Connection Public Static Void ReleasEconnection (Connection Conn) {coba {if (conn! = Null) conn.close (); } catch (Exception e) {E.PrintStackTrace (); }}} // query data, dan hasilnya ditampilkan dalam urutan terbalik, paket pesanan terbalik javacore1; impor java.sql.connection; impor java.sql.driverManager; impor java.sql.resultset; public class; public classcception; impor java.sql.sql.statemement; Koneksi conn = getConnection ("h4", "111"); // Dapatkan Kueri Koneksi Database (Conn); // Nama Metode Memanggil ReleASEConnection Connection Database (Conn); // Lepaskan koneksi basis data} // kueri data, tentukan metode kueri public static void kueri (koneksi conn) {string sql = "pilih * dari karyawan"; coba {pernyataan stmt = conn.createStatement (); // Anda juga dapat menggunakan persiapan disiapkan untuk melakukan hasil rs = stmt.executeQuery (sql); // jalankan pernyataan sql dan kembalikan ujung rs.afterlast (); // Lewati ke baris terakhir terlebih dahulu sementara (rs.previous ()) {// Transfer hasil yang ditetapkan dan naik ke line System.out.println ("Nomor personel:"+rs.getString ("karyawan_id")+"Gaji:"+rs.getstring ("gaji")); } if (rs! = null) {coba {rs.close (); } catch (sqlexception e) {e.printstacktrace (); }} if (stmt! = null) {coba {stmt.close (); } catch (sqlexception e) {e.printstacktrace (); }} if (conn! = null) {coba {conn.close (); } catch (sqlexception e) {e.printstacktrace (); }}}} catch (Exception e) {E.PrintStackTrace (); }} // Database Koneksi Publik Statis Koneksi GetConnection (String User, String Pass) {Connection Conn = Null; // Deklarasikan Objek Koneksi String Driver = "com.mysql.jdbc.driver"; // Driver Class Name String URL = "JDBC: MySQL: // LocalHost: 3306/uji?" // URL Database + "UseUnicode = true & characterencoding = utf8"; // Cegah kacau coba {class.forname (driver); // daftarkan (muat) driver conn = driverManager.getConnection (url, user, pass); // dapatkan koneksi basis data} catch (pengecualian e) {e.printstackrace (); } return conn; } // Rilis Database Connection Public Static Void ReleasEconnection (Connection Conn) {coba {if (conn! = Null) conn.close (); } catch (Exception e) {E.PrintStackTrace (); }}}2. Masukkan data
package javacore1;import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;import java.sql.Statement;public class Insert { public static void main(String[] args) { Connection conn = getConnection("h3", "111111"); // Dapatkan Insert Koneksi Database (Conn); // Metode Nama Panggilan Database Koneksi ReleASEConnection (Conn); // Lepaskan Koneksi Basis Data} // Masukkan data public static void Insert (Connection conn) {coba {string sql = "masukkan ke dalam karyawan (karyawan_id, last_name, gaji, departemen_id, userid)" + "values ('100010', 'xiaogou', '7000', '004', '9')"; // Pernyataan SQL untuk memasukkan pernyataan data stmt1 = conn.createStatement (); // Buat objek pernyataan untuk mengeksekusi statis SQL Pernyataan int count = stmt1.executeUpdate (sql); // Pernyataan SQL untuk melakukan operasi penyisipan dan mengembalikan jumlah sistem data yang dimasukkan.out.println ("Insert" + Count + "Data"); // output hasil operasi penyisipan conn.close (); // tutup koneksi basis data} catch (sqlexception e) {e.printstacktrace (); }} // Database Koneksi Publik Statis Koneksi GetConnection (String User, String Pass) {Connection Conn = Null; // Deklarasikan Objek Koneksi String Driver = "com.mysql.jdbc.driver"; // Driver Class Name String URL = "JDBC: MySQL: // LocalHost: 3306/uji?" // URL Database + "UseUnicode = True & CharacterEncoding = utf8"; // Cegah kacau coba {class.forname (driver); // daftarkan (muat) driver conn = driverManager.getConnection (url, user, pass);/ mendapatkan koneksi basis data} Catch (pengecualian e) {e.printsktrace (); } return conn; } // Lepaskan koneksi database public static void releaseconnection (koneksi conn) {coba {if (conn! = Null) conn.close (); } catch (Exception e) {E.PrintStackTrace (); }}}3. Hapus data
package javacore1;import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;import java.sql.Statement;public class Delete { public static void main(String[] args) { Connection conn = getConnection("h3", "111111"); // Dapatkan Database Connection Delete (Conn); // Metode Nama Panggilan Koneksi Basis Data; Releaseconnection (Conn); // Rilis Database Connection} // Hapus Data Public Static Void Delete (Connection Conn) {String sql = "Hapus dari karyawan di mana karyawan_id = 100009"; Coba {pernyataan stmt = conn.createStateMent (); // atau gunakan metode disiapkan stmt.executeUpdate (sql); // jalankan pernyataan sql if (stmt! = null) {coba {stmt.close (); } catch (sqlexception e) {e.printstacktrace (); }}} catch (sqlexception e) {e.printstacktrace (); }}} // Database Koneksi Public Static Connection GetConnection (String User, String Pass) {Connection Conn = Null; // Deklarasikan Objek Koneksi String Driver = "com.mysql.jdbc.driver"; // Driver Class Name String URL = "JDBC: MySQL: // LOCALHOST: 330/TEST?" // URL Database + "UseUnicode = true & characterencoding = utf8"; // Cegah kacau coba {class.forname (driver); // daftarkan (muat) driver conn = driverManager.getConnection (url, user, pass); // dapatkan koneksi basis data} catch (pengecualian e) {e.printstackrace (); } return conn; } // Lepaskan koneksi basis data public static void releaseconnection (koneksi conn) {coba {if (conn! = Null) conn.close (); } catch (Exception e) {E.PrintStackTrace (); }}}4. Perbarui data
package javacore1;import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;import java.sql.Statement;public class Update { public static void main(String[] args) { Connection conn = getConnection("h3", "111111"); // Dapatkan Pembaruan Koneksi Database (Conn); // Metode Nama Panggilan Database Koneksi ReleASEConnection (Conn); // Rilis Database Connection} // Perbarui Data Public Static Void Pembaruan (Connection Conn) {String SQL = "Perbarui Karyawan Set Gaji = 8000 di mana karyawan_id = 100005"; coba {pernyataan stmt1 = conn.createStateMent (); // atau gunakan metode disiapkan stmt1.executeUpdate (sql); // jalankan pernyataan sql if (stmt1! = null) {coba {stmt1.close (); } catch (sqlexception e) {e.printstacktrace (); }}} catch (sqlexception e) {e.printstacktrace (); }} // Database Koneksi Publik Statis Koneksi GetConnection (String User, String Pass) {Connection Conn = Null; // Deklarasikan Objek Koneksi String Driver = "com.mysql.jdbc.driver"; // Driver Class Name String URL = "JDBC: MySQL: // LocalHost: 3306/uji?" // URL Database + "UseUnicode = true & characterencoding = utf8"; // Cegah kacau coba {class.forname (driver); // daftarkan (muat) driver conn = driverManager.getConnection (url, user, pass); // dapatkan koneksi basis data} catch (pengecualian e) {e.printstackrace (); } return conn; } // Lepaskan koneksi database public static void releaseconnection (koneksi conn) {coba {if (conn! = Null) conn.close (); } catch (Exception e) {E.PrintStackTrace (); }}}5. Transfer (Transaksi)
JDBC menangani transaksi melalui komitmen otomatis koneksi:
Connection.setAutocommit (false);
Kirim Transaksi:
Connection.Commit ();
Rollback Transaction Rollback Bagian:
Connection.rollback (savePoint);
Roll Back All:
Connection.rollback ();
Paket javacore1; import java.sql.connection; import java.sql.driverManager; import java.sql.statement; kelas publik transcash {public static void main (string [] args) {connection conn = getConnection ("h3", "111111");/ get database connecon ("h3", "111111");/ get the dATabase ("h3", "111111");/ get the dATabase ("H3", "111111");/ Get the dATabase ("H3", "111111");/ GET the DATBABASE ("H3", "111111);/ GET the DATBABASE (" H3 "," 1111 ") // Method name calls the database connection releaseConnection(conn);// Release the database connection}// Transfer (data conversion) (The original data was 100 and 500, but after implementing this function, it becomes 500 and 100. In fact, to put it bluntly, it is to update the data and change the data) public static void transCash(Connection conn){ Statement stmt = null; coba {conn.setAutocommit (false); // tutup string pengiriman otomatis sql = "Perbarui karyawan set gaji = 500 di mana karyawan_id = 100001"; stmt = conn.createStatement (); stmt.executeUpdate (SQL); sql = "Perbarui karyawan set gaji = 100 di mana karyawan_id = 100002"; stmt.executeUpdate (sql); // Jalankan pernyataan SQL, dua gaji di atas akan ditukar // int i = 1/0; Jika demikian, tugas tidak akan diselesaikan, karena ini adalah hal yang lengkap, dan jika ada sedikit kegagalan, semuanya akan gagal conn.Commit (); // komit transaksi} catch (pengecualian e) {e.printstacktrace (); } akhirnya {coba {if (stmt! = null) {stmt.close (); } catch (Exception e) {E.PrintStackTrace (); }}} // Database Koneksi Public Static Connection GetConnection (String User, String Pass) {Connection Conn = Null; // Deklarasikan Objek Koneksi String Driver = "com.mysql.jdbc.driver"; // Driver Class Name String URL = "JDBC: MySQL: // LOCALHOST: 330/TEST?" // URL Database + "UseUnicode = true & characterencoding = utf8"; // Cegah kacau coba {class.forname (driver); // daftarkan (muat) driver conn = driverManager.getConnection (url, user, pass); // dapatkan koneksi basis data} catch (pengecualian e) {e.printstackrace (); } return conn; } // Rilis Database Connection Public Static Void ReleasEconnection (Connection Conn) {coba {if (conn! = Null) conn.close (); } catch (Exception e) {E.PrintStackTrace (); }}}6. Temukan prosedur tersimpan tanpa parameter
package javacore1;import java.sql.CallableStatement;import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;public class ExecProc { public static void main(String[] args) { Connection conn = getConnection("h3", "111111"); // Dapatkan Database Connection ExecProc (Conn); // Metode Nama Panggilan Database Koneksi ReleasEconnection (Conn); // Rilis Koneksi Basis Data} // Panggil prosedur tersimpan yang tidak ditulis; public static void execProc (koneksi conn) {string sql = "{call raisesalary}"; coba {callablestatement cstmt = conn.preparecall (sql); cstmt.executeUpdate (); } catch (sqlexception e) {e.printstacktrace (); }} // Database Koneksi Publik Statis Koneksi GetConnection (String User, String Pass) {Connection Conn = Null; // Deklarasikan Objek Koneksi String Driver = "com.mysql.jdbc.driver"; // Driver Class Name String URL = "JDBC: MySQL: // LocalHost: 3306/uji?" // URL Database + "UseUnicode = true & characterencoding = utf8"; // Cegah kacau coba {class.forname (driver); // daftarkan (muat) driver conn = driverManager.getConnection (url, user, pass); // dapatkan koneksi basis data} catch (pengecualian e) {e.printstackrace (); } return conn; } // Rilis Database Connection Public Static Void ReleasEconnection (Connection Conn) {coba {if (conn! = Null) conn.close (); } catch (Exception e) {E.PrintStackTrace (); }}}7. Temukan prosedur tersimpan dengan parameter
package javacore1;import java.sql.CallableStatement;import java.sql.Connection;import java.sql.DriverManager;import java.sql.Types;public class GetMulti { public static void main(String[] args) { Connection conn = getConnection("h3", "111111"); // Dapatkan koneksi database int cnt = getMulti (conn); // temukan prosedur tersimpan; System.out.println ("Nomor Orang:" + CNT); Releaseconnection (Conn); // Rilis Database Connection} // Proses pencarian memiliki parameter public static int getMulti (koneksi conn) {int dept_id = 100001; int cnt = 0; String sql = "{call calc_emp_count (?,?)}"; coba {callablestatement cstmt = conn.prepareCall (sql); // inisialisasi objek pernyataan cstmt.setint (1, dept_id); // callablestatement.setxxx (parameter) atau (angka, nilai), dan disiapkan cairan. // cstmt.registeroutparameter (2, type.integer); // menyatakan parameter output cstmt.executeUpdate (); // jalankan pernyataan sql cnt = cstmt.getint (2); // dapatkan hasilnya jika (cstmt! = null) {cstmt.clcl) () () (cstmt! = null) {cstmt.clcl) () () (cstmt! = null) {cstmt.clcl) () () (cstmt! = null) {cstmt.clcl () () () (cstmt! = null) {cstmt.clcl () () (cstmt! = null) {cstmt.clcle () () () (cstmt! e.printstacktrace (); } return cnt; } // Database Koneksi Public Static Connection GetConnection (String User, String Pass) {Connection Conn = Null; // Deklarasikan Objek Koneksi String Driver = "com.mysql.jdbc.driver"; // Driver Class Name String URL = "JDBC: MySQL: // LocalHost: 3306/test?" // URL Database + "UseUnicode = true & characterencoding = utf8"; // Cegah kacau coba {class.forname (driver); // daftarkan (muat) driver conn = driverManager.getConnection (url, user, pass); // dapatkan koneksi basis data} catch (pengecualian e) {e.printstackrace (); } return conn; } // Rilis Database Connection Public Static Void ReleasEconnection (Connection Conn) {coba {if (conn! = Null) conn.close (); } catch (Exception e) {E.PrintStackTrace (); }}}8. Pemrosesan biasa
package javacore1;import java.sql.Connection;import java.sql.Date;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.SQLException;public class PlanInsert { public static void main(String[] args) { Connection conn = getConnection("h3", "111111"); // Dapatkan Database Connection PlanInsert (Conn); // Metode Nama Panggilan Database Koneksi ReleASEConnection (Conn); // Rilis Database Connection} // Pemrosesan Biasa Public Static Void PlanInsert (Connection Conn) {coba {String sql = "Insert Into Test_User1 (userid, nama pengguna, loadingtime)" + "values (?,?,?)"; // Pernyataan SQL untuk memasukkan data disiapkan pstmt = conn.preparestatement (sql); Long StartTime = System.CurrentTimeMillis (); untuk (int i = 0; i <1000; i ++) {pstmt.setlong (1, i); pstmt.setstring (2, "pengguna"+i); PSTMT.SetDate (3, Tanggal Baru (System.CurrentTimeMillis ())); PSTMT.ExecuteUpdate (); } System.out.println ("Total waktu yang diambil:"+(System.CurrentTimeMillis () - StartTime)); pstmt.close (); // tutup koneksi basis data} catch (sqlexception e) {e.printstacktrace (); }} // Database Koneksi Publik Statis Koneksi GetConnection (String User, String Pass) {Connection Conn = Null; // Deklarasikan Objek Koneksi String Driver = "com.mysql.jdbc.driver"; // Driver Class Name String URL = "JDBC: MySQL: // LocalHost: 3306/uji?" // URL Database + "UseUnicode = true & characterencoding = utf8"; // Cegah kacau coba {class.forname (driver); // daftarkan (muat) driver conn = driverManager.getConnection (url, user, pass); // dapatkan koneksi basis data} catch (pengecualian e) {e.printstackrace (); } return conn; } // Rilis Database Connection Public Static Void ReleasEconnection (Connection Conn) {coba {if (conn! = Null) conn.close (); } catch (Exception e) {E.PrintStackTrace (); }}}9. Pemrosesan Batch
Dapatkan pola transaksi JDBC asli:
Boolean CurrentTransactionModle = congetAutocommit ();
Diatur ke mode transaksi (OFF Automatic Commit):
con.setautocommit (false);
Pernyataan stm = con.createStatement ();
Tiga pernyataan SQL yang heterogen:
String sql1 = "hapus dari pengguna di mana id = 8";
String sql2 = "Perbarui nama pengguna set = 'java' di mana id = 7";
String sql3 = "masukkan ke pengguna (nama, kata sandi) nilai ('jdbc', 'jdbc')";
Tambahkan ke buffer pemrosesan batch pernyataan:
stm.addbatch (sql1);
stm.addbatch (sql2);
stm.addbatch (sql3);
Lakukan Pembaruan Batch:
stm.executebatch ();
Kirim transaksi untuk pembaruan batch ini:
con.commit ();
Balas ke mode transaksi asli:
con.setautocommit (currentTransactionModle);
Paket javacore1; impor java.sql.connection; impor java.sql.date; impor java.sql.driverManager; impor java.sql.preparedstatement; import java.sql.sqlexception; connection kelas publik {public static void main (string (string [] [] {public static Main void (string [] [] {public static Main void (string [] [] {public static Main void (string [] [] {public static void Main static (string [] [] "111111"); // Dapatkan koneksi basis data Batchinsert (Conn); // Metode Nama Panggilan Database Koneksi ReleASEConnection (Conn); // Lepaskan Koneksi Basis Data} // Kecepatan penyisipan batch lebih cepat dari pada pemrosesan biasa public static void batchinsert (koneksi conn) {coba {string sql = "masukkan ke dalam test_user1 (userid, nama pengguna, loadingtime)" + "values (?,?)"; // Pernyataan SQL yang menyisipkan data disiapkan pstmt = conn.preparestatement (SQL); Long StartTime = System.CurrentTimeMillis (); untuk (int i = 0; i <1000; i ++) {pstmt.setlong (1, i); pstmt.setstring (2, "pengguna"+i); PSTMT.SetDate (3, Tanggal Baru (System.CurrentTimeMillis ())); pstmt.addbatch (); // tambahkan ke pemrosesan batch} int [] hasil = pstmt.executebatch (); System.out.println ("Total waktu yang diambil:"+(System.CurrentTimeMillis () - StartTime)); pstmt.close (); // tutup koneksi basis data} catch (sqlexception e) {e.printstacktrace (); }} // Database Koneksi Publik Statis Koneksi GetConnection (String User, String Pass) {Connection Conn = Null; // Deklarasikan Objek Koneksi String Driver = "com.mysql.jdbc.driver"; // Driver Class Name String URL = "JDBC: MySQL: // LocalHost: 3306/uji?" // URL Database + "UseUnicode = true & characterencoding = utf8"; // Cegah kacau coba {class.forname (driver); // daftarkan (muat) driver conn = driverManager.getConnection (url, user, pass); // dapatkan koneksi basis data} catch (pengecualian e) {e.printstackrace (); } return conn; } // Rilis Database Connection Public Static Void ReleasEconnection (Connection Conn) {coba {if (conn! = Null) conn.close (); } catch (Exception e) {E.PrintStackTrace (); }}}10. Tampilan Pagination
Paket javacore1; impor java.sql.connection; impor java.sql.driverManager; impor java.sql.preparedstatement; impor java.sql.resultset; import java.sql.sqlexception; paparan kelas publik {public static static void main (string [string [] (] {public static Main Main (String [] [] {public static Main static (String [] [] (] {public static Main Main (string [] [] (] {public static Main static (string [string [] {public static main (string [string [] {public static main (string [string [] {public static Main static (string [string [] {public static Main static (string [strat "111111"); // Dapatkan Paging Koneksi Basis Data (Conn, 1,3); // Metode Nama Metode Panggilan Koneksi Basis Data, dan tentukan baris mana yang akan ditampilkan ke baris mana ReleasEconnection (Conn); // Lepaskan koneksi basis data} // halaman kueri public paging pagary (connection conn, int startindex, int total) {try {string sql = "select * dari karyawan (connection conn, int startIndex, int total) {try {string sql =" select * dari karyawan PreparedStatement pStmt = conn.preparestatement (sql); pstmt.setint (1, startIndex); pstmt.setint (2, total); Hasil rs = pstmt.executeQuery (); while (rs.next ()) {System.out.print ("Nomor kerja:"+rs.getint (1)); System.out.println ("Nomor departemen:"+rs.getint ("departemen_id")); } rs.close (); pstmt.close (); } catch (sqlexception e) {e.printstacktrace (); }} // Database Koneksi Publik Statis Koneksi GetConnection (String User, String Pass) {Connection Conn = Null; // Deklarasikan Objek Koneksi String Driver = "com.mysql.jdbc.driver"; // Driver Class Name String URL = "JDBC: MySQL: // LocalHost: 3306/uji?" // URL Database + "UseUnicode = true & characterencoding = utf8"; // Cegah kacau coba {class.forname (driver); // daftarkan (muat) driver conn = driverManager.getConnection (url, user, pass); // dapatkan koneksi basis data} catch (pengecualian e) {e.printstackrace (); } return conn; } // Rilis Database Connection Public Static Void ReleasEconnection (Connection Conn) {coba {if (conn! = Null) conn.close (); } catch (Exception e) {E.PrintStackTrace (); }}}11. Set hasil dapat digulir
package javacore1;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;public class ScrpllResult { public static void main(String[] args) { Connection conn = getConnection("h3", "111111"); // Dapatkan koneksi database scrpllResult (conn); // Metode nama panggilan database koneksi releaseconnection (conn); // lepaskan koneksi database} // gulir hasil yang diatur untuk menampilkan scrollResult void statis publik (koneksi conn) {coba {string sql = "pilih * dari karyawan"; // Gulir dapat digulir // konkurensi, set hasilnya hanya baca, dan persiapan disiapkan tidak dapat dimodifikasi. PreparedStatement pstmt = conn.prepareStatement (sql, resultset.type_scroll_sensitive, resultet.concur_read_only); Hasil rs = pstmt.executeQuery (); while (rs.next ()) {// travel system.out.print ("Nomor kerja:"+rs.getlong (1)); System.out.println ("name"+rs.getString ("last_name")); } while (rs.previous ()) {// travel system.out.print ("Nomor kerja:"+rs.getLong (1)); System.out.println ("Nomor Kerja:"+rs.getlong (1)); } rs.absolute (6); // bepergian langsung ke baris if (rs.next ()) {system.out.print ("Nomor kerja:"+rs.getlong (1)); System.out.println ("......... Nomor Departemen:"+rs.getString ("departemen_id")); } rs.close (); pstmt.close (); } catch (sqlexception e) {e.printstacktrace (); }} // Database Koneksi Publik Statis Koneksi GetConnection (String User, String Pass) {Connection Conn = Null; // Deklarasikan Objek Koneksi String Driver = "com.mysql.jdbc.driver"; // Driver Class Name String URL = "JDBC: MySQL: // LocalHost: 3306/uji?" // URL Database + "UseUnicode = true & characterencoding = utf8"; // Cegah kacau coba {class.forname (driver); // daftarkan (muat) driver conn = driverManager.getConnection (url, user, pass); // dapatkan koneksi basis data} catch (pengecualian e) {e.printstackrace (); } return conn; }// Release database connection public static void releaseConnection(Connection conn) { try { if (conn != null) conn.close(); } catch (Exception e) {E.PrintStackTrace (); }}}五.把上面十一个放在一起当然最方便省事。(需要用谁,只需把前面的注释打开便行)
package javacore1;import java.sql.CallableStatement;import java.sql.Connection;import java.sql.Date;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.sql.Statement;import java.sql.Types;public class jdbcMySql {public static void main(String[] args) { Connection conn = getConnection("h3", "111111"); // Get database connection //query(conn); //1. Query data //insert(conn); //2. Insert data //delete(conn); //3. Delete data //update(conn); //4. Update data //transCash(conn); //5. Transfer//execProc(conn); //6. Find stored procedures without parameters //int cnt = getMulti(conn); //7. Find stored procedures with parameters //System.out.println("People number: " + cnt); //Find stored procedures with parameters //planInsert(conn); //8. Ordinary processing //batchInsert(conn); //9. Batch processing // paging(conn,1,3);//10. Pagination display//scrpllResult(conn);//11. The result set can be scrolled to releaseConnection(conn);// Release database connection}//1. Query data, define query method public static void query(Connection conn){ String Sql="select * from employees"; try{ Statement stmt=conn.createStatement(); // You can also use PreparedStatement to do ResultSet rs=stmt.executeQuery(Sql);//Execute the sql statement and return the end while(rs.next()){//Transfer the result set System.out.println("People number:"+rs.getString("employee_id")+"Salary:"+rs.getString("salary")); } if(rs !=null){ try{ rs.close(); } catch (SQLException e){ e.printStackTrace(); } } if(stmt !=null){ try{ stmt.close(); } catch(SQLException e){ e.printStackTrace(); } } if(conn !=null){ try{ conn.close(); }catch(SQLException e){ e.printStackTrace(); } } } catch(Exception e){ e.printStackTrace(); }}//2. Insert data public static void insert(Connection conn) { try { String sql = "insert into employees(employee_id,last_name,salary,department_id,userid)" + " values ('100010', 'xiaogou', '7000','004','9')"; // SQL statement Statement stmt1 =conn.createStatement(); // Create a Statement object for executing static SQL statements int count = stmt1.executeUpdate(sql); // Execute the SQL statement for insertion operation and return the number of inserted data System.out.println("Inserted" + count + "bar of data" into biao); //Output the processing result of the insertion operation conn.close(); //Close the database connection} catch (SQLException e) { e.printStackTrace(); } }//3. Delete data public static void delete(Connection conn){ String Sql = "delete from employees where employee_id=100009"; try { Statement stmt = conn.createStatement();// Or use the PreparedStatement method stmt.executeUpdate(Sql);// Execute the sql statement if (stmt != null) { try { stmt.close(); } catch (SQLException e) { e.printStackTrace(); } } } catch (SQLException e) { e.printStackTrace(); } } }//4. Update data public static void update(Connection conn){ String Sql = "update employees set salary=8000 where employee_id=100005"; try { Statement stmt1 = conn.createStatement();//Or use PreparedStatement method stmt1.executeUpdate(Sql);//Execute the sql statement if (stmt1 != null) { try { stmt1.close(); } catch (SQLException e) { e.printStackTrace(); } } catch (SQLException e) { e.printStackTrace(); } } //5. Transfer (data exchange) (The original data was 100 and 500, but after implementing this function, it becomes 500 and 100. In fact, to put it bluntly, it is to update the data and change the data) public static void transCash(Connection conn){ Statement stmt = null; try{ conn.setAutoCommit(false);//Close automatic submission String sql = "update employees set salary=500 where employee_id=100001"; stmt = conn.createStatement(); stmt.executeUpdate(sql); sql = "update employees set salary=100 where employee_id=100001"; stmt = conn.createStatement(); stmt.executeUpdate(sql); sql = "update employees set salary=100 where employee_id=100002"; stmt.executeUpdate(sql);//Execute the sql statement, and the above two salaries will be replaced by conn.commit();//Commit transaction}catch(Exception e){ e.printStackTrace(); } finally{ try{ if(stmt != null)stmt.close(); } catch (Exception e) {E.PrintStackTrace (); } } } }//6. Call the stored procedure without a parameter; public static void execProc(Connection conn){ String sql = "{call raisesalary}"; try { CallableStatement cstmt = conn.prepareCall(sql); cstmt.executeUpdate(); } catch (SQLException e) { e.printStackTrace(); } } //7. Find stored procedures with parameters public static int getMulti(Connection conn) { int dept_id = 100001; int cnt = 0; String sql = "{call calc_emp_count(?,?)}"; try { CallableStatement cstmt = conn.prepareCall(sql);//Initialize the Statement object cstmt.setInt(1, dept_id);//CallableStatement.setxxx(parameter, value) or (number, value), and PreparedStatement.setxxx(number, value) can only be like this cstmt.setInt(2, cnt); // cstmt.registerOutParameter(2, Types.INTEGER);//Declare the output parameter cstmt.executeUpdate();//Execute the sql statement cnt = cstmt.getInt(2);//Get the result if (cstmt != null) { cstmt.close();//Release the Statement object} } catch (Exception e) { e.printStackTrace(); } return cnt; }//8. Normal processing public static void planInsert(Connection conn) { try { String sql = "insert into test_user1(userid,username,loadingtime)" + " values (?,?,?)"; // SQL statement to insert data PreparedStatement pstmt=conn.prepareStatement(sql); long startTime=System.currentTimeMillis(); for(int i=0;i<1000;i++){ pstmt.setLong(1, i); pstmt.setString(2, "user"+i); pstmt.setDate(3, new Date(System.currentTimeMillis())); pstmt.executeUpdate(); } System.out.println("Total time taken: "+(System.currentTimeMillis() - startTime)); pstmt.close(); //Close the database connection} catch (SQLException e) { e.printStackTrace(); } } //9. The speed of batch insertion is faster than that of ordinary processing public static void batchInsert(Connection conn) { try { String sql = "insert into test_user1(userid,username,loadingtime)" + " values (?,?,?)"; // SQL statement that inserts data PreparedStatement pstmt=conn.prepareStatement(sql); long startTime=System.currentTimeMillis(); for(int i=0;i<1000;i++){ pstmt.setLong(1, i); pstmt.setString(2, "user"+i); pstmt.setDate(3, new Date(System.currentTimeMillis())); pstmt.addBatch();//Add to batch processing} int[] result=pstmt.executeBatch(); System.out.println("Total time consumed: "+(System.currentTimeMillis() - startTime)); pstmt.close(); //Close the database connection} catch (SQLException e) { e.printStackTrace(); } }//10. Pagination query public static void paging(Connection conn,int startIndex,int total){ try{ String sql="select * from employees limit ?,?"; PreparedStatement pstmt=conn.prepareStatement(sql); pstmt.setInt(1, startIndex); pstmt.setInt(2, total); ResultSet rs=pstmt.executeQuery(); while(rs.next()){ System.out.print("work number: "+rs.getInt(1)); System.out.println("Department number: "+rs.getInt("department_id")); }rs.close(); pstmt.close(); }catch(SQLException e){ e.printStackTrace(); } }//11. The result set scrolls to display public static void scrollResult(Connection conn){ try{ String sql="select * from employees"; //The result set can be scrolled//concurrency, the result set is read-only, and the PreparedStatement pstmt=conn.prepareStatement(sql, ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY); ResultSet rs=pstmt.executeQuery(); while(rs.next()){ //Travel System.out.print("work number: "+rs.getLong(1)); System.out.println("name"+rs.getString("last_name")); }while(rs.previous()){//Travel System.out.print("work number: "+rs.getLong(1)); System.out.println("salary"+rs.getInt("salary")); } rs.absolute(6);//Indicate which line to jump directly to if(rs.next()){ System.out.print("work number: "+rs.getLong(1)); System.out.println("........Department number: "+rs.getString("department_id")); } rs.close(); pstmt.close(); } catch(SQLException e){ e.printStackTrace(); } } //Database connection public static Connection getConnection(String user, String pass) { Connection conn = null;//Declare the connection object String driver = "com.mysql.jdbc.Driver";// Driver class name String url = "jdbc:mysql://localhost:3306/test?" // Database URL + "useUnicode=true&characterEncoding=UTF8";// Prevent garbled try { Class.forName(driver);// Register (load) driver conn = DriverManager.getConnection(url, user, pass);// Get database connection} catch (Exception e) { e.printStackTrace(); } return conn; }// Release database connection public static void releaseConnection(Connection conn) { try { if (conn != null) conn.close(); } catch (Exception e) {E.PrintStackTrace (); }}}六.安装下载的数据库驱动程序jar包,不同的数据库需要不同的驱动程序(但是安装方法都是一样的)
在使用JDBC编程时需要连接数据库,导入JAR包是必须的,导入其它的jar包方法同样如此,导入的方法是
打开eclipse
1.右击要导入jar包的项目,点properties
2.左边选择java build path,右边选择libraries
3.选择add External jars
4.选择jar包的按照路径下的确定后就行了。
Java连接MySQL的最新驱动包下载地址
http://www.mysql.com/downloads/connector/j
1.鼠标放在你建的根目录上面。右击,然后选择最下面的properties。
2.然后左边选择java build path,右边选择libraries ,在选择右边的add External jars ,选择jar包的路径,点击确定就可以了
3.装好后,图如下出现你要添加的包。