在Java程序中通过JDBC操作数据库一般分为以下几个步骤:
(以下只拿Oracle,MSSQL,MySQL三个数据库作为例子)
(1)加载JDBC驱动: 将数据库的JDBC驱动加载到classpath中,在基于JavaEE的Web应用实际开发过程中,通常要把目标数据库产品的JDBC驱动复制到WEB-INF/lib下.
(2)实例化数据库连接驱动类: 并将其注册到DriverManager中.下面是一些主流数据库的JDBC举动加载注册的代码(只写出笔试常考):
//Oracle8/8i/9i 数据库(thin 模式)
Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
//SQL Server7.0/2000 数据库
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
//MySQL数据库
Class.forName("com.mysql.jdbc.Driver").newInstance();
(这里省略了DB2,Informix,Sybase,PostgreSQL这几个数据库)
(3)建立数据库连接,取得Connection对象.例如:
//Oracle8/8i/9i 数据库(thin 模式)
String url="jdbc:oracle:thin:@localhost:1521: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";
String user="sa";
String password="";
Connection conn="DriverManager.getConnection(url,user,password);
//MySQL 数据库
String url="jdbc:mysql://localhost:3306/testDB?user=root&password=root&useUnicode=true&characterEncoding=gb2312";
Connection conn=DriverManager.getConnection(url);
(4)建立Statement对象或PreparedStatement对象.例如:
//建立Statement 对象
Statement stmt=conn.createStatement();
//建立Preparedment 对象
String sql="select * from users where userName=? and password=?";
PreparedStatement pstmt=conn.prepareStatement(sql);
pstmt.setString(1,"admin");
pstmt.setString(2,"liubin");
(5)执行SQL语句.例如:
//执行静态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(1));
out.println("你的第二个字段内容为: " + rs.getString(2));
}
(7)依次将ResultSet,Statement,PreparedStatement,Connection对象关闭,释放所占用的资源.例如:
rs.close();
stmt.close();
pstmt.close();
con.close();