码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • springboot相关-JDBC


    文章目录

    • 1. JDBC
      • 1.1配置驱动
      • 1.2 创建一个DBUtil类用于调用驱动
    • 2. 标准的JDBC操作流程:
      • 1:加载驱动:Class.forName("不同厂商提供的Driver的实现类")
      • 2:与数据库建立连接。使用DriverManager.getConnection()
      • 3:通过Connection创建执行对象Statement
      • 4:使用Statement执行SQL(CRUD)
        • 4.1 执行INSERT语句
        • 4.2 执行UPDATE
        • 4.3 执行DELETE
        • 4.4 执行DQL语句
      • 5. 通过 PreparedStatement预编译执行SQL
        • 5.1 在DML语句中使用预编译SQL
        • 5.2 预编译SQL在UPDATE中使用

    1. JDBC

    JDBC java数据库连接
    Java Database Connectivity
    JAVA在JDBC中提供一套通用的接口,用于连接和操作数据库。不同的数据库厂商都提供了一套对应的实现类来操作自家提供的 DBMS。而这套实现类也称为连接该DBMS的驱动(Driver)

    使用步骤:
    1:加载对应数据库厂商提供的驱动(MAVEN添加依赖即可)
    2:基于标准的JDBC操作流程操作该数据库

    1.1配置驱动

    在maven的pom.xml项目中添加阿里的依赖

    <dependencies>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.15</version>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.1.21</version>
        </dependency>
    </dependencies>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    1.2 创建一个DBUtil类用于调用驱动

    package jdbc;
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.SQLException;
    
    /**
     * 管理数据库连接
     */
    public class DBUtil {
       
        static {
       
            try {
       
                //DBUtil第一次被使用时先加载数据库驱动
                Class.forName("com.mysql.cj.jdbc.Driver");
            } catch (ClassNotFoundException e) {
       
                e.printStackTrace();
            }
        }
    
        public static Connection getConnection() throws SQLException {
       
    //        return DriverManager.getConnection("jdbc:mysql://localhost:3306/tedu?characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&rewriteBatchedStatements=true","root","root");
            return DriverManager.getConnection("jdbc:mysql://localhost:3306/birdbootdb?characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&rewriteBatchedStatements=true","root","root");
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29

    2. 标准的JDBC操作流程:

    1:加载驱动:Class.forName(“不同厂商提供的Driver的实现类”)

    不同厂商提供的Driver实现类的名字不同,但是每个数据库是固定的。

     DriverManager.getConnection(String url,String username,String password)
    
    • 1
    • 参数1:数据库路径(JDBC有格式要求,但是不同厂商在规定的格式中又有自身不同的地方)
    • 参数2:数据库的用户名
    • 参数3:数据库的密码
    • 返回值类型:Connection
      该方法返回的Connection实例就表示与数据库的一条连接。
      Connection是JDBC的一个核心接口,它用于表与数据库的一个连接,里面提供了创建执行对象,关闭连接等操作

    2:与数据库建立连接。使用DriverManager.getConnection()

    mysql的url固定格式
     jdbc:mysql://localhost:3306/birdbootdb?characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&rewriteBatchedStatements=true
                                            ^^^^^^^^^^
                                            数据库名称
                                            相当于USE birdbooddb
    
    • 1
    • 2
    • 3
    • 4
    • 5

    3:通过Connection创建执行对象Statement

    Statement用于指定SQL语句
    Statement对象是用于执行SQL语句的对象

    4:使用Statement执行SQL(CRUD)

    如果执行的是DQL语句,则还要接收查询结果集并遍历获取查询结果。
    执行SQL语句
    boolean execute(sql)
    该方法可以执行任意类型的sql语句。
    由于执行DML,DQL都有专属的方法,因此execute方法通常仅用来执行DDL语句

    该方法返回值为boolean值。当执行的SQL有查询结果集时,返回值为true。

    package jdbc;
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.SQLException;
    import java.sql.Statement;
    
    public class JDBCDemo1 {
       
        public static void main(String[] args) throws ClassNotFoundException, SQLException {
       
          
            //步骤1
            Class.forName("com.mysql.cj.jdbc.Driver");
    
            //步骤2 
        
            Connection conn=DriverManager.getConnection(
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
  • 相关阅读:
    浅谈前端开发模式和url的hash模式以及html5的history模式
    Postman:API测试之Postman使用完全指南
    搭建基于Apache的Jena图数据平台
    微机----------------中断技术
    MLOps是什么,为什么重要,以及如何实现?
    # Spring MVC与RESTful API:如何设计高效的Web接口
    ElasticSearch 常见问题
    Leetcode-1106. 解析布尔表达式
    Rockland一抗丨视紫红质抗体解决方案
    北斗导航 | 基于GPS/BDS多星座加权因子图优化的行人智能手机导航
  • 原文地址:https://blog.csdn.net/aiheshuicxy/article/details/128152813
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号