jdbc mysql api_JDBC常用API和使用

本文详细介绍了JDBC中的Connection、Statement、PreparedStatement和ResultSet接口的主要方法及其功能,包括添加数据、查询数据等操作。同时,给出了往数据库添加数据和查询数据的Java代码示例,帮助理解API的使用。
摘要由CSDN通过智能技术生成

一、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 更适合。

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

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、往数据库里添加数据

① 数据表结构如下

1ac55bdc18c8939bcc8e3959fd112958.png

② 代码如下

packagecom.liuyanzhao;

importjava.sql.Connection;

importjava.sql.Date;

importjava.sql.DriverManager;

importjava.sql.PreparedStatement;

importjava.sql.SQLException;

importjava.text.ParseException;

importjava.text.SimpleDateFormat;

/*

* @author LiuYanzhao

*/

publicclassDemo1 {

privatestaticfinalString URL ="jdbc:mysql://127.0.0.1:3306/jdbc_study?useUnicode=true&characterEncoding=utf8";

privatestaticfinalString USER ="root";

privatestaticfinalString PASSWORD ="";

publicstaticConnection conn =null;

publicstaticvoidmain(String[] args)throwsClassNotFoundException, SQLException, ParseException {

//1、加载驱动,需要提前把 jar 包添加到 classpath 中

Class.forName("com.mysql.jdbc.Driver");

//2、创建应用程序与数据库连接的 Connection 对象

conn = DriverManager.getConnection(URL, USER, PASSWORD);

//3、要执行的 sql 语句:name,password,email,status通过占位符填数,create_date 自动为当前时间

String sql = " INSERT INTO users"+

"(name,password,birthday,email,create_date,status) "+

"VALUES("+

"?,?,?,?,current_date(),?)";

//4、创建执行 SQL 语句的 PreparedStatement 对象

PreparedStatement ptmt = conn.prepareStatement(sql);

ptmt.setString(1,"小美");

ptmt.setString(2,"123456");

ptmt.setDate(3,newDate((newSimpleDateFormat("yyyy-MM-dd").parse("2011-10-1")).getTime()) );

ptmt.setString(4,"xiaomei@126.com");

ptmt.setInt(5,1);

//5、真正执行 sql 语句,并返回影响的行数

intx = ptmt.executeUpdate();

System.out.println("影响行数:"+ x);//返回1

}

}

③运行结果

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

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

①数据表如下

6418ccf14930cbef7f37806b49f67c90.png

②代码如下

packagecom.liuyanzhao;

importjava.sql.Connection;

importjava.sql.Date;

importjava.sql.DriverManager;

importjava.sql.PreparedStatement;

importjava.sql.ResultSet;

importjava.sql.SQLException;

importjava.text.ParseException;

importjava.text.SimpleDateFormat;

/*

* @author LiuYanzhao

*/

publicclassDemo2 {

privatestaticfinalString URL ="jdbc:mysql://127.0.0.1:3306/jdbc_study?useUnicode=true&characterEncoding=utf8";

privatestaticfinalString USER ="root";

privatestaticfinalString PASSWORD ="";

publicstaticConnection conn =null;

publicstaticvoidmain(String[] args)throwsClassNotFoundException, SQLException, ParseException {

//1、加载驱动,需要提前把 jar 包添加到 classpath 中

Class.forName("com.mysql.jdbc.Driver");

//2、创建应用程序与数据库连接的 Connection 对象

conn = DriverManager.getConnection(URL, USER, PASSWORD);

//3、要执行的 sql 语句:name,password,email,satic 通过占位符填数,create_date 自动为当前时间

String sql = " SELECT * FROM users";

//4、创建执行 SQL 语句的 PreparedStatement 对象

PreparedStatement ptmt = conn.prepareStatement(sql);

//5、真正执行 sql 语句,并返回影响的 ResultSet

ResultSet rs = ptmt.executeQuery();

//6、打印 ResultSet 数据集

while(rs.next()) {

System.out.print(rs.getInt("id")+" ");

System.out.print(rs.getString("name")+" ");

System.out.print(rs.getString("password")+" ");

System.out.print(rs.getDate("birthday")+" ");

System.out.print(rs.getString("email")+" ");

System.out.print(rs.getDate("create_date")+" ");

System.out.print(rs.getInt("status")+" ");

System.out.println();

}

}

}

③ 运行结果

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

df757f053efd75efe43076fbc9d42ccc.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值