数据库 2016-11-04
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的最后面。
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,预编译的,效率高,更清晰
1.存储过程定义及调用:
2.调用类型:
a.JDBC调用无参数的存储过程 a.JDBC调用带输入参数的存储过程 a.JDBC调用带输出参数的存储过程 a.JDBC调用带输入输出参数的存储过程
1.事务管理:
a.一系列操作打包在一起执行,是一个逻辑单元 b.原子性:事务是一个完整的操作 c.一致性:事务完成时,数据必须处于一致状态 d.隔离性:对数据库操作的并发事务之间是隔离的 e.永久性:事务完成后对数据库的修改永久保持
2.JDBC对事务管理的支持:
a.JDBC通过commit()/rollback()来管理事务的操作 b.事务操作默认是自动提交的 c.通过setAutoCommit(false)禁止自动提交
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:
特点
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");