JDBC入门学习笔记
1.JDBC就是Java连接数据库。
2.JDBC四大配置参数:
driverClassName:com.mysql.jdbc.Driver
url:jdbc:mysql://localhost:3306/test
username:root
password:root
3.步骤:
导jar包:驱动
加载驱动类:Class.forName(“类名”);
给出url,username,password
使用DriverManager类得到Connection对象。
4.解析ResultSet
ResultSet内容有一个行光标
ResultSet的next()方法可以把光标向下移动1行。
next()方法返回的boolean值,表示当前行是否存在。
返回的记录中有几个特殊的行,beforeFirst(默认光标位置),first,last,AfterLast
当光标指向afterLast时,next()方法返回false。
ResultSet提供了一个系列的getXxx()方法。
-getInt(1),1表示获取第一列;getInt(“sid”)
-getString()
-getDouble()
-getDate()
-getTime()
-getObject()
…
5.PreparedStatement
他是Statement接口的子接口
优点:
-防止sql攻击
-提高代码的可读性、可维护性
-提高效率
得到PreparedStatement对象
-给出sql模板
-调用Connection的PreparedStatement prepareStatement(String sql模板)方法
-调用preparedStatement对象的setXxx()系列方法为sql中的?赋值
-调用对象的executeUpdate()或executeQuery()方法,但它的方法都没有参数
预处理的原理
-服务器的工作:
–校验sql语句的语法
–编译:一个与函数相似的东西
–执行:调用函数
-PreparedStatement:
–前提:连接的数据库必须支持预处理
–每个pstat都与一个sql模板绑定在一起,先把sql模板给数据库,数据库先进性校验,再进行编译,执行时只是把参数传递过去而已。
–若二次执行时,就不用再次校验语法,也不用再次编译,直接执行。
时间类型
数据库类型与java中类型的对应关系
DATE -> java.sql.Date
TIME -> java.sql.Time
TIMESTAMP -> java.sql.TimeStamp
领域对象(domain)中的所有属性不能出现java.sql包下的内容,即不能使用java.sql.Date。
ResultSet.getDate()返回的是java.sql.Date()
PreparedStatement.setDate(int,Date),其中第二个参数也是java.sql.Date
时间类型的转化
java.util.Date -> java.sql.Date,Time,Timestamp
-把util的Date转换成毫秒值,使用毫秒值创建sql的Date
例:
java.util.Date date = new java.util.Date();
long l = date.getTime();
java.sql.Date sqlDate = new java.sql.Date(l);
java.sql.Date,Time,Timestamp -> java.util.Date
-这一步不需要处理,因为java.sql.Date是java.util.Date的子类
**大数据
所谓大数据,就是大的字节数据,或大的字符数据。
**批处理
preparedStatement对象内部有集合
1.用循环向pstat对象中添加sql参数,它自己有模板,使用一组参数与模板就可以匹配出一条sql语句。
2.调用它的执行批方法,完成向数据库的发送
MySQL默认关闭批处理,打开批处理,需要在url后面加上“?rewriteBatchedStatements=true”。