• 【Java学习】JavaWeb ---- JDBC


    JDBC 快速入门

    1. 下载jar包(百度)->add as library
      在这里插入图片描述
    2. 代码
    package com.ith.jdbc;
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.Statement;
    
    public class demo1 {
        public static void main(String[] args) throws Exception {
            //1.注册驱动
            Class.forName("com.mysql.jdbc.Driver");
            //2.获取连接
            String url="jdbc:mysql://127.0.0.1:3306/db1";
            String username = "root";
            String password = "****";
            Connection conn = DriverManager.getConnection(url,username,password);
    
            //3.定义sql
            String sql = "UPDATE sc SET Grade = 6 WHERE Sno = 1";
            // 创建数据库
            // String sql = "create database db2";
    
            //4.获取执行sql的对象 Statement
            Statement stmt = conn.createStatement();
    
            //5.执行sql
            int count = stmt.executeUpdate(sql);
    
            //6.处理结果
            System.out.println(count);
    
            //7.释放资源
            stmt.close();
            conn.close();
        }
    }
    
    
    • 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

    输出:1
    表示有一行受影响
    3. 数据库更新成功
    在这里插入图片描述

    ResultSet

    • 结果集对象,封装了DQL查询语句的结果
    • 获取查询结果:boolean next()、xxx getXxx(参数):参数(int 列的编号、String 列的名称)

    代码

    package com.ith.jdbc;
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.Statement;
    
    public class demoResultSet {
        public static void main(String[] args) throws Exception {
            //1.注册驱动
            Class.forName("com.mysql.cj.jdbc.Driver");
            //2.获取连接
    //        String url="jdbc:mysql://127.0.0.1:3306/db1";
            String url = "jdbc:mysql:///db1";
            String username = "root";
            String password = "****";
            Connection conn = DriverManager.getConnection(url, username, password);
    
            //3.定义sql
            String sql = "select * from sc";
    
            //4.获取Statement
            Statement stmt = conn.createStatement();
    
            //5.执行
            ResultSet rs = stmt.executeQuery(sql);
    
            //6.遍历rs
            while(rs.next()){
                //获取数据
                String Sno = rs.getString("Sno");//可以用列名
                int Cno = rs.getInt(2);//可以用编号
                int Grade = rs.getInt("Grade");
    
                System.out.println("Sno: "+Sno);
                System.out.println("Cno: "+Cno);
                System.out.println("Grade: "+Grade);
    
                System.out.println("------------------------");
            }
            //7.释放资源
            rs.close();
            conn.close();
            stmt.close();
        }
    }
    /**
     * 输出:
     Sno: 12
     Cno: 1
     Grade: 5
     ------------------------
     Sno: 1234
     Cno: 123
     Grade: 3
     ------------------------
     Sno: 123
     Cno: 12
     Grade: 4
     ------------------------
     Sno: 1
     Cno: 0
     Grade: 6
     ------------------------
    
     */
    
    • 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
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66

    ResultSet存入集合

    package com.ith.pojo;
    
    public class SC {
        private String Sno;
        private int Cno;
        private int Grade;
    
        @Override
        public String toString() {
            return "SC{" +
                    "Sno=" + Sno +
                    ", Cno=" + Cno +
                    ", Grade=" + Grade +
                    '}';
        }
    
    
        public String getSno() {
            return Sno;
        }
    
        public void setSno(String sno) {
            Sno = sno;
        }
    
        public int getCno() {
            return Cno;
        }
    
        public void setCno(int cno) {
            Cno = cno;
        }
    
        public int getGrade() {
            return Grade;
        }
    
        public void setGrade(int grade) {
            Grade = grade;
        }
    }
    
    
    • 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
    package com.ith.pojo;
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.Statement;
    import java.util.ArrayList;
    import java.util.List;
    
    public class SCdemo {
        public static void main(String[] args) throws Exception {
            //1.注册驱动
            Class.forName("com.mysql.cj.jdbc.Driver");
            //2.获取连接
    //        String url="jdbc:mysql://127.0.0.1:3306/db1";
            String url = "jdbc:mysql:///db1";
            String username = "root";
            String password = "****";
            Connection conn = DriverManager.getConnection(url, username, password);
    
            //3.定义sql
            String sql = "select * from sc";
    
            //4.获取Statement
            Statement stmt = conn.createStatement();
    
            //5.执行
            ResultSet rs = stmt.executeQuery(sql);
    
            //创建集合
            List<SC> list = new ArrayList<>();
    
            //6.遍历rs
            while(rs.next()){
                //创建对象
                SC sc = new SC();
    
    
                //获取数据
                String Sno = rs.getString("Sno");//可以用列名
                int Cno = rs.getInt(2);//可以用编号
                int Grade = rs.getInt("Grade");
    
                sc.setSno(Sno);
                sc.setCno(Cno);
                sc.setGrade(Grade);
    
                //存入集合
                list.add(sc);
            }
    
            System.out.println(list);
            //7.释放资源
            rs.close();
            conn.close();
            stmt.close();
        }
    }
    /**
    输出:
    [SC{Sno=12, Cno=1, Grade=5}, SC{Sno=1234, Cno=123, Grade=3}, SC{Sno=123, Cno=12, Grade=4}, SC{Sno=1, Cno=0, Grade=6}]
    */
    
    
    
    • 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
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64

    数据连接池

    • 是个容器,负责分配、管理数据库连接(Connection)
    • 使用已有的连接
    • 释放空闲连接
    • 好吃:资源复用、提高响应速度、避免数据库连接遗漏

    Driud数据连接池

    导入jar包

    在这里插入图片描述

    package com.ith.druid;
    
    import com.alibaba.druid.pool.DruidDataSourceFactory;
    
    import javax.sql.DataSource;
    import java.io.FileInputStream;
    import java.sql.Connection;
    import java.util.Properties;
    
    public class Druiddemo {
        public static void main(String[] args) throws Exception {
            //1.导入jar包
    
            //2.配置
    
            //3.加载配置文件
            Properties prop = new Properties();
            prop.load((new FileInputStream("jdbc-demo/src/druid.properties")));
            //4.获取连接池对象
            DataSource dataSource = DruidDataSourceFactory.createDataSource(prop);
    
            //5.获取数据库连接Connection
            Connection connection = dataSource.getConnection();
    
            System.out.println(connection);
            //System.out.println(System.getProperty("user.dir"));
        }
    }
    
    
    • 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
  • 相关阅读:
    20240425,模板
    ClickHouse建表优化
    python装饰器的使用方法
    谈一个谈这几个月的收获
    Docker部署开源项目Django-CMS企业内容管理系统
    细说GaussDB(DWS)复杂多样的资源负载管理手段
    陈宇(Aqua)-安全->云安全->多云安全
    Java I/O(3):NIO中的Buffer
    HanLP — HMM隐马尔可夫模型 -- 维特比(Viterbi)算法 --示例代码 - Java
    深度学习环境搭建【显卡算力、CUDA、pytorch、tensorflow选择】
  • 原文地址:https://blog.csdn.net/weixin_46112690/article/details/128052016