JDBC的使用

简介:
JDBC原理
   JDBC定义了一组操作数据库的接口,不同的数据库厂商提供了JDBC接口的实现,这个实现称为JDBC驱动。这样就可以通过JDBC接口来对不同数据库获得统一的操作。
 
JDBC常用类
1. java.sql.DriverManager: 管理一组 JDBC 驱动程序的基本服务。
2. java.sql.Connection: 与特定数据库的连接(会话)。
3. java.sql.Statement: 用于执行静态 SQL 语句并返回它所生成结果的对象。
4. java.sql.ResultSet: 表示数据库结果集的数据表,通常通过执行查询数据库的语句生成。
5. java.sql.PreparedStatement
6. java.sql.CallableStatement
 
JDBC操作数据库的一般步骤
//1:注册驱动类    
    Class.forName( "com.mysql.jdbc.Driver");    
//2:创建数据库连接 
    Connection conn = DriverManager.getConnection(dburl, user, password);    
//3:创建执行SQL的对象 
    Statement stmt = conn.createStatement();    
//4:执行SQL,并获取返回结果 
    ResultSet rs = stmt.executeQuery(testsql);    
//5:处理返回结果,此处打印查询结果 
     while (rs.next()) {    
         .... 
    }    
//6:关闭数据库连接 
    conn.close();

本人封装的简单JDBC工具类SqlBean
package can.javaBean; 
import java.sql.*; 

public  class sqlBean { 
         public    Connection conn =  null
         public    Statement stmt =  null
         public    ResultSet rs =  null
         
         public  boolean connectDB(String DatabaseDriver, String url) {        
                conn =  null
                 
                 //打开数据库连接 
                 try { 
                        Class.forName(DatabaseDriver);    
                        conn = DriverManager.getConnection(url); 
                         return  true;                        
                } catch(ClassNotFoundException ex) { 
                        ex.printStackTrace(); 
                } catch(SQLException ex) { 
                        ex.printStackTrace(); 
                } 
                 return  false
        } 
         
         public  boolean closeConn() { 
                 //关闭数据库连接 
                 try
                         if(stmt !=  null){ 
                                stmt.close(); 
                                stmt =  null
                        } 
                         
                         if(conn !=  null){ 
                                conn.close(); 
                                conn =  null
                        } 
                         return  true
                } catch(SQLException ex) { 
                        ex.printStackTrace(); 
                         return  false
                } 
        } 
         
         public ResultSet execQuery(String sql) { 
                 //执行查询 
                rs =  null
                 if (conn !=  null && sql !=  null) { 
                         try
                                stmt = conn.createStatement(); 
                                rs = stmt.executeQuery(sql); 
                        } catch(SQLException ex)        { 
                                ex.printStackTrace(); 
                        } 
                } 
                 return rs; 
        } 
         
         public  int execUpdate(String sql) { 
                 //执行更新或删除 
                 int rows = 0; 
                 
                 if (conn !=  null && sql !=  null){ 
                         try
                                stmt = conn.createStatement(); 
                                rows = stmt.executeUpdate(sql); 
                        } catch(SQLException ex)        { 
                                ex.printStackTrace(); 
                        } 
                } 
                 return rows; 
        } 
}

web.xml相应设置
<context-param>        
         <param-name>context/driver</param-name>        
         <param-value>com.mysql.jdbc.Driver</param-value> 
         <param-name>context/url</param-name> 
         <param-value><![CDATA[jdbc:mysql: //localhost/teachingSystem?user=canny&password=123456&useUnicode=true&characterEncoding=GB2312]]></param-value> 
</context-param> 

servlet使用例子
doPost()
SqlBean sqlBean =  new SqlBean(); 

String driver = getServletContext().getInitParameter( "context/driver"); 
String url = getServletContext().getInitParameter( "context/url"); 

if (sqlBean.connectDB(driver, url) !=  true) { 
        errorMsg =  "数据库连接出错coon"
        writeMsg(response, errorMsg); 
         return ; 


String sql =  "select * from studentInfo where stu_no='" + infoStr[0]+  "'"
ResultSet rs = sqlBean.execQuery(sql); 
if (rs ==  null) { 
        errorMsg =  "数据库连接出错rs"
        writeMsg(response, errorMsg); 
         return ; 


try { //catch rs.next()的exception 
         if (rs.next()){    
                 //存在重复 
                errorMsg =  "所输入的学号已经存在了"
                writeMsg(response, errorMsg); 
        } else//进行添加 
                sql =  "insert into studentInfo values('" + infoStr[0] +  "','" 
                     + infoStr[1] +  "','" + infoStr[2] + "','" + infoStr[3]+  "','" 
                     + infoStr[4] +  "','" + infoStr[5] + "','123456')"
         
                 int row = sqlBean.execUpdate(sql); 
                 if (row == 1) { 
                        errorMsg =  "添加信息成功!"
                        onClickStr =  "inputstudent.jsp"
                } 
                 else 
                        errorMsg =  "添加信息失败"
                 
                writeMsg(response, errorMsg); 
        } 
} catch(SQLException ex)  { 
        errorMsg =  "数据库连接出错rs"
        writeMsg(response,errorMsg); 
} finally  {  sqlBean.closeConn();   }

本文转自 Icansoft 51CTO博客,原文链接:  http://blog.51cto.com/android/110493
相关文章
|
14天前
|
SQL Java 关系型数据库
JDBC详解
Java Database Connectivity(JDBC)是Java语言中用于访问关系型数据库的标准接口,定义了一组API,使Java程序能以统一方式连接、访问和操作不同关系型数据库,简化数据库操作,提高Java应用程序的可移植性和可维护性。使用JDBC进行数据库操作主要包括创建数据源对象、建立连接、构造和执行SQL语句及释放资源等步骤。此外,还可以使用Set系列方法设置值,并使用get系列方法获取查询结果。
18 2
JDBC详解
|
4月前
|
Java 关系型数据库 MySQL
JDBC是真的啰里啰嗦啊-但是很重要!(上)
JDBC是真的啰里啰嗦啊-但是很重要!
27 1
|
4月前
|
SQL Java 数据库连接
JDBC是真的啰里啰嗦啊-但是很重要!(下)
JDBC是真的啰里啰嗦啊-但是很重要!
23 1
|
12月前
|
XML 存储 Java
什么是jdbc?为什么要用jdbc
什么是jdbc?为什么要用jdbc
|
SQL Oracle 数据可视化
|
SQL 缓存 关系型数据库
JDBC的“那些事“之应当注意的问题(下)
JDBC的“那些事“之应当注意的问题(下)
|
SQL 存储 关系型数据库
JDBC的“那些事“之应当注意的问题(中)
JDBC的“那些事“之应当注意的问题(中)
|
SQL 人工智能 数据可视化
JDBC的“那些事“之应当注意的问题(上)
JDBC的“那些事“之应当注意的问题(上)
|
缓存 druid Java
JDBC2.0
JDBC2.0在1.0版本java.sql.*上增加了一个扩展包javax.sql.*包,这个包里面包含两个接口: 1.DataSource,数据源。 2.ConnectionPoolDataSource,数据池。 DataSource的源码可以看到,这个接口的作用就是拿来获取connection连接的。 各个数据库厂商只负责实现connection, 至于获取connection,在JDBC1.0里面是由DriverManager来负责的。 JDBC2.0版本之所新增DataSource,原因很简单——数据库连接池。1.0版本时每用一次connection都需要重新new,而da
119 0
JDBC2.0
|
SQL Java 关系型数据库
JDBC介绍
JDBC介绍
100 0