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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值