写点什么

JavaWeb JDBC

作者:Emperor_LawD
  • 2022 年 5 月 17 日
  • 本文字数:1145 字

    阅读完需:约 4 分钟

JavaWeb JDBC

JDBC 简介

使用 Java 语言操作关系型数据库的一套 API


  • 本质

  • 操作数据库的接口

  • 各厂商实现这个接口,提供数据库驱动 jar 包

  • 真正执行的代码是驱动 jar 包中的实现类

  • 优点

  • 可以随时替换数据库,访问数据库的 java 代码基本不变

步骤

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

  • 注册驱动


    Class.forName("com.mysql.jdbc.Driver");
复制代码


  • 获取连接


    Connection conn = DriverManager.getConnection(url, username, password);
复制代码


  • 定义 SQL 语句


    String sql = "update..";
复制代码


  • 获取执行 SQL 对象


    Statement stmt = conn.createStatement();
复制代码


  • 执行 SQL


    stmt.executeUpdate(sql);
复制代码


  • 处理返回结果

  • 释放资源

API 详解

DriverManager

驱动管理类


  • 注册驱动

  • 语法


        Class.forName("com.mysql.jdbc.Driver");
复制代码


- *注:MySQL 5 之后可以省略注册驱动的步骤(自动加载jar包中的驱动)*
复制代码


  • 获取数据库连接

  • 语法

        getConnection(String url, String user, String password)
复制代码
  • 参数

  • url:连接路径

  • user:用户名

  • password:密码

Connection

数据库连接对象

  • 获取执行 SQL 的对象

  • 方法


        // 普通执行SQL对象        createStatement()                // 预编译SQL的执行SQL对象,预防SQL注入        prepareStatement(sql)
复制代码


  • 管理事务

  • 方法

        开启事务        setAutoCommit(boolean autoCommit); // true 为自动提交;false 为手动提交,即开启事务                提交事务        commit()                回滚事务        rollback()
复制代码

Statement

执行 SQL 语句

  • 方法


    // 执行增删改操作    executeUpdate(sql)        // 执行查询操作    executeQuery(sql)
复制代码

ResultSet

结果集对象

  • 方法


    // 判断当前行是否为有效行    next() // true 有效(行内有数据);false 无效(行内无数据)        // 获取数据    getxxx()        // 常用方式    while(re.next()) {      getXxx()....    }
复制代码

PreparedStatement

预防 SQL 注入

  • SQL 注入

  • 通过操作输入来修改事先定义好的 SQL 语句

  • 语法(以登录为例)

// 定义sqlString sql = "select * from 表名 where username = ? and password = ?";
// 获取pstmt对象PreparedStatement pstmt = conn.preparedStatement(sql);
// 设置?的值(占位符的参数)pstmt.setString(1, name); // 1 表示第一个?pstmt.setString(2, password); // 2 表示第二个?
// 执行sqlResultSet rs = pstmt.executeQuery();
复制代码

数据库连接池

是个容器,负责分配、管理数据库连接

  • 优点:

  • 资源重用

  • 提升系统相应速度

  • 避免数据库连接遗漏

  • 标准接口:DataSource

  • 功能:获取接口


        Connection getConnection();
复制代码


  • Druid(德鲁伊)

  • Druid 连接池是阿里巴巴开源的数据库连接池项目

  • 功能强大,性能优秀,是 Java 语言最好的数据库连接池之一

  • Druid 使用步骤

  • 导入 jar 包

  • 定义配置文件

  • 加载配置文件

  • 获取数据库连接池对象

  • 获取连接

发布于: 刚刚阅读数: 5
用户头像

Emperor_LawD

关注

愿能如萤火一般,可以在黑夜里发一点光。 2021.05.19 加入

还未添加个人简介

评论

发布
暂无评论
JavaWeb JDBC_javaWeb_Emperor_LawD_InfoQ写作社区