持久化:将内存中的数据保存到可永久保存的存储设备中
持久化的主要应用是将内存中的数据存储在关系型的数据库中,当然也可以存储在磁盘文件、XML数据文件中。
JDBCjava数据库连接
是JavaEE平台下的技术规范
定义了在Java语言中连接数据库,执行SQL语句的API
可以为多种关系数据库提供访问
数据库驱动就是一个操作数据库的一个程序
不同数据产品的数据库驱动名字有差异
在程序中需要依赖数据库驱动来完成数据库的操作
基于JDBC标准访问数据库
使用第三方ORM框架,如Hibernate,Mybatis等访问数据库
Driver接口用来定义数据库驱动对象应该具备的一些能力。比如数据库连接的方法定义,该接口是提供给数据库厂商使用的,所有支持Java语言连接的数据都实现了该接口,该接口是我们称为的数据库驱动类。
DriverManager是驱动程序管理器,是负责管理数据库驱动程序的。驱动注册后,会保存在DriverManager中的已注册列表中的。DriverManager通过实例化的数据库驱动对象,能够建立应用程序和数据库之间的连接。并返回Connection接口类型的数据库连接对象。
getConnection(String jdbcURL,String user,String password)
该方法通过访问数据库的URL,用户密码,返回对应的Connection对象
JDBC U RL
与数据库连接时,用来连接到指定数据库的标识符。在URL中包括了该数据库的类型,地址,端口、库名称等信息。不同的数据库连接的URL不同。
连接Mysql数据库:
Connection conn =DriverManager.getConnection("jdbc:mysql://host:port/database","user","password");
Connection是数据库的连接对象。对数据库的一切操作都是建立在这个连接的基础之上进行的,我们可以通过高对象执行sql语句并返回结果
常用的方法
createStatement()
创建向数据库发送sql的Statement接口类型的对象。
preparedStatement(sql)
创建向数据库发送预编译sql的PreparedStatement接口类型的对象。
setAutoCommit(boolean autoCommit)
设置事务是否自动提交。
commit()在连接上提交事务
rollBack()在此链接上回滚事务。
用于执行静态SQL语句并返回它所生产的对象。由createStatement创建,用于发送简单的SQL语句。
常用的方法
excute(String sql)
执行参数中的sql,返回是否有结果集
excuteQuery(String sql)
运行select语句,返回ResultSet结果集。
excuteUpdate(String sql)
运行insert/update/delete操作,返回更新的行数。
addBach(String sql)
把多条sql语句放在一个批处理中
executeBatch向数据库发送一批sql语句执行
继承自Statement接口,由preparedStatement创建,用于发送含有一个或者多个参数的sql语句。PreparedStatement对象比Statement对象的效率更加高,由于实现动态的参数绑定,所以可以防止SQL注入,所以一般我们都使用PreparedStatement。
常用的方法
addBatch()
把当前 sql 语句加入到一个批处理中。
execute()
执行当前 SQL,返回个 boolean 值
executeUpdate()
运行 insert/update/delete 操作,返回更新的行数。
executeQuery()
执行当前的查询,返回一个结果集对象
setDate(int parameterIndex, Date x)
向当前SQL语句中的指定位置绑定一个java.sql.Date值
setDouble(int parameterIndex, double x)
向当前 SQL 语句中的指定位置绑定一个 double值
setFloat(int parameterIndex, float x)
向当前 SQL 语句中的指定位置绑定一个 float 值
setInt(int parameterIndex, int x)
向当前 SQL 语句中的指定位置绑定一个 int 值
setString(int parameterIndex, String x)
向当前 SQL 语句中的指定位置绑定一个 String 值
ResultSet 用来暂时存放数据库查询操作获得结果集。
常用方法
getString(int index)、getString(String columnName)
获得在数据库里是 varchar、char 等类型的数据对象。
getFloat(int index)、getFloat(String columnName)
获得在数据库里是 Float 类型的数据对象。
getDate(int index)、getDate(String columnName)
获得在数据库里是 Date 类型的数据。
getBoolean(int index)、getBoolean(String columnName)
获得在数据库里是 Boolean 类型的数据。
getObject(int index)、getObject(String columnName)
获取在数据库里任意类型的数据。