java對數據庫的操作(jdbc)

Java通過JDBC對數據庫的連接操作其通用操作爲:
String username;
String password;
String databaseURL;
Class.forName("JDBCDriverClass");
Connection connection=DriverManager.getConnection(databaseURL,username,password);


MySQL 連接:
Class.forName("com.mysql.jdbc.Driver");
Connection connection=DriverManager.getConnection("jdbc:mysql://localhost:3306/databasename", "root", " ");

 

SQLServer連接 :
Class.forName('com.microsoft.jdbc.sqlserver.SQLServerDriver');
String url='jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=databasename';
String user='sa';
String password='' ";
Connection conn= DriverManager.getConnection(url,user,password); 

 

Access(通過JDBC-ODBC橋)連接:
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection connection=DriverManager.getConnection("jdbc:odbc:DataSource", "username", "password");

 

Oracle連接 :
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection connection=DriverManager.getConnectio("jdbc:oracle:thin:@hostname:port#:oracleDBSID", "0", "0");

 

創建語句:
Statement statement=connection.createStatement();
執行插入更新等:int count=statement.executeUpdate("create table/insert into/update/delete..."); 返回影響的行數。
   執行查詢語句:ResultSet resultset=statement.executeQury("select..."); 返回ResultSet。

 

處理結果(ResultSet的處理):
while(resultset.next()){
 ...
 resultset.getString/getInt/getDouble...(列序號);   如resultset.getString(1),resultset.getDouble(3)... 列序號

從1開始,第一列爲1,第二列爲2...
 resultset.getString/getInt/getDouble...("列名");    如resultset.getString("SName"),resultset.getInt("S#")...
 ...
}

 

批處理:
statement.addBatch("insert into ...");
statement.addBatch("create table...");
statement.addBatch("update...");
...
int count[ ]=statement.executeBatch();   返回影響行數的數組。

 

預處理語句:
預處理語句接口PreparedStatement是Statement的接口拓展。
PreparedStatement/Statement pstmt=connection.prepareStatement("insert into student(S#,SName,Age,Sex)"
values(?,?,?,?));
其中?爲佔位符,佔位符位置從1開始,第一個?爲第一位,的二個?爲第二位...
佔位符參數的設置爲:pstmt.setX(int index,X value); index爲?的索引,X爲參數類型如String,int ,double等等。
對上述創建的預處理語句執行如下:
pstmt.setInt(1,0755010100);
pstmt.setString(2,"jack");
pstem.setInt(3,20);
pstmt.setString(4,"man");
int count=pstmt.executeUpdate();


對MySQL的連接例子:
package JDBC;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;


public class MySQLJdbcDemo {
 public static void main(String[] args){
  MySQLJdbcDemo demo=new MySQLJdbcDemo();
 }
 
 private Connection connection;
 private Statement statement;
 private ResultSet resultset;
 private PreparedStatement pstmt;
 
 public MySQLJdbcDemo() {
  try {
   //數據庫的連接
   Class.forName("com.mysql.jdbc.Driver");
   connection=DriverManager.getConnection("jdbc:mysql://localhost:3306/test",

"root", "000000");
   //語句塊與預處理語句塊的定義
      statement=connection.createStatement();
      pstmt=connection.prepareStatement("select * from student where sex=?");
     
      //結果的處理
   resultset=statement.executeQuery("select * from student");
   while(resultset.next()){
    System.out.print(resultset.getString(1)+" ");
    System.out.print(resultset.getString("name")+" ");
    System.out.print(resultset.getInt(3)+" ");
    System.out.print(resultset.getString("sex")+"\t");
   }
   
   //批處理
   statement.addBatch("insert into student values(0755010137,'DDL',21,'m')");
   statement.addBatch("insert into student values(0755010101,'XWL',22,'m')");
   statement.executeBatch();
   
   //預處理語句
   pstmt.setString(1, "m");
   resultset=pstmt.executeQuery();
   while(resultset.next()){
    System.out.print(resultset.getString(1)+" ");
    System.out.print(resultset.getString("name")+" ");
    System.out.print(resultset.getInt(3)+" ");
    System.out.print(resultset.getString("sex")+"\t");
   }
   
   pstmt.setString(1, "w");
   resultset=pstmt.executeQuery();
   while(resultset.next()){
    System.out.print(resultset.getString(1)+" ");
    System.out.print(resultset.getString("name")+" ");
    System.out.print(resultset.getInt(3)+" ");
    System.out.print(resultset.getString("sex")+"\t");
   }
   
  } catch (SQLException e) {
   System.out.println("SQLException");
  } catch (ClassNotFoundException e) {
   System.out.println("ClassNotFoundException");
  }
  
 }
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章