• JDBC-环境搭建及简单介绍和使用


    一、JDBC简介

    学习完JavaSE的内容后,紧接着就需要使用到JDBC,
    该内容可以建立java与数据库之间的联系并通过java
    对数据库进行操作。具体如下图
    
    • 1
    • 2
    • 3

    在这里插入图片描述


    二、JDBC核心API接口和类

    在初期学习jdbc时需要掌握下面几个接口的使用
    1Connection : 接口 连接对象
    2Statement: 接口 发送SQL,通知数据库服务器执行
    3ResultSet: 接口 对应查询的结果集
    4DriverManager: 类驱动管理器,管理项目中所有的数据库驱动
    
    • 1
    • 2
    • 3
    • 4
    • 5

    补充:驱动就是指存放多个.class文件

    三个接口之间的关系如下图:
    首先需要创建一个仓库,创建一个路连接工厂和仓库,
    然后准备需要运输到仓库中的产品,再准备一辆车负责将产品运输到仓库。
    
    • 1
    • 2
    • 3

    在这里插入图片描述


    三、搭建JDBC环境

    第一步:在idea中导入第三方jar包(使用初期由自己手动导入,后续使用到maven就不需要自己手动导入了

    1. 在项目中创建一个目录为lib(自定义命名)
      在这里插入图片描述

    2. 拷贝第三方jar包到lib目录中(复制粘贴)
      在这里插入图片描述

    3. 设置lib目录为一个库目录(File=>Project Structure…=>Libraries=>+=>java=>选择lib所在的位置=>apply=>ok)
      以后还需要在lib中添加jar包直接拷贝进来即可不需要再进行上述的设置
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述

    4. 新导入的jar包可能会出现无法展开的现象,需要手动进行下设置(类似刷新)

      如果打勾了还是没有展开则将勾去掉后再使用apply然后ok
    在这里插入图片描述在这里插入图片描述


    四、第一个jdbc程序

    整体思路
    1、加载驱动类(仓库)
    2、获取连接(路)
    3、编写SQL语句(产品)
    4、创建Statement对象(车)
    5、发送SQL,通知数据库执行,接收结果(增删改)
    6、如果是查询,返回的是结果集,类型为ResultSet,循环解析并输出
    7、关闭资源
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    第一步:加载驱动类Driver

    	位置:Mysql.jar=>com=>jdbc=>Driver=>右键复制 copy reference
    	代码:Class.forName("com.mysql.jdbc.Driver");
    
    • 1
    • 2

    第二步:获取连接

    步骤:
    	1、创建Connection对象   Connection conn;
    	2、使用DriverManager类的getConnection方法(三个参数)
    	3、第一个参数 url:访问数据库服务器的网址
    		jdbc:协议名
    		mysql:连接哪个数据库
    		localhost:服务器ip地址
    		3306:mysql默认的端口
    		mydb:数据库的名称
    		?key=value
    		完整代码:jdbc:mysql://localhost:3306/fisi?useUnicode=true&characterEncoding=utf8&useSSL=false
    
    	4、第二个参数 user:用户名
    	5、第三个参数:password 密码
    代码:
    	Connection conn=null;
    	String url = "jdbc:mysql://localhost:3306/fisi?useUnicode=true&characterEncoding=utf8&useSSL=false";
     	conn = DriverManager.getConnection(url,"root","123456");
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    第三步:编写SQL语句

    代码:
    	String sql = "insert into test3 values(4,'测试')";
    描述:
    	编写的SQL语句用String类型的变量接收,语句与mysql中学习的一致没有差别
    
    • 1
    • 2
    • 3
    • 4

    第四步:创建Statement对象

    步骤:
    	1、创建全局的Statement对象
    	2、通过Connection对象创建Statement对象
    代码:
    	Statement smt=null;
    	smt = conn.createStatement();
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    第五步:发送SQL,通知数据库执行,接收结果(增删改)

    步骤:
    	1、增删改使用executeUpdate方法通过Statement对象将其发送给数据库并得到数值型的返回结果
    	2、对返回的数值型结果进行判断,如果值>0则代表操作成功,否则失败
    代码:
    	int row = smt.executeUpdate(sql);
    	if (row>0){
             System.out.println("操作成功");
       	}else{
             System.out.println("操作失败");
       	}
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    第六步:查询的代码

    步骤:
    	1、查询使用executeQuery方法通过Statement对象将其发送给数据库并得到ResultSet类型的返回结果
    	2、使用while循环遍历得到的结果集
    	3、该结果集的有一个next()方法,该方法可以移动指针,一行一行的移动
    	4、通过结果集调用getXxx(int index)方法可以返回index所在类的那一个数据
    	5、通过结果集调用getXxx(String name)方法可以返回指定列名的数据
    	6、getXxx中的Xxx是指的数据类型
    代码:
    	ResultSet rs=null;
    	rs = smt.executeQuery(sql);
    	while(rs.next()){
           int id = rs.getInt("id");
           String department = rs.getString("department");
           System.out.println(id+"---->"+department);
         }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    第七步:关闭资源

    牢记:先开的后关,后开的先关
    代码:
    	try {
           if (rs!=null){rs.close();}
           if (smt!=null){smt.close();}
           if (conn!=null){conn.close();}
         } catch (SQLException throwables) {
           throwables.printStackTrace();
         }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    整体代码

    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)  {
            // todo 增删改
            Connection conn=null;
            Statement smt=null;
            try {
                //todo 1、加载驱动  jar包com目录下jdbc目录Driver类   复制
                Class.forName("com.mysql.jdbc.Driver");
    
                //todo 2、获取连接
    //            jdbc:mysql://localhost:3306
    //            jdbc 协议名   mysql 连接哪个数据库  localhost mysql服务器的ip地址远程的mysql使用真实IP  3306  mysql默认的端口
                String url = "jdbc:mysql://localhost:3306/fisi?useUnicode=true&characterEncoding=utf8&useSSL=false";
    
                conn = DriverManager.getConnection(url,"root","123456");
    
                //todo  3、编写SQL
                // 增
                String sql = "insert into test3 values(4,'测试')";
    
    
                // todo 4、创建statement
                smt = conn.createStatement();
                // todo 5、发送sql
                int row = smt.executeUpdate(sql);
                // 判断
                if (row>0){
                    System.out.println("操作成功");
                }else{
                    System.out.println("操作失败");
                }
            } catch (ClassNotFoundException | SQLException e) {
                e.printStackTrace();
            }finally {
                // todo 6、关闭资源 先开后关
                try {
                    if (smt!=null){smt.close();}
                    if (conn!=null){conn.close();}
                } catch (SQLException throwables) {
                    throwables.printStackTrace();
                }
    
            }
    
        }
    }
    
    
    • 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
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52

    五、mysql数据类型对应java数据类型

    mysql数据类型java数据类型
    charString
    varcharString
    textString
    intint
    doubledouble
    decimaldouble/BigDecimal
    datejava.sql.Date
    timejava.sql.Time
    datetimejava.sql.Date

    六、核心API(三个接口一个类)

    1、DriverManager

    获取连接,静态方法getConnection() 注册驱动

    2、Connection接口

    作用1:创建Statement对象
    作用2:创建PreparedStatement对象:执行sql
    作用3:创建CallableStatement对象:执行数据库存储过程(java的方法)
    作用4:关于事务的相关方法

    3、Statement接口

    作用:发送sql,通知数据库执行
     
    两个子接口:
    ①、PreparedStatement :
    不需要拼接SQL,以后基本上使用的就是这个接口
    ②、CallableStatement:
    调用存储过程
     
    执行SQL语句的方法增删改和查两者有不同的方法,使用时不明确,所以Statement提供了另外一个方法 Boolean execute(sql)
     
    返回值为true 代表 语句是查询语句 有结果集
      获取结果集 ResultSet getResultSet()
    返回值为false 代表 语句时增删改 没有结果集
      得到受影响行数 int getUpdateCount()

    4、ResultSet接口

    类型:
      1、默认类型是TYPE_FORWARD_ONLY 只能往前移动的结果集: next() 有效
      2、调用previous()抛出异常SQLException
     
    获取结果集元数据:
      得到元数据 rs.getMetaData()返回值为ResultSetMetaData
      
    ResultSetMetaData类的方法
    1、获取结果集的列数:int getColumnCount()
    2、获取指定列的列名:String getColumnName(int colindex)

  • 相关阅读:
    【数据库系统概论】实验三 SQL数据定义及更新
    【EasyRL学习笔记】第三章 表格型方法(Q-Table、Sarsa、Q-Learning)
    java中的Properties配置文件操作[61]
    日用百货元宇宙 以科技创新培育产业新质生产力
    Shell(5)数组
    [EFI]ThinkPad-X13-Gen1-20T3电脑 Hackintosh 黑苹果efi引导文件
    天玑9200领跑背后,高端芯片掀起蝴蝶效应
    Spark大数据处理 使用Scala集成开发环境
    接口测试入门:深入理解接口测试!
    Elasticsearch 批量导入数据
  • 原文地址:https://blog.csdn.net/qq_52998673/article/details/126754131