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();
posted @ 2020-11-14 11:22  逍遥客灬  阅读(380)  评论(0编辑  收藏  举报