JDBC
补充:Jabc相关类介绍
1.Connection类
a.用于代表数据库的链接,客户端与数据库所有交互都是通过connection对象完成的。
b.主要方法:
createStatement():创建向数据库发送sql的statement对象。
prepareStatement(sql) :创建向数据库发送预编译sql的PrepareSatement对象。
prepareCall(sql):创建执行存储过程的callableStatement对象。
setAutoCommit(boolean autoCommit):设置事务是否自动提交。
commit() :在链接上提交事务。
rollback() :在此链接上回滚事务。
2.Statement类
a.Statement对象用于向数据库发送SQL语句。
b.主要方法:
executeQuery(String sql) :用于向数据发送查询语句。
executeUpdate(String sql):用于向数据库发送insert、update或delete语句
execute(String sql):用于向数据库发送任意sql语句
addBatch(String sql) :把多条sql语句放到一个批处理中。
executeBatch():向数据库发送一批sql语句执行。
3.ResultSet类
a.ResultSet用于代表Sql语句的执行结果。
b.Resultset封装执行结果时,采用的类似于表格的方式。
c.ResultSet 对象维护了一个指向表格数据行的游标,初始的时候,游标在第一行之前,调用ResultSet.next() 方法,可以使游标指向具体的数据行,进行调用方法获取该行的数据。
d.主要方法:
获取任意类型的数据:
getObject(int index)
getObject(string columnName)
获取指定类型的数据:
getString(int index)
getString(String columnName)
对结果集进行回滚:
next():移动到下一行
Previous():移动到前一行
absolute(int row):移动到指定行
beforeFirst():移动resultSet的最前面。
afterLast() :移动到resultSet的最后面。
一、JAVA与Mysql连接
1.加载驱动程序:
Class.forName("com.jdbc.mysql.Driver");
(须导入jar包)
2.获得数据库连接:
Connection conn=DriverManager.getConnection(url,usr,pw);
//url:数据库链接
//user&password:数据库登录用户及密码
3.数据库操作:
//通过Connetion对象获得Statement对象
Statement stmt=conn.CreateStatment();
//通过Statement对象获得ResultSet对象
ResultSet rs1=stmt.excuteQquery("sql查询语句");
ResultSet rs2=stmt.excuteUpdate("sql改动语句");
补充: 一般多用PreparedStatement,预编译的,效率高,更清晰
二、JDBC调用存储过程
1.存储过程定义及调用:
2.调用类型:
a.JDBC调用无参数的存储过程
a.JDBC调用带输入参数的存储过程
a.JDBC调用带输出参数的存储过程
a.JDBC调用带输入输出参数的存储过程
三、JDBC事务管理
1.事务管理:
a.一系列操作打包在一起执行,是一个逻辑单元
b.原子性:事务是一个完整的操作
c.一致性:事务完成时,数据必须处于一致状态
d.隔离性:对数据库操作的并发事务之间是隔离的
e.永久性:事务完成后对数据库的修改永久保持
2.JDBC对事务管理的支持:
a.JDBC通过commit()/rollback()来管理事务的操作
b.事务操作默认是自动提交的
c.通过setAutoCommit(false)禁止自动提交
三、JDBC与数据库连接池
1.数据库连接池:
a.解决数据连接量大的问题
b.连接池中放一定的Connection,连接满时让其他用户等待
c.开源数据库连接池:dbcp/c3p0
2.dbcp的使用:
a.导入jar包
b.建立配置文件 dbcp.properties
c.编写相关类文件
3.c3po的使用:
a.导入jar包
b.建立配置文件 c3p0.properties
c.编写相关类文件
4.dbcp与c3po的比较:
四、相关框架介绍
1.Commons-dbutils:
*****核心接口*****
2.Hibernate:
(1)优缺点
(2)核心接口
a.Session: CRUD操作
b.SessionFactory: 初始化Hibernate
c.Configuaration: 配置及启动Hibernate
d.Transaction: 事务操作
e.Query/Criteria: 数据库查询
3.Mybatis:
特点
五、JDBC与Tomcat
1、在Web项目的WebRoot目录下的META-INF目录创建一个context.xml文件
2、在context.xml文件配置tomcat服务器的数据源
3、将数据库的驱动jar文件放置在tomcat的lib文件夹下
4、在获取数据库连接的工具类(如jdbcUtils)的静态代码块中获取JNDI容器中的数据源
1.Context.xml配置
<?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource
name="jdbc/datasource"
auth="Container"
type="javax.sql.DataSource"
username="root"
password="20114665"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/jdbc_review"
maxActive="8"
maxIdle="4"/>
</Context>
2.获取DataSource
Context initCtx = new InitialContext();
Context envCtx = (Context) initCtx.lookup("java:comp/env");
dataSource = (DataSource)envCtx.lookup("jdbc/datasource");