jdbc笔记

1。jdbc作用:java语言使用jdbc来操作数据库(java database connectivity)
2。jdbc严格来说是一种规范(java语言用来访问各种关系型数据库的规范)
3。实现数据持久化的主要技术
 • jdbc
 • jdo
 • 第三方框架 hibernate ,mybatis等
4。第一个jdbc应用的开发步骤
 • 获得连接(connection)
 • 通过连接来创建statement,发送sql
 • 关闭资源


5。小结
     API:
 • DiverManager类:驱动程序管理器,用来管理驱动,并创建连接
 • getConnection(URL,userName,password);
 • url:jdbc:mysql://localhost:3306(端口号,默认3306)/文件名
 • connection接口,代表数据库的连接
 • Statement接口:代表声明,用来发送sql语句
 • execute(“sql语句”);
6。jdbc开发步骤
 • 1.加载驱动
 • Class.forName(com.mysql.jdbc.Driver);
 • 2.获得连接
 • 3.创建Statement
 • 4.执行sql
 • 5.关闭资源,先关闭statement,再关闭connection
7。Connection接口
 • 这个接口代表与数据库的一个连接,使用它可以控制事务,创建Statement
8。Statement接口
 • 代表一个声明,使用它可以向数据库发送sql语句
 • 主要提供三个方法用于执行特定的sql
 • 1.boolean execute(sql);可执行任何sql,如果有记录集则返回true,否则返回false
 • int executeUpdate(sql);主要用来执行DML语句(update,delete,insert)返回受影响记录的条数
 • ResultSet executeQuery();
 • ResultSet接口:用来存储记录的集合
     常用方法:
 • next();向下移动记录的游标,如还有记录返回true
 • getXXX(int);XXX数据类型 int填写字段的位置
 • getXXX("column_Name");列名
异常的处理
使用JDBC时需要用到很多资源,如Connection,Statement,ResultSet,使用完成后,无论是否出现异常,都需要保证关闭(释放)这些资源;因此需要在finally中关闭;结果如下;
Connection conn=null;
Statement stat=null;
try{
conn=.....;
stat=.....;
stat.execut(....);
}catch(Exceiption e){


}finally{
stat.close();
conn.close();
}
JDK1.7提供了自动关闭资源的新的异常处理语法;(try-with-resources)
前提要求:需要自动关闭的资源需要实现AutoCloseable接口;语法是
try(定义需要自动关闭的资源){


}catch(){


}

try(Connection conn=DriverManger.getConnection(url,name,pwd);
Statement st=conn.createStatement();){


}catch(){


}
sql注入问题
即使用者可以给程序传入一些sql的片断来达到破坏sql语句的目的;
如何解决sql注入问题?
PreparedStatement;它是Statement的子接口;
PreparedStatement是预先编译的Sql,因此,执行多次相同的sql时,性能更佳;
PreparedStatement还可以处理更多的数据类型;
使用PreparedStatement的步骤
创建PrepareStatement;conn.preparedStatement(sql);
sql:insert into book values(?,?,?);
给ps的点位符赋值,索引从1开始,使用setXXX(index,value)赋值
ps.setString(1,'智能时代');
ps.setInt(96);
ps.setDate(date);
执行ps(以下方法均可使用)
ps.execute();
ps.executeUpdate();
ps.executeQuery();
JDBC的事务控制
JDBC通过Connection来控制事务
conn.setAutoCommit(false);//手动提交事务
conn.commit():提交事务
conn.rollback():回滚事务
什么时侯需要事务
一个功能(业务),例如转帐,购买图书,如果包含多个操作时,需要用到事务;
Date类型的处理
mysql中表示日期的类型有三个Date,time,Timestamp
java中同样也有三个表示时间的类型,分别是Date,Time,Timestamp;这三个类型位于java.sql包;
这个三个类都 是java.util.Date的子类;

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值