• JDBC(重点)


    JDBC:(Java Database Connectivity,简称JDBC)是用来规范客户端程序如何来访问数据库的应用程序接口,记住它是一个接口,这个接口里面有这5大类

        1.DriverManager:驱动管理对象

        2.Connection:数据库连接对象

        3.Statement:执行sql的对象

        4.ResultSet:结果集对象

        5.PreparedStatement:执行sql的对象

    数据库驱动 (驱动就是硬件和操作系统之间的翻译官)

    驱动:声卡,显卡,数据库。

    数据库直接放到java里面不行,用不了 。

    我们的程序 会通过数据库驱动,和数据库打交道

    JDBC(类似于计算机的操作系统,我们只需和操作系统联系,就可以操纵电脑的底层硬件等)

    sun公司为了简化开发人员的(对数据库的统一)操作,提供了一个(java操作数据库的)规范,俗称JDBC,这些规范的实现由具体的厂商去做

    对于开发人员来说,我们只需要掌握JDBC的操作即可。

    java.sql

    javax.sql

    还需要导入一个数据库驱动包mysql-connector-java-5.1.47.jar包,(官网下)。

     数据库中的数据

    测试代码:

     1 public class jdbcFirstDemoTest01 {
     2     public static void main(String[] args) throws ClassNotFoundException, SQLException {
     3         // 1)加载驱动
     4         Class.forName("com.mysql.jdbc.Driver");  // 这里要抛出异常
     5 
     6         // 2)url ,用户名,密码,连接位置
     7         String url = "jdbc:mysql://localhost:3306/jdbcstudy?useUnicode=true&characterEncoding=utf8&useSSL=false";
     8         String name = "root";
     9         String password = "123456";
    10 
    11         // 3)点击连接  注意这里的参数顺序不要搞错
    12         Connection connection = DriverManager.getConnection(url,name, password);// 注意这里也要抛出异常
    13 
    14         // 4)打开一个查询窗口
    15         Statement statement = connection.createStatement();
    16 
    17         // 5)输入查询语句,点击执行
    18         String sql = "SELECT * FROM users";
    19         ResultSet resultSet = statement.executeQuery(sql); // 返回一个结果集
    20 
    21         // 6)输出结果
    22         while(resultSet.next()) {
    23             System.out.print("id :" + resultSet.getObject("id"));
    24             System.out.print("name :" + resultSet.getObject("name"));
    25             System.out.print("password:" + resultSet.getObject("password"));
    26             System.out.print("email:" + resultSet.getObject("email"));
    27             System.out.print("birthday :" + resultSet.getObject("birthday"));
    28         }
    29        // 关闭打开的连接,不关的话造成资源浪费
    30         resultSet .close();
    31         statement.close();
    32         connection.close();
    33 
    34     }
    35 }
    代码解析:
     1)String url = "jdbc:mysql://localhost:3306/jdbcstudy?useUnicode=true&characterEncoding=utf8&useSSL=false";
       协议://主机地址:端口号/数据库名?参数1&参数2&参数3

     2)connection 就代表数据库 
    connection.rollback(); // 事务回滚
    connection.commit(); // 事务提交
    connection.setAutoCommit(); // 事务自动提交

    3)Statement:执行sql语句的类。它的对象用于向数据库发送SQL语句,完成对数据库的增删改查
       Statement.executeQuery();  // 查询操作返回ResultSet
       Statement.execute(); // 执行任何sql
    statement.executeUpdate(); // 更新,插入,删除都是用这个,返回受影响的行数,这个也可以用来查,只是效率低一点

    4) ResultSet:查询的结果集,封装了所有的内容
    resultSet.next(); // 移动到下一个
    resultSet.beforeFirst(); // 移动到最前面
    resultSet.afterLast(); // 移动到最后面



    连接数据库的函数getConnection源码

    结果:

    public class jdbcFirstDemoTest01 {
    public static void main(String[] args) throws ClassNotFoundException, SQLException {
    // 1)载驱动
    Class.forName("com.mysql.jdbc.Driver"); // 里要抛出

    // 2)url ,名,密接位置
    String url = "jdbc:mysql://localhost:3306/jdbcstudy?useUnicode=true&characterEncoding=utf8&useSSL=false";
    String name = "root";
    String password = "123456";

    // 3)击连接 注意里的参数顺序不要搞错
    Connection connection = DriverManager.getConnection(url,name, password);// 注意里也要抛出

    // 4)个查询窗
    Statement statement = connection.createStatement();

    // 5)查询语句,点击执
    String sql = "SELECT * FROM users";
    ResultSet resultSet = statement.executeQuery(sql); // 返回一个结果集

    // 6)
    while(resultSet.next()) {
    System.out.print("id :" + resultSet.getObject("id"));
    System.out.print("name :" + resultSet.getObject("name"));
    System.out.print("password:" + resultSet.getObject("password"));
    System.out.print("email:" + resultSet.getObject("email"));
    System.out.print("birthday :" + resultSet.getObject("birthday"));
    }
    // 关闭,造成源浪
    resultSet .close();
    statement.close();
    connection.close();

    }
    }
  • 相关阅读:
    数据结构----------堆栈
    数据结构----------双向链表
    剑指offer32----之字形打印一颗二叉树
    剑指offer31----栈的压入、弹出序列
    MySQL----日期处理函数
    1.1 文档PUT内部原理
    1 集群状态、增删改查、全量替换、强制创建、设置单个index的分片数副本数
    编译问题:'<invalid-global-code>' does not contain a definition for 'Store' and no extension method 'XXX' accepting a first argument of type '<invalid-global-code>' could be found
    ES timeout 的一些笔记
    elasticsearch 5.0以上不支持consistency 和 quorum
  • 原文地址:https://www.cnblogs.com/YXBLOGXYY/p/14638000.html
Copyright © 2020-2023  润新知