zoukankan      html  css  js  c++  java
  • JDBC的编码步骤

    1. 注册JDBC驱动程序

    // 如果使用MySQL数据库:
    Class.forName("com.mysql.jdbc.Driver");
    
    // 如果使用Oracle数据库:
    Class.forName("oracle.jdbc.driver.OracleDriver");
    

    2. 获取数据库连接

    Connection conn = DriverManager.getConnection(url,user,password);
    // 与MySQL数据库连接:
          url:jdbc:mysql://localhost:3306/自己创建的MySQL数据库名称
          user:用户名
          password:密码(自己安装的时候设置的密码)
    // 与Oracle数据库连接:
          url:jdbc:oracle:thin:@localhost:1521:orcl
          user与password和MySQL的一致
    

    3. 准备sql语句

    String sql = "sql语句";
    

    4. 创建发送SQL语句的对象(执行者)

    两种方式:需要使用类型为Statement或PreparedStatement的对象来构建并向数据库提交SQL语句

    4.1:创建Statement接口操作数据库,向数据库发送命令:

    Statement stat = conn.createStatement();
    

    4.2:创建PreparedStatement接口操作数据库,向数据库发送命令(预编译sql语句):

    注:预编译sql语句,要给sql语句添加参数,通过预编译对象赋值。

    PreparedStatement preparedStatement = conn.prepareStatement(sql);
    
    赋值:
    setXxx(int 第几个问号,Object 实际参数);
    例:
    prestat.setInt(第一个参数,第二个参数); 
    prestat.setString(第一个参数,第二个参数);
    prestat.setObject(第一个参数,第二个参数);
    

    PreparedStatement和Statement的区别:

      PreparedStatement是Statement的子接口,它具有预编译,预处理的功能,所以效率要比Statement高,而且它可以识别sql语句中的参数和占位符(可以传参)如果sql语句中的参数较多,需要拼接字符串时,用PreparedStatement非常方便。

    5. 执行sql语句

    5.1:Statement方式:

    // 增删改返回的是影响行数:
          int res = stat.executeUpdate(sql);
    // 查返回的是结果集:
          ResultSet rs = stat.executeQuery(sql);
    

    5.2:PreparedStatement方式:

    // 增删改返回的是影响行数:
          int res = stat.executeUpdate();
    // 查返回的是结果集:
          ResultSet rs = stat.executeQuery();
    

    ResultSet取数据方式:rs就是数据库游标,next相当于游标的指针向前移动,并且返回boolean值,是否有记录

    while(rs.next()) {
        // 获取数据有两种方法,一个是按照列的索引来获取,一个是按照列名来获取
        // 索引从1开始(Java中只有JDBC是索引从1开始的)
        int id = rs.getInt(1);
        // college不一定是列名,也可能是列的别名
        String college = rs.getString("college");
        Date date = rs.getDate("update");
        System.out.println("id=" + id);
        System.out.println("college=" + college);
        System.out.println("update=" + date);
        // 到此一条记录读取完成,下一个循环是下一个记录
    }
    

    6. 释放资源

    stat.close();
    conn.close();
    preparedStatement.close();
    如果返回的是结果集需要释放:rs.close();
    
  • 相关阅读:
    HearthBuddy投降插件2019-11-01的使用
    正则表达式在线分析 regex online analyzer
    Tips to write better Conditionals in JavaScript
    The fileSyncDll.ps1 is not digitally signed. You cannot run this script on the current system.
    Cannot capture jmeter traffic in fiddler
    JMETER + POST + anti-forgery token
    input type color
    HearthBuddy修改系统时间
    What are all the possible values for HTTP “Content-Type” header?
    UDK性能优化
  • 原文地址:https://www.cnblogs.com/zbh355376/p/13972677.html
Copyright © 2011-2022 走看看