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");
  }
  
 }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值