zoukankan      html  css  js  c++  java
  • 我爱Java系列---【原生JDBC】

    04_jdbc概念/*
    开发步骤
    1. 注册驱动.
    告诉JVM,使用的是哪个数据库

    2. 获得连接.
    java是面向对象的编程语言,任何事物都可以定义类,创建对象

    就是连接数据库,获取到数据库的连接对象,Connection对象

    3. 获得执行sql语句的对象
    Connection连接对象获取执行sql语句的Statement对象

    4. 执行sql语句,并返回结果
    Statement对象,执行增删改,返回结果,返回int数字,代表的是影响的行数
    Statement对象,执行查询,返回结果集ResultSet对象

    5. 处理结果
    增删改,返回结果,返回int数字,代表的是影响的行数,不用处理
    执行查询,返回结果集ResultSet对象,需要处理,遍历或者封装对象

    6. 释放资源.
    Connection对象
    Statement对象
    ResultSet对象
    以上3个对象,都有close方法
    开发程序代码演示:
    public class Demo05JDBC {
    //查询一条记录
    @Test
    public void queryOne() throws Exception {
    //1.注册驱动
    Class.forName("com.mysql.jdbc.Driver");

    //2.获取连接Connection对象
    Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/day18", "root", "abc");

    //3.获取执行SQL语句的Statement对象
    Statement stmt = con.createStatement();

    //定义查询的sql语句
    String sql = "SELECT * FROM scores WHERE sid=1";
    //4.Statement对象执行sql语句,获取结果集
    ResultSet rs = stmt.executeQuery(sql);

    //遍历输出结果集
    if (rs.next()) {
    int sid = rs.getInt(1);//根据列的编号获取
    int score = rs.getInt(2);
    String sname = rs.getString("sname");//根据列名获取
    System.out.println("编号: "+sid+", 姓名: "+sname+", 成绩: "+score);
    } else {
    System.out.println("没有该学生");
    }

    //5.关闭资源
    con.close();
    stmt.close();
    rs.close();
    }
    //查询所有记录
    @Test
    public void queryAll() throws Exception {
    //1.注册驱动
    Class.forName("com.mysql.jdbc.Driver");

    //2.获取连接Connection对象
    Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/day18", "root", "abc");

    //3.获取执行SQL语句的Statement对象
    Statement stmt = con.createStatement();

    //定义查询所有的sql
    String sql = "select * from scores";

    //4.Statement对象执行sql语句
    ResultSet rs = stmt.executeQuery(sql);

    //遍历输出结果集
    while(rs.next()) {
    Object sid = rs.getObject(1);//根据列编号获取值,返回的是Object类型
    Object score = rs.getObject("score");//根据列名称获取值,返回的是Object类型
    Object sname = rs.getObject(3);
    System.out.println("编号: "+sid+", 姓名: "+sname+", 成绩: "+score);
    }

    //5.关闭资源
    con.close();
    stmt.close();
    rs.close();
    }
    }
    JDBC中常用的增、删、改、查public class Demo04JDBC {
    //添加一条记录
    @Test
    public void addOne() throws Exception {
    //1.注册驱动
    Class.forName("com.mysql.jdbc.Driver");
    //2. 获得连接.
    //定义数据库的连接地址
    String url = "jdbc:mysql://localhost:3306/day18";
    //定义用户名
    String userName = "root";
    //定义密码
    String passWord = "abc";
    //调用方法,获取到数据库的连接对象
    Connection con = DriverManager.getConnection(url, userName, passWord);
    //3. 获得执行sql语句的对象
    Statement stmt = con.createStatement();

    //定义sql语句
    String sql = "insert into scores(sid,score,sname) values(1,100,'柳岩')";

    //Statement对象调用executeUpdate方法执行sql语句,获取结果
    int result = stmt.executeUpdate(sql);
    if(result>0) {
    System.out.println("添加一条记录成功");
    } else {
    System.out.println("添加一条记录失败");
    }
    //关闭资源
    stmt.close();
    con.close();
    }
    //删除一条记录
    @Test
    public void deleteOne() throws Exception {
    //1.注册驱动
    Class.forName("com.mysql.jdbc.Driver");
    //2. 获得连接.
    //定义数据库的连接地址
    String url = "jdbc:mysql://localhost:3306/day18";
    //定义用户名
    String userName = "root";
    //定义密码
    String passWord = "root";
    //调用方法,获取到数据库的连接对象
    Connection con = DriverManager.getConnection(url, userName, passWord);
    //3. 获得执行sql语句的对象
    Statement stmt = con.createStatement();

    //定义sql语句
    String sql = "DELETE FROM products WHERE pid='p008';";

    //Statement对象调用executeUpdate方法执行sql语句,获取结果
    int result = stmt.executeUpdate(sql);
    System.out.println(result);
    if(result==1) {
    System.out.println("删除一条记录成功");
    } else {
    System.out.println("删除一条记录失败");
    }
    //关闭资源
    stmt.close();
    con.close();
    }
    //修改一条记录
    @Test
    public void updateOne() throws Exception {
    //1.注册驱动
    Class.forName("com.mysql.jdbc.Driver");

    //2.获取连接Connection对象
    //定义数据库的连接地址
    String url = "jdbc:mysql://localhost:3306/day18";
    //定义用户名
    String userName = "root";
    //定义密码
    String passWord = "abc";

    Connection con = DriverManager.getConnection(url, userName, passWord);

    //3.获取执行SQL语句的Statement对象
    Statement stmt = con.createStatement();

    //4.Statement对象执行sql语句
    String sql = "update scores set score=60 where sname='柳岩'";
    int result = stmt.executeUpdate(sql);
    if(result>0) {
    System.out.println("修改一条记录成功");
    } else {
    System.out.println("修改一条记录失败");
    }
    //关闭资源
    stmt.close();
    con.close();

    }
    //查询一条记录
    @Test
    public void queryOne() throws Exception {
    //1.注册驱动
    Class.forName("com.mysql.jdbc.Driver");

    //2.获取连接Connection对象
    Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/day18", "root", "abc");

    //3.获取执行SQL语句的Statement对象
    Statement stmt = con.createStatement();

    //定义查询的sql语句
    String sql = "SELECT * FROM scores WHERE sid=1";
    //4.Statement对象执行sql语句,获取结果集
    ResultSet rs = stmt.executeQuery(sql);

    //遍历输出结果集
    if (rs.next()) {
    int sid = rs.getInt(1);//根据列的编号获取
    int score = rs.getInt(2);
    String sname = rs.getString("sname");//根据列名获取
    System.out.println("编号: "+sid+", 姓名: "+sname+", 成绩: "+score);
    } else {
    System.out.println("没有该学生");
    }

    //5.关闭资源
    con.close();
    stmt.close();
    rs.close();
    }
    //查询所有记录
    @Test
    public void queryAll() throws Exception {
    //1.注册驱动
    Class.forName("com.mysql.jdbc.Driver");

    //2.获取连接Connection对象
    Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/day18", "root", "abc");

    //3.获取执行SQL语句的Statement对象
    Statement stmt = con.createStatement();

    //定义查询所有的sql
    String sql = "select * from scores";

    //4.Statement对象执行sql语句
    ResultSet rs = stmt.executeQuery(sql);

    //遍历输出结果集
    while(rs.next()) {
    Object sid = rs.getObject(1);//根据列编号获取值,返回的是Object类型
    Object score = rs.getObject("score");//根据列名称获取值,返回的是Object类型
    Object sname = rs.getObject(3);
    System.out.println("编号: "+sid+", 姓名: "+sname+", 成绩: "+score);
    }

    //5.关闭资源
    con.close();
    stmt.close();
    rs.close();
    }
    }

    
    
    
    
    愿你走出半生,归来仍是少年!
  • 相关阅读:
    论文阅读 | Generating Fluent Adversarial Examples for Natural Languages
    论文阅读 | BadNets: Identifying Vulnerabilities in the Machine Learning Model Supply Chain
    论文阅读 | Trojaning Attack on Neural Networks
    python copy与deepcopy (拷贝与深拷贝)
    论文阅读 | Real-Time Adversarial Attacks
    统计学习方法 | 第3章 k邻近法 | 补充
    统计学习方法 | 第3章 k邻近法
    统计学习方法 | 第2章 感知机 | 补充
    Gradle 如何打包 Spring Boot 可执行 JAR
    Gradle 发布 Jar 到 Archiva 时提示不能 Overwriting released artifacts is not allowed
  • 原文地址:https://www.cnblogs.com/hujunwei/p/10848885.html
Copyright © 2011-2022 走看看