2022-12-06 JDBC

  • JDBC基本概念

  • 快速入门

  • 对JDBC中各个接口和类的详解

  • JDBC

    • 概念: java 数据库连接,java语言操作数据库
    • JDBC本质:其实是官方定义的一套操作所有关系型数据库的规则,即接口。各个数据库厂商去实现这套接口提供数据库库驱动java包。我们可以使用这套接口编程,真正执行的代码时驱动java包中的实现类
    • 快速入门
      • 步骤
        • 导入驱动jar包
        • 注册驱动
        • 获取数据库的连接对象 connection
        • 定义sql
        • 获取执行sql语句的对象   statement
        • 执行sql,接受返回的结果。
        • 处理结果
        • 释放资源
        • //导入驱动jar包
          //2.注册驱动
          Class.forName("com.mysql.cj.jdbc.Driver");
          //3.获取数据库连接对象
          Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/db3 ? serverTimezone = " +
                          "Asia/Shanghai", "root",
                  "123456");
          //4.定义sql
          String sql = "update account set balance = 500 where id = 1";
          //5.获取执行sql的对象
          Statement stmt = conn.createStatement();
          //6.执行sql
          int count = stmt.executeUpdate(sql);
          //7.处理结果
          System.out.println(count);
          stmt.close();
          conn.close();
    • 详解各个对象
      • DriverManager:驱动管理对象
        • 功能
          • 注册驱动:告诉程序该使用哪个数据库
            • static void registerDriver(Driver deiver): 注册与给定的驱动程序 DriverManager。
            • 写代码使用: Class.forName("com.mysql.cj.jdbc.Driver");
            • 通过查看源码发现:com.mysql.cj.jdbc.Driver类中存在静态代码块
            • 注意:mysql5之后的jar包可以省略注册驱动的步骤
          • 获取数据库连接
            • 方法:static Connection getConnection(String url,String user,String password)
            • 参数
              • url:指定连接的路径
                • 语法 jdbc:mysql://ip地址(域名):端口号/数据库名称
                • 例子:jdbc:mysql://localhost:3306/db3
                • 细节:如果连接的是本机的mysql服务器,并且mysql服务默认端口是3306,则url可以简写为 jdbc:mysql:///db3
              • user :用户名
              • password:密码
      • Connection:数据库连接对象
        • 功能
          • 获取只从sql的对象
            • Statement createStatement()
            • PreparedStatement prepareStatement(String sql)
          • 管理事务:
            • 开启事务:setAutocommit(boolean autocommit):调用该方法设置参数为false,即开启事务。
            • 提交事务:commit()
            • 回滚事务:rollback()
      • Statement:执行sql对象
        • 执行sql
          • boolean execute(String sql):可以执行任意的sql 了解
          • int executeUpdate(String sql) :执行DML(insert update delete)语句 DDL(create,alter,drop)语句
            • 返回值:影响的行数,可以通过影响的行数判断DML语句是否执行成功 ,返回值>0则执行成功,反之,则失败
          • ResultSet executeQuery(String sql))  :执行DQL(select)语句
        • 练习
          • account表添加一条记录
          • account修改记录
          • account 删除一条记录
      • resultSet:结果集对象   封装查询结果
        • next(): 游标向下移动一行
        • getXxx(参数): 获取数据
        • boolean next(): 游标向下移动一行,判断当前行是否是最后一行末尾(是否有数据),如果是,则返回false,如果不是,则返回true
          • Xxx:代表数据类型 如 : int getInt(),
          • 参数:
            • int:代表列的编号,从一开始  
            • String:代表列的名称。 如:getDouble(“balance”)
        • 注意
          • 使用步骤
            • 游标向下移动一行
            • 判断是否有数据
            • 获取数据
            • //6.处理结果
              //6.1让游标向下移动一行
              //循环判断游标是否是最后一行末尾
              while (rs.next()){
                  //6.2获取数据
                  int id = rs.getInt(1);
                  String name = rs.getString("name");
                  double balance = rs.getDouble(3);
                  System.out.println(id+"--"+name+"--"+balance);
              }
        • 练习
          • 查询emp表的数据,将其封装为对象,然后装载集合,然后返回
            • //.定义一个emp类
            • 定义一个方法 public List<emp> finaAll(){}
            • 实现方法  select * from emp;
      • PreparedStatement:执行SQL对象
  • 抽去JDBC工具类:JDBCUtils

    • 目的:简化书写
    • 分析
      • 注册驱动也抽取
      • 抽取一个方法获取连接对象
        • 需求 ,不想传递参数(麻烦),还得保证工具类的通用性。
        • 解决方案:配置文件来解决
      • 释放资源
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值