java知识点——数据库JDBC相关

l  JDBC : Java data base connectivity,java数据库连接技术,为java程序提供一套操作各种数据库的统一接口:

l  Driver 接口:所有JDBC驱动程序均实现了Driver接口

l  DriverManager 类:负责管理JDBC驱动

l  Connection 接口:一个Connection示例代表与数据库的连接,一个程序可与单个数据库有一个或多个连接,或者可与许多数据库有连接

l  Statement 接口:用于执行静态SQL语句

l  PreparedStatment 接口:用于执行动态SQL语句

l  ResultSet 接口:查询数据库最终得到结果记录集

JDBC访问数据库的基本步骤:

(1)       拷贝JDBC驱动到classpath对应的路径中;

(2)       加载JDBC驱动并注册到DriverManager中:

//Oracle8/8i/9i数据库(thin)模式
Class.forName(“oracle.jdbc.driver.OracleDriver”).newInstance();
//Sql Server7.0/2000数据库
Class.forName(“com.microsoft.jdbc.sqlserver.SQLServerDriver”).newInstance();
//DB2数据库
Class.forName(“com.ibm.db2.jdbc.app.DB2Driver”).newInstance();
//Informix数据库
Class.forName(“com.informix.jdbc.IfxDriver”).newInstance();
//Sybase数据库
Class.forName(“com.sybase.jdbc.SybDriver”).newInstance();
//MySQL数据库
Class.forName(“com.mysql.jdbc.Driver”).newInstance();
//PostgreSQL数据库
Class.forName(“org.postgresql.Driver”).newInstance();

(3)       建立数据库连接,获得Connection对象

//Oracle8/8i/9i数据库(thin模式)
String url = "jdbc:oracle:thin:@localhost:1521:orcl";//oracle中每个表对应对象,没有数据库界限?此处orcl指?
String user = "scott";
String password = "tiger";
Connection conn = DriverManager.getConnection(url,user,password);

//SQL Server7.0/2000数据库
String url = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs";//此处pubs为sqlserver中数据库名
String user = "sa";
String password = "";
Connection conn = DriverManager.getConnection(url,user,password);

//DB2数据库
String url = "jdbc:db2://localhost:5000/sample";//此处sample为DB2中数据库名
String user = "admin";
String password = "";
Connection conn = DriverManager.getConnection(url,user,password);

//Informix数据库
String url = "jdbc:informix-sqli://localhost:1533/testDB:INFORMIXSERVER=myserver;user=testuser;password=testpassword";
Connection conn = DriverManager.getConnection(url);

//Sybase数据库
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);

//Mysql数据库
String url = "jdbc:mysql://localhost:3306/testDB?user=root&password=root&useUnicode=true&characterEncoding=gb2312";
Connection conn = DriverManager.getConnection(url);

//PostgreSQL数据库
String url = "jdbc:postgresql://localhost/testDB";
String user = "myuser";
String password = "mypassword";
Connection (url,user,password);

(4)       指定事务边界 try catch

(5)       编写SQL语句,建立Statement或PreparedStatement对象

//建立Statment对象
String sql = "select * from user";
Statement stmt = conn.createStatement();
//建立PreparedStatement对象
String sql2 = "select * from user where userId=? and userPassword=?";
PreparedStatement pstmt = conn.prepareStatement(sql2);
pstmt.setInt(1,userId);
pstmt.setString(2,password);

(6)       调用相应的插查删改API,执行SQL语句

//静态SQL
ResultSet rs = stmt.executeQuery(sql);//静态的SQL还有一个executeUpdate(sql)执行查删改操作
//动态SQL
ResultSet rs = pstmt.executeQuery();

(7)       访问结果记录集ResultSet对象

while(rs.next){
   rs.getString(1);
}

(8)       提交,边界结束

(9)       释放资源:rs.close();pstmt.close();stmt.close();conn.close()

 

posted on 2013-04-18 20:01  Jusaka Deng  阅读(244)  评论(0编辑  收藏  举报