JDBC基础

数据库 2016-11-04

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.存储过程定义及调用:

JDBC基础

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的比较:

JDBC基础

四、相关框架介绍

1.Commons-dbutils:

*****核心接口*****

JDBC基础

2.Hibernate:

(1)优缺点

JDBC基础

(2)核心接口

a.Session: CRUD操作
b.SessionFactory: 初始化Hibernate
c.Configuaration: 配置及启动Hibernate
d.Transaction: 事务操作
e.Query/Criteria: 数据库查询

3.Mybatis:

特点

JDBC基础

五、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");

相关推荐