12_JDBC

一. JDBC简介

1.什么是JDBC?

  • JDBC就是使用java语言来操作关系型数据库的一套API
  • 官方sun公司定义的一套操作所有关系型数据库的规则,即接口;

2.JDBC的好处?

  • 可随时更换底层数据库,访问数据库的java代码基本不变

3.JDBC实现的步骤

  • 创建工程,导入驱动jar包

  • 注册驱动(可不写)

    • class.forName("com.mysql.jdbc.Driver")
  • 获取连接

    • Connection conn = DriverManager.getConnection(url,user,pwd);
  • 定义SQL语句

    • String sql = ”update 。。。“
  • 获取执行SQL对象

    • Statement stmt = conn.createStatement();
  • 执行SQL

    • int count = stmt.executeUpdate(sql);
    • ResultSet rs = stmt.executeQuery(sql);
  • 处理返回结果

    • if(count>0){

      ​ System.out.println("修改成功~");

      }else{

      ​ System.out.println("修改成功~");

      }

    • while(rs.next) {

      rs.getXxx(参数);

      }

  • 释放资源

    • rs.close();
    • stmt.close();
    • conn.close();

二.JDBC-API

1.API--DriverManager

  • 作用:
    • 注册驱动(类加载时,静态代码块自动注册,且可以不写)
    • 获取数据库的连接

2.API--Connection

  • Connection(数据库连接对象)作用:

    • 获取执行SQL对象

      • 普通执行SQL对象:Statement createStatement()

      • 预编译SQL的执行SQL对象:防止SQL注入

        PreparedStatement preparedStatement(sql)

      • 执行存储过程的对象

        CallableStatement prepareCall(sql)

    • 管理事务

      • 开启事务 setAutiCommit(boolean autoCommit)ture为自动提交事务 false为手动提交事务,即开启事务
      • 提交事务 commit()
      • 回滚事务 rollback()

3.API--Statement

  • 作用:执行SQL语句
  • int executeUpdate(sql):用于执行DML、DDL语句
  • ResultSet executeQuery(sql):用于执行DQL语句

4.API--ResultSet

  • ResultSet(结果集对象)作用:封装DQL查询语句的结果
  • boolean next() 判断当前行是否为有效行
  • getXxx() 获取数据

5.API--PreparedStatement

  • 作用:预编译SQL语句并执行,防止SQL注入,将敏感字符进行转义

  • 获取PreparedStatement对象

    • String sql = ”select * from user where username = ? and password = ?“
    • PreparedStatement pstmt = conn.preparedStatement(sql)

    设置参数值

    ​ pstmt.setXxx(参数1,参数2)

    执行sql

    ​ stmt.executeUpdate() / stmt.executeQuery()

  • 在url中开启预编译功能:useServerPerpStmts = true;

三.JDBC-数据库连接池

1.简介

  • 数据库连接池是个容器,负责分配,管理数据库连接 Connection
  • 它允许应用程序重复使用一个现有的数据库连接,而不是再重写建立一个
  • 好处:资源重用,提升系统响应速度,避免数据库连接遗漏

2.数据库连接池实现

  • 官方标准接口:DataSource,由第三方组织实现此接口

  • 常用的数据库连接池:Druid(德鲁伊),C3P0,DBCP

3.Driud使用

  • 导入jar包,driud-1.1.12.jar
  • 定义配置文件
    • image-20230303175256799
  • 加载配置文件
    • Properties prop = new Properties();
    • prop.load(new FileInputStream(”src/druid.“))
  • 获取数据库连接池对象
    • DataSource dataSource = DruidDataSourceFactory.createDataSource(prop);
  • 获取连接
    • Connection conn = dataSource.getConnection();
posted @   圣骑士的部落  阅读(8)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示