美文网首页
MySQL 基础 9 JDBC之API 之一

MySQL 基础 9 JDBC之API 之一

作者: 小熊先生很不开心 | 来源:发表于2018-03-19 08:31 被阅读3次

    1.1 DriverManager

    1.1.1 注册驱动

    • 方法一:
    static void registerDriver(Driver driver)
                    向DriverManger注册给点驱动程序
    

      这个方法可以完成驱动的注册,但是实际开发中一般不会使用这个方法完成驱动的注册!!!

    • 原因:
      如果需要注册驱动,就会使用DriverManager.registerDriver(new Driver());,但是查看源代码发现,在代码中有一段静态代码块,静态代码块已经调用了注册驱动的方法。
    static {
            try {
                java.sql.DriverManager.registerDriver(new Driver());
            } catch (SQLException E) {
                throw new RuntimeException("Can't register driver!");
            }
        }
    
    • 如果再手动调用该方法注册驱动,就会导致驱动被注册两次,实际开发中一般会采用方法二
    • 方法二:
    Class.forName("com.mysql.jdbc.Driver");
    

    1.1.2 获得链接

    static Connection getConnection(String url) 
              试图建立到给定数据库 URL 的连接。 
    

    这个方法就是用来获得与数据库连接的方法:这个方法中有三个参数:

    • url :与数据库连接的路径
      • jdbc:mysql://localhost:3306/web_test3
        • jdbc :连接数据库的协议
        • mysql :是jdbc的子协议
        • localhost :连接的MySQL数据库服务器的主机地址。(连接是本机就可以写成localhost),如果连接不是本机的,就需要写上连接主机的IP地址。
        • 3306 :MySQL数据库服务器的端口号
        • web_test3 :数据库名称
        • url如果连接的是本机的路径,可以简化为如下格式:
          • jdbc:mysql:///web_test3
    • user :与数据库连接的用户名
    • password :与数据库连接的密码

    1.2 Connection

    1.2.1 创建执行SQL语句的对象

     Statement createStatement() 
              创建一个 Statement 对象来将 SQL 语句发送到数据库。 
    
     CallableStatement prepareCall(String sql) 
              创建一个 CallableStatement 对象来调用数据库存储过程。 
    
    PreparedStatement prepareStatement(String sql) 
              创建一个 PreparedStatement 对象来将参数化的 SQL 语句发送到数据库。 
    
    • 执行SQL语句对象:
      • Statement :执行SQL
      • CallableStatement :执行数据库中存储过程
      • PreparedStatement :执行SQL.对SQL进行预处理。解决SQL注入漏洞。

    1.2.2 管理事务

    void setAutoCommit(boolean autoCommit) 
              将此连接的自动提交模式设置为给定状态。 
    
     void commit() 
              使所有上一次提交/回滚后进行的更改成为持久更改,并释放此 Connection 对象当前持有的所有数据库锁。 
    
    
    void rollback() 
              取消在当前事务中进行的所有更改,并释放此 Connection 对象当前持有的所有数据库锁。 
    

    1.3 Statement

    1.3.1 执行SQL

    boolean execute(String sql) 
              执行给定的 SQL 语句,该语句可能返回多个结果。 
    
    ResultSet executeQuery(String sql) 
              执行给定的 SQL 语句,该语句返回单个 ResultSet 对象。 
    
     int executeUpdate(String sql) 
              执行给定 SQL 语句,该语句可能为 INSERT、UPDATE 或 DELETE 语句,或者不返回任何内容的 SQL 语句(如 SQL DDL 语句)。 
    
    • 执行SQL的方法
      • boolean execute(String sql);
        • 执行查询,修改,添加,删除的SQL语句。
      • ResultSet executeQuery(String sql);
        • 执行查询(执行select语句)。
      • int executeUpate(String sql);
        • 执行修改,添加,删除的SQL语句。

    1.3.2 执行批处理

     void addBatch(String sql) 
              将给定的 SQL 命令添加到此 Statement 对象的当前命令列表中。 
    
     void clearBatch() 
              清空此 Statement 对象的当前 SQL 命令列表。 
    
     int[] executeBatch() 
              将一批命令提交给数据库来执行,如果全部命令执行成功,则返回更新计数组成的数组。 
    

    1.4 ResultSet

      ResultSet 通过select语句的查询结果。

    1.4.1 遍历结果

    
     boolean next() 
              将光标从当前位置向前移一行。 
    
    ResultSet resultSet = statement.executeQuery(sql);
        while(resultSet.next()){
            System.out.print(resultSet.getInt("id")+" ");
            System.out.print(resultSet.getString("username")+" ");
            System.out.print(resultSet.getString("password")+" ");
            System.out.print(resultSet.getString("nickname")+" ");
            System.out.print(resultSet.getInt("age")+" ");
            System.out.println();
        }
    
    • 遍历原理
      [图片上传失败...(image-9692a8-1521418873788)]


      next遍历.png

    1.4.2 结果集的获取

    方法摘要
    int getInt(int columnIndex) 以 Java 编程语言中 int 的形式获取此 ResultSet 对象的当前行中指定列的值。
    long getLong(int columnIndex) 以 Java 编程语言中 long 的形式获取此 ResultSet 对象的当前行中指定列的值。
    String getString(int columnIndex) 以 Java 编程语言中 String 的形式获取此 ResultSet 对象的当前行中指定列的值。
    • 结果集获取可以使用结果集中的:
    • getXXX();方法通常都会有一个重载的方法。
      • getXXX(int columnIndex);
      • getXXX(String columnName);

    相关文章

      网友评论

          本文标题:MySQL 基础 9 JDBC之API 之一

          本文链接:https://www.haomeiwen.com/subject/txorqftx.html