jdbc快速入门

JDBC

  1. 概念:Java DataBase Connectivity Java 数据库连接

    JDBC本质:操作所有关系型数据库的接口,数据库厂商去实现这套接口,提供数据库驱动jar包。使用这套接口(JDBC)编程,真正执行的代码是驱动jar包中的实现类。

  2. 快速入门:

    步骤

    1. 导入驱动jar包

    2. 注册驱动

    3. 获取数据库连接对象 Connection

    4. 定义sql

    5. 获取执行sql语句的对象 Statement

    6. 执行sql,接收返回结果

    7. 处理结果

    8. 释放资源

  3. 详解各个对象:

    1. DriverManger: 驱动管理对象

      功能:

      1. 注册驱动:告诉程序该使用哪一个数据库驱动jar

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

      2. 获取数据库连接:

        发法:static Connection getConnection(String url, String user, String password)

    2. Connection: 数据库连接对象

      功能:

      1. 获取执行sql的对象

        Statement createStatement()

        PreparedStatement PrepareStatement(String sql)

      2. 管理事务:

        1. 开启事务:setAutoCommit(boolen autoCommit): 调用该方法设置参数为false, 即开启事务

        2. 提交事务:commit()

        3. 回滚事务:rollback()

    3. Statement:执行sql的对象

      1. int executeUpdate(String sql): 执行DML(insert、update、detele)语句、DDL(create、alter、drop)语句

        返回值:返回值>0则执行成功

      2. ResultSet executeQuery(String sql):执行DQL(select)语句

    4. ResultSet:结果集对象,封装查询结果

      boolean next():游标向下移动一行,判断当前行是否是最后一行末尾(是否有数据),如果是,则返回false,如果不是则返回true

      getxxx(参数):获取数据 xxx:代表数据类型 参数:列的编号或者名称

    5. PreparedStatement:执行sql的对象

      1. SQL注入问题:拼接sql时,sql关键字参与拼接,会造成安全性问题

      2. 解决sql注入问题:使用PreparedStatement对象来解决

      3. 预编译的SQL:参数使用?作为占位符

      4. 步骤:

        1. 导入驱动

        2. 注册驱动

        3. 获取数据库连接对象

        4. 定义sql (参数使用?作为占位符)

        5. 获取执行sql的对象

        6. 给? 赋值:

          方法:setxxx(参数1,参数2)

          参数1:? 的位置编号 从1 开始

          参数2:?的值

        7. 执行sql,接收返回结果,不需要传递sql语句

        8. 处理结果

        9. 释放资源

      5. 注意:以后都用PreparedStatement完成增删改查

        1. 可以防止sql注入

        2. 效率高

JDBC工具类:JDBCUtils

简化书写

  1. 抽取驱动

  2. 抽取一个方法获取连接对象

    配置文件

    jdbc.properties

    url=

    user=

    password=

  3. 抽取一个方法释放资源

JDBC控制事务

  1. 操作:

    1. 开启事务:setAutoCommit(boolean autoCommit):调用该方法参数设置为false

      执行sql之前开启事务

    2. 提交事务: commit()

      sql执行完后提交事务

    3. 回滚事务:rolllback()

      在catch中回滚事务

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值