• 那是从何处传来的钟声呢?偶尔听到那钟声,平添一份喜悦与向往之情。

JDBC常用API和使用

后端 Nanait 12年前 (2012-09-29) 895次浏览 已收录 0个评论 扫描二维码
文章目录[隐藏]

一、JDBC 常用 API

1、Connection 接口

方法名称功能描述
getMetaData()该方法用于返回数据库的元数据的 DatabaseMetaData 对象
createStatement用于创建一个 Statement 对象来将 SQL 语句发送到数据库
preparedStatement(String sql)用于创建一个 PreparedStatement 对象来将参数化的 SQL 语句发送到数据库
prepareCall(String sql)用于创建一个 CallableStatement 对象来调用数据库存储过程

2、Statement 接口

方法名称功能描述
boolean execute(String sql)用于执行各种 SQL 语句,该方法返回一个 boolean 类型的值。如果为 true,表示所执行的 SQL 语句具备查询结果,可通过 Statement 的 getResultSet() 方法查询结果
int executeUpdate(String sql)用于执行 SQL 中的 insert、update 和 delete 语句,该方法返回一个 int 类型的值,表示影响数据库中的行数
ResultSet executeQuery(String sql)用于执行 SQL 中的 select 语句(查询,遍历),该方法返回一个表示查询结果的 ResultSet 对象

 execute 是 executeQuery 和 executeUpdate 的综合.

通常我们没有必要使用 execute 方法来执行 SQL 语句,而是使用 executeQuery 或 executeUpdate 更适合。

具体可参考:execute、executeUpdate、executeQuery 三者的区别

3、PreparedStatement 接口

方法名称功能描述
executeUpdate()在此 PreparedStatement 对象中执行 SQL 语句,该语句必须是一个 DML 语句,或者无返回内容的 SQL 语句,比如 DDL 语句
executeQuery()在此 PreparedStatement 对象中执行 SQL 语句,该方法返回的是 ResultSet 对象
setInt(int parameterIndex, int x)将指定的参数设置为 int 值
setFloat(int parameterIndex, float x)将指定的参数设置为 Float 值
setString(int parameterIndex, String x)将指定参数设置的给定的 Date 值
setDate(int parameterIndex, Date x)将指定参数设置给定的 Date 值
addBatch()将一组参数添加到此 PreparedStatement 对象的批处理命令中
setCharacterStream(parameterIndex, reader, length)将指定的输入流写入数据库的文本字段
setBinaryStream(parameterIndex, x, length)将二进制的输入流数据写入到二进制的字段中

DML 语句:SELECT、UPDATE、INSERT、DELETE

DLL 语句:CREATE DROP ALERT

具体参考: sql 语句分为三类(DML,DDL,DCL)-介绍

4、ResultSet 接口

getString(int columnIndex)用于获取 指定字段的 String 类型的值,参数 columnIndex 代表字段的索引
getString(String columnName) 用于获取指定字段的 String 类型的值,参数 columnIndex 代表字段名称
getInt(int columnIndex) 用于获取指定字段的 int 类型的值,参数 columnIndex 代表字段的索引
getInt(String columnName) 用于获取指定字段的 int 类型的值,参数 columnIndex 代表字段名称
getDate(int columnIndex) 用于获取指定字段的 Date 类型的值,参数 columnIndex 代表字段索引
getDate(String columnName) 用于获取指定字段的 Date 类型的值,参数 columnIndex 代表字段名称
next() 将游标从当前位置移到下一位置
absolute(int row)将游标移到此 ResultSet 对象的指定行
afterLast()将游标移动到此 ResultSet 对象的末尾,即最后一行之后
beforeFirst()将游标移动到此 ResultSet 对象开头,即第一行之前
previous()将游标移动到此 ResultSet 对象的上一行
last()将游标移动到此  Result 对象的最后一行

二、案例

1、往数据库里添加数据

① 数据表结构如下

JDBC 常用 API 和使用

② 代码如下

  1. package com.liuyanzhao;
  2. import java.sql.Connection;
  3. import java.sql.Date;
  4. import java.sql.DriverManager;
  5. import java.sql.PreparedStatement;
  6. import java.sql.SQLException;
  7. import java.text.ParseException;
  8. import java.text.SimpleDateFormat;
  9. /*
  10.  * @author LiuYanzhao
  11.  */
  12. public class Demo1 {
  13.     private static final String URL = “jdbc:mysql://127.0.0.1:3306/jdbc_study?useUnicode=true&characterEncoding=utf8”;
  14.     private static final String USER = “root”;
  15.     private static final String PASSWORD = “”;
  16.     public static Connection conn = null;
  17.     public static void main(String[] args) throws ClassNotFoundException, SQLException, ParseException {
  18.         //1、加载驱动,需要提前把 jar 包添加到 classpath 中
  19.         Class.forName(“com.mysql.jdbc.Driver”);
  20.         //2、创建应用程序与数据库连接的 Connection 对象
  21.         conn = DriverManager.getConnection(URL, USER, PASSWORD);
  22.         //3、要执行的 sql 语句:name,password,email,status 通过占位符填数,create_date 自动为当前时间
  23.         String sql = ” INSERT INTO users”+
  24.                      “(name,password,birthday,email,create_date,status) “+
  25.                      “VALUES(“+
  26.                      “?,?,?,?,current_date(),?)”;
  27.         //4、创建执行 SQL 语句的 PreparedStatement 对象
  28.         PreparedStatement ptmt = conn.prepareStatement(sql);
  29.         ptmt.setString(1“小美”);
  30.         ptmt.setString(2“123456”);
  31.         ptmt.setDate(3,new Date((new SimpleDateFormat(“yyyy-MM-dd”).parse(“2011-10-1”)).getTime()) );
  32.         ptmt.setString(4“xiaomei@126.com”);
  33.         ptmt.setInt(51);
  34.         //5、真正执行 sql 语句,并返回影响的行数
  35.         int x = ptmt.executeUpdate();
  36.         System.out.println(“影响行数:” + x); //返回 1
  37.     }
  38. }

③运行结果

上面的操作,将在 jdbc_study 数据库的 users 表中添加一条记录,终端显示 1

2、查询(打印)数据库信息

①数据表如下

JDBC 常用 API 和使用

②代码如下

  1. package com.liuyanzhao;
  2. import java.sql.Connection;
  3. import java.sql.Date;
  4. import java.sql.DriverManager;
  5. import java.sql.PreparedStatement;
  6. import java.sql.ResultSet;
  7. import java.sql.SQLException;
  8. import java.text.ParseException;
  9. import java.text.SimpleDateFormat;
  10. /*
  11.  * @author LiuYanzhao
  12.  */
  13. public class Demo2 {
  14.     private static final String URL = “jdbc:mysql://127.0.0.1:3306/jdbc_study?useUnicode=true&characterEncoding=utf8”;
  15.     private static final String USER = “root”;
  16.     private static final String PASSWORD = “”;
  17.     public static Connection conn = null;
  18.     public static void main(String[] args) throws ClassNotFoundException, SQLException, ParseException {
  19.         //1、加载驱动,需要提前把 jar 包添加到 classpath 中
  20.         Class.forName(“com.mysql.jdbc.Driver”);
  21.         //2、创建应用程序与数据库连接的 Connection 对象
  22.         conn = DriverManager.getConnection(URL, USER, PASSWORD);
  23.         //3、要执行的 sql 语句:name,password,email,satic 通过占位符填数,create_date 自动为当前时间
  24.         String sql = ” SELECT * FROM users”;
  25.         //4、创建执行 SQL 语句的 PreparedStatement 对象
  26.         PreparedStatement ptmt = conn.prepareStatement(sql);
  27.         //5、真正执行 sql 语句,并返回影响的 ResultSet
  28.         ResultSet rs = ptmt.executeQuery();
  29.         //6、打印 ResultSet 数据集
  30.         while(rs.next()) {
  31.             System.out.print(rs.getInt(“id”)+” “);
  32.             System.out.print(rs.getString(“name”)+” “);
  33.             System.out.print(rs.getString(“password”)+” “);
  34.             System.out.print(rs.getDate(“birthday”)+” “);
  35.             System.out.print(rs.getString(“email”)+” “);
  36.             System.out.print(rs.getDate(“create_date”)+” “);
  37.             System.out.print(rs.getInt(“status”)+” “);
  38.             System.out.println();
  39.         }
  40.     }
  41. }

③ 运行结果

控制台上可以看到如下界面

JDBC 常用 API 和使用

 


何处钟 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:JDBC 常用 API 和使用
喜欢 (0)
[15211539367@163.com]
分享 (0)

您必须 登录 才能发表评论!