JDBC基本概念

JDBC:

JDBC,即java数据库连接,是一组专门负责连接并操作数据库的标准,其中提供了大量的接口,使用这些接口,java客户端可以访问不同类型的数据库。比如建立数据库连接、执行SQL语句进行数据的增删改查。

JDBC编程步骤

1、加载数据库驱动

Class.forName(driverClass)

其中driverClass就是数据库驱动类所对应的类路径字符串。

2、获取数据库连接

DriverManager.getConnection(String url, String user, String password)

使用DriverManager来获取连接,传入三个参数:数据量的url,用户名,密码

3、通过Connection对象创建Statement/PrepareStatement对象

PrepareStatement(String sql); //根据传入的sql语句创建PrepareStatement对象

4、执行sql语句并返回ResultSet对象

execute();

executeQuery();//执行查询语句,返回ResultSet对象

executeUpdate();//执行DML,DDL语句,返回操作行数

5、操作结果集ResultSet

主要用next()方法,移动指针获取值

6、关闭资源

操作MySQL数据库语句示例:

Class.forName("com.mysql.jdbc.Driver");

Connection conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/emp_test","root","123456");

Statement stmt = conn.createStatement();

ResultSet rs = stmt.executeQuery("select * from emp_test");

while(rs.next()){

System.out.println("");

}

*Statement会引起sql注入问题,一般多用PrepareStatement

JDBC事务

事务是一步或多步操作序列组成的逻辑执行单元,这个序列要么全部执行,要么全部不执行。

事务的四个特性:

原子性:事务应用最小的执行单元,不可再分。

一致性:事务执行结果,使数据库从一个一致性状态到另一个一致性的状态。

持续性:事务一旦提交,对数据所做的任何改变,都要记录到永久的存储器。

隔离性:各个事务执行互相不干扰,相互隔离。

事务中DDL和DCL语句最多只能有一个,因为他们都会导致事物的立即提交。

当事务操作都成功执行时,应该提交事务,使这些修改永久生效。

事务提交两种方式:

显示提交:使用commit提交

自动提交:执行DDL或DCL,或程序正常退出

当事务任意操作失败时,应该回滚事务,使事务的修改全部失效。

事务回滚两种方式:

显示回滚:使用rollback

自动回滚:系统错误或强行退出

 

JDBC批量更新

批量更新就是可以同时进行多条sql语句,将会被作为一批操作被同时进行、同时提交。

public int[] executeBatch(String[] sql) throws SQLException {
    int[] result = null;
    conn = DBHelper.getConnection();
    try {
        //获得当前Connection的提交模式
        boolean autoCommit = conn.getAutoCommit();
        //关闭自动提交模式
        conn.setAutoCommit(false);
        sm = conn.createStatement();
        for (String s : sql) {
            sm.addBatch(s);
        }
        //执行批量更新
        result = sm.executeBatch();
        //提交事务
        conn.commit();
        //还原提交模式
        conn.setAutoCommit(autoCommit);
    } catch (Exception e) {
        e.printStackTrace();
        conn.rollback();
    } finally {
        if (sm != null) {
            sm.close();
        }
        DBHelper.close();
    }
    return result;
}

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值