JDBC
- 1. 註冊驅動 (Driver)
- 2. 建立連接(創建Connection)
- 3. 創建執行sql語句(通常是創建Statement或者其子類)
- 4. 執行語句
- 5. 處理執行結果(在非查詢語句中,該步驟是可以省略的)
- 6. 釋放相關資源
package com. db.jdbc ;
import java. sql.Connection ;
import java. sql.DriverManager ;
import java. sql.ResultSet ;
import java. sql.SQLException ;
import java. sql.Statement ;
import org. junit.Test ;
public class jdbcTest {
final String url = "jdbc:mysql://localhost:3306/test" ;
final String user = "root";
final String password = "";
ResultSet rs = null;
Statement st = null;
Connection connection = null;
@Test
public void test_jdbc(){
try {
Class .forName( "com.mysql.jdbc.Driver");//加載驅動
connection = DriverManager.getConnection( url, user, password);//獲取鏈接
st = connection. createStatement();//創建執行
rs = st. executeQuery("select
* from test");//執行
while( rs.next ()){//處理結果
System .out. println(rs .getString( "name"));
}
} catch (Exception e) {
e .printStackTrace();
}finally {
try {
if( rs!=null){
rs.close ();
}
if( st!=null){
st.close ();
}
if( connection!=null){
connection.close ();
}
} catch (SQLException e) {
// TODO Auto-generated
catch block
e .printStackTrace();
}
}
}
}
|
測試代碼:
@Test
public void test_register_Driver(){
try {
// Class.forName("com.mysql.jdbc.Driver");
// System.setProperty("jdbc.drivers", "com.mysql.jdbc.Driver");
DriverManager .registerDriver( new Driver());
Connection connection = DriverManager.getConnection( url, user, password);
Assert .assertEquals( false, connection.isClosed());
} catch (Exception e) {
e .printStackTrace();
}
}
|
@Test
public void test_statement() throws Exception{
Class .forName( "com.mysql.jdbc.Driver");
Connection connection = DriverManager.getConnection( url, user, password);
Statement st = connection.createStatement ();
ResultSet rs = st.executeQuery ("select
* from test");
while( rs.next ()){
rs .close();
}
ResultSet rs1 = st.executeQuery ("select
* from test");
while( rs1.next ()){
}
}
結果:報錯
|
看看statement和 PrparedStatement執行同樣的查詢
@Test
public void test_statement() throws Exception{
Class .forName( "com.mysql.jdbc.Driver");
Connection connection = DriverManager.getConnection( url, user, password);
Statement st = connection.createStatement ();
String id = "1";
ResultSet rs = st.executeQuery ("select
* from test where id="+id );
while( rs.next ()){
System .out. println(rs .getString( "name"));
}
}
結果:OK
@Test
public void test_prestatement() throws Exception{
Class .forName( "com.mysql.jdbc.Driver");
Connection connection = DriverManager.getConnection( url, user, password);
PreparedStatement ps = connection.prepareStatement( "select
* from test where id=?");
ps .setString( 1, "1");
ResultSet rs = ps.executeQuery ();
while( rs.next ()){
System .out. println(rs .getString( "name"));
}
}
結果:OK
|