使用JDBC的使用

1.注册驱动

方式一:Class.forName(“com.MySQL.jdbc.Driver”);
推荐这种方式,不会对具体的驱动类产生依赖。
方式二:DriverManager.registerDriver(com.mysql.jdbc.Driver);
会造成DriverManager中产生两个一样的驱动,并会对具体的驱动类产生依赖。

2.建立连接

Connection conn = DriverManager.getConnection(url, user, password);
URL用于标识数据库的位置,通过URL地址告诉JDBC程序连接哪个数据库,URL的写法为:

其他参数如:useUnicode=true&characterEncoding=utf8

3.创建执行SQL语句的statement
//Statement  
String id = "5";
String sql = "delete from table where id=" +  id;
Statement st = conn.createStatement();  
st.executeQuery(sql);  
//存在sql注入的危险
//如果用户传入的id为“5 or 1=1”,那么将删除表中的所有记录
//PreparedStatement 有效的防止sql注入(SQL语句在程序运行前已经进行了预编译,当运行时动态地把参数传给PreprareStatement时,即使参数里有敏感字符如 or '1=1'也数据库会作为一个参数一个字段的属性值来处理而不会作为一个SQL指令)
String sql = “insert into user (name,pwd) values(?,?)”;  
PreparedStatement ps = conn.preparedStatement(sql);  
ps.setString(1, “col_value”);  //占位符顺序从1开始
ps.setString(2, “123456”); //也可以使用setObject
ps.executeQuery(); 
4.处理执行结果(ResultSet)
1 ResultSet rs = ps.executeQuery();  
2 While(rs.next()){  
3     rs.getString(“col_name”);  
4     rs.getInt(1);  
5     //…
6 }  
5.释放资源

/

/数据库连接(Connection)非常耗资源,尽量晚创建,尽量早的释放
 //都要加try catch 以防前面关闭出错,后面的就不执行了
 1 try {
 2     if (rs != null) {
 3         rs.close();
 4     }
 5 } catch (SQLException e) {
 6     e.printStackTrace();
 7 } finally {
 8     try {
 9         if (st != null) {
10             st.close();
11         }
12     } catch (SQLException e) {
13         e.printStackTrace();
14     } finally {
15         try {
16             if (conn != null) {
17                 conn.close();
18             }
19         } catch (SQLException e) {
20             e.printStackTrace();
21         }
22     }
23 } 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值