jdbc訪問數據庫
1 將數據庫的JDBC驅動加載到classpath中,在基于JAVAEE的WEB應用實際開發過程中,通常要把目標數據庫產品的JDBC驅動復制到WEB-INF/lib下.
2 加載JDBC驅動,并將其注冊到DriverManager中;
3 建立數據庫連接,取得Connection對象.例如:
MySQL:
String Driver="com.mysql.jdbc.Driver"; //驅動程序
String URL="jdbc:mysql://localhost:3306/db_name"; //連接的URL,db_name為數據庫名
String Username="username"; //用戶名
String Password="password"; //密碼
Class.forName(Driver).new Instance();
Connection con=DriverManager.getConnection(URL,Username,Password);
Microsoft SQL Server驅動(msbase.jar、mssqlserver.jar、msutil.jar):
String Driver="com.microsoft.jdbc.sqlserver.SQLServerDriver"; //連接SQL數據庫的方法
String URL="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=db_name"; //db_name為數據庫名
String Username="username"; //用戶名
String Password="password"; //密碼
Class.forName(Driver).new Instance(); //加載數據驅動
Connection con=DriverManager.getConnection(URL,UserName,Password);
Microsoft SQL Server驅動(jtds-1.2.jar):
String Driver="net.sourceforge.jtds.jdbc.Driver"; //連接SQL數據庫的方法
String URL="jdbc:jtds:sqlserver://localhost:1433/db_name;s=8.0;lastupdatecount=true"; //db_name為數據庫名
String Username="username"; //用戶名
String Password="password"; //密碼
Class.forName(Driver).new Instance(); //加載數據驅動
Connection con=DriverManager.getConnection(URL,UserName,Password);
Sysbase:
String Driver="com.sybase.jdbc.SybDriver"; //驅動程序
String URL="jdbc:Sysbase://localhost:5007/db_name"; //db_name為數據可名
String Username="username"; //用戶名
String Password="password"; //密碼
Class.forName(Driver).newInstance();
Connection con=DriverManager.getConnection(URL,Username,Password);
Sysbase:
String url="jdbc:sybase:Tds:localhost:5007/tsdata";
Properties sysProps=System.getProperties();
SysProps.put("user","userid");
SysProps.put("password","user_password");
Connection conn=DriverManager.getConnection(url,SysProps);
Oracle(用thin模式):
String Driver="oracle.jdbc.driver.OracleDriver"; //連接數據庫的方法
String URL="jdbc:oracle:thin:@loaclhost:1521:orcl"; //orcl為數據庫的SID
String Username="username"; //用戶名
String Password="password"; //密碼
Class.forName(Driver).newInstance(); //加載數據庫驅動
Connection con=DriverManager.getConnection(URL,Username,Password);
PostgreSQL:
String Driver="org.postgresql.Driver"; //連接數據庫的方法
String URL="jdbc:postgresql://localhost/db_name"; //db_name為數據可名
String Username="username"; //用戶名
String Password="password"; //密碼
Class.forName(Driver).newInstance();
Connection con=DriverManager.getConnection(URL,Username,Password);
DB2:
String Driver="com.ibm.db2.jdbc.app.DB2.Driver"; //連接具有DB2客戶端的Provider實例
//String Driver="com.ibm.db2.jdbc.net.DB2.Driver"; //連接不具有DB2客戶端的Provider實例
String URL="jdbc:db2://localhost:5000/db_name"; //db_name為數據可名
String Username="username"; //用戶名
String Password="password"; //密碼
Class.forName(Driver).newInstance();
Connection con=DriverManager.getConnection(URL,Username,Password);
Informix:
String Driver="com.informix.jdbc.IfxDriver";
String URL="jdbc:Informix-sqli://localhost:1533/db_name:INFORMIXSER=myserver"; //db_name為數據可名
String Username="username"; //用戶名
String Password="password"; //密碼
Class.forName(Driver).newInstance();
Connection con=DriverManager.getConnection(URL,Username,Password);
JDBC-ODBC:
String Driver="sun.jdbc.odbc.JdbcOdbcDriver";
String URL="jdbc:odbc:dbsource"; //dbsource為數據源名
String Username="username"; //用戶名
String Password="password"; //密碼
Class.forName(Driver).newInstance();
Connection con=DriverManager.getConnection(URL,Username,Password);
4 建立Statement對象或PreparedStatement對象.例如:
//建立Statement對象
Statement stmt=conn.createStatement();
//建立ProparedStatement對象
String sql="select * from user where userName=? and password=?";
PreparedStatement pstmt=Conn.prepareStatement(sql);
pstmt.setString(1,"admin");
pstmt.setString(2,"liubin");
5 執行SQL語句.例如:
String sql="select * from users";
ResultSet rs=stmt.executeQuery(sql);
//執行動態SQL查詢
ResultSet rs=pstmt.executeQuery();
//執行insert update delete等語句,先定義sql
stmt.executeUpdate(sql);
6 訪問結果記錄集ResultSet對象。例如:
while(rs.next)
{
out.println("你的第一個字段內容為:"+rs.getString());
out.println("你的第二個字段內容為:"+rs.getString(2));
}
7 依次將ResultSet、Statement、PreparedStatement、Connection對象關閉,釋放所占用的資源.例如:
rs.close();
stmt.clost();
pstmt.close();
con.close();