JDBC操作数据库的基本步骤

淩亂°似流年 2022-06-13 11:39 350阅读 0赞

二话不说,直接上代码:

  1. import java.sql.Connection;
  2. import java.sql.DriverManager;
  3. import java.sql.PreparedStatement;
  4. import java.sql.ResultSet;
  5. public class JDBC {
  6. public static void main(String[] args) {
  7. //数据库连接
  8. Connection connection = null;
  9. //预编译的Statement,使用预编译的Statement可以提高数据库性能
  10. PreparedStatement preparedStatement =null;
  11. //结果集
  12. ResultSet resultSet = null;
  13. try {
  14. //加载数据库驱动
  15. Class.forName("com.myqsl.jdbc.Driver");
  16. //通过数据驱动管理类获取数据库连接
  17. connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/mybatis?characterEncoding=utf8","root","123456");
  18. //定义sql语句?表示占位符
  19. String sql = "select * from user where username = ?";
  20. //获取预处理statement
  21. preparedStatement = connection.prepareStatement(sql);
  22. //设置参数
  23. preparedStatement.setString(1, "小路");
  24. //向数据库发出sql执行查询,查询出结果集
  25. resultSet = preparedStatement.executeQuery();
  26. //遍历查询结果集
  27. while(resultSet.next()){
  28. System.out.println(resultSet.getString("id") + " "+resultSet.getString("username") );
  29. }
  30. } catch (Exception e) {
  31. e.printStackTrace();
  32. }finally{
  33. //释放资源
  34. if(resultSet != null){
  35. try {
  36. resultSet.close();
  37. } catch (Exception e) {
  38. e.printStackTrace();
  39. }
  40. }
  41. if(preparedStatement != null){
  42. try {
  43. preparedStatement.close();
  44. } catch (Exception e) {
  45. e.printStackTrace();
  46. }
  47. }
  48. }
  49. }
  50. }

JDBC介绍

  1. JDBC的全称是Java Database Connectivity,即Java数据库连接,它是一种可以执行SQL语句的Java API。与其他数据库编程环境相比,JDBC为数据库开发提供了标准的API,所以使用JDBC开发的数据库应用可以跨平台运行,而且可以跨数据库。通过使用JDBC,就可以使用同一种API访问不同的数据库系统,只需要根据不同的数据库,使用不同的数据库驱动程序就可以了。

PS:Sun公司制定了一组标准的API,它们只是接口,没有提供实现类——这些实现类由各数据库厂商提供实现,这些实现类就是驱动程序。而程序员使用JDBC时只要面向标准的JDBC API编程即可,当需要在数据库之间切换时,只要更换不同的实现类(即更换数据库驱动程序)就行,这就是面向接口编程的典型应用。

SQL语句基础

标准的SQL语句通常可分为如下几种类型。

1)查询语句:主要由select关键字完成。

2)DML(Data Manipulation Language,数据操作语言)语句:主要由insert,update和delete三个关键字完成

3)DDL(Data Definition Language,数据定义语言)语句:主要由create,alter,drop和truncate四个关键字组成。

4)DCL(Data Control Language,数据控制语言)语句:主要由grant和revoke两个关键字完成。

5)事务控制语句:主要由commit,rollback和savepoint三个关键字完成。

SQL语句的关键字不区分大小写。

JDBC常用接口和类介绍

1)DriverManager:用于管理JDBC驱动的服务类。程序中使用该类的主要功能是获取Connection对象,该类包含如下方法:

  1. public static synchronized Connection getConnection(String url,String user,String pass):该方法获得url对应数据库的连接。

2)Connection:代表数据库连接对象,每个Connection代表一个物理连接会话。要想访问数据库,必须先获得数据库连接。该接口的常用方法如下:

  1. Statement createStatement():该方法返回一个Statement对象。
  2. PreparedStatement prepareStatement(String sql) :该方法返回预编译的Statement对象,即将SQL语句提交到数据库进行预编译。
  3. CallableStatement prepareCall(String sql) :该方法返回CallableStatement对象,该对象用于调用存储过程。
  4. 上面三个方法都返回用于执行SQL语句的Statement对象,PreparedStatementCallableStatementStatement的子类,只有获得了Statement之后才可执行SQL语句。
  5. 除此之外,Connection还有如下几个用于控制事务的方法。
  6. 1Savepoint setSavepoint():创建保存点。
  7. 2Savepoint setSavepoint(String name):指定名字来创建一个保存点。
  8. 3void setTransactionIsolation(int level):设置事务的隔离级别。
  9. 4void rollback():回滚事务。
  10. 5void rollback(Savepoint savepoint):将事务回滚到指定的保存点。
  11. 6void setAutoCommit(boolean autoCommit):关闭自动提交,打开事务。
  12. 7void commit():提交事务。

3)Statement:用于执行SQL语句的工具接口。该对象既可以执行DDL,DCL语句,也可以执行DML语句,还可以执行SQL查询。当执行SQL查询时,返回查询到的结果集。常用方法如下:

  1. 1ResultSet executeQuery(String sql):该方法用于执行查询语句,并返回查询结果对应的ResultSet对象。该方法只能用于执行查询。
  2. 2int executeUpdate(String sql):该方法用于执行DML语句,并返回受影响的行数;该方法也可以执行DDL语句,执行DDL语句将返回0
  3. 3boolean execute(String sql):该方法可执行任何SQL语句。如果执行后第一个结果为ResultSet对象,则返回true;如果执行后第一个结果为受影响的行数或没有任何结 果,则返回false

4)PreparedStatement:预编译的Statement对象。preparedStatement是Statement的子接口,它允许数据库预编译SQL语句(这些SQL语句通常带有参数),以后每次只改变SQL命令的参数,避免数据库每次都需要编译SQL语句,因此性能更好。它比Statement多了如下方法:

  1. void setXxx(int paremeterIndex,Xxx value):该方法根据传入参数值的类型不同,需要使用不同的方法。传入的值根据索引传给SQL语句中指定位置的参数。
  2. PS:PreparedStatement同样有executeUpdate(),executeQuery(),execute()三个方法,只是这三个方法无须接收SQL字符串,因为PreparedStatement对象已经预编译了SQL命令,只要为这些命令传入参数即可。

5)ResultSet:结果集对象。该对象包含访问查询结果的方法,ResultSet可以通过列索引或列名获得数据。它包含了如下常用方法来移动记录指针。

  1. 1void close():释放ResultSet对象。
  2. 2boolean absolute(int row):将结果集的记录指针移动到第row行,如果row是负数,则移动到倒数第row行。如果移动后的记录指针指向一条有效记录,则返回true
  3. 3void beforeFirst():将ResultSet的记录指针定位到首行之前,这是ResultSet结果集记录指针的初始状态——就指针的起始位置位于第一行之前。
  4. 4boolean first():将ResultSet的记录指针定位到首行。如果移动后的记录指针指向一条有效数据,则该方法返回true
  5. 5boolean previous():将ResultSet的记录指针定位到上一行。如果移动后的记录指针指向一条有效数据,则该方法返回true
  6. 6boolean next():将ResultSet的记录指针定位到下一行。如果移动后的记录指针指向一条有效数据,则该方法返回true
  7. 7boolean last():将ResultSet的记录指针定位到最后一行。如果移动后的记录指针指向一条有效数据,则该方法返回true
  8. 8void afterLast():将ResultSet的记录指针定位到最后一行之后。
  9. 当把记录指针移动到指定行之后,ResultSet可以通过getXxx(int columnIndex)或getXxx(String columnLable)方法来获取当前行,指定列的值,前者根据列索引获取值,后者根据列名获取值。Java 7 新增了<T>T getObject(int columnIndex ,Class<T>type)和<T>T getObject(String columnLable,Class<T>type)两个泛型方法,它们可以获取任意类型的值。

JDBC编程步骤(首先得添加MySQL的数据库驱动)

1)加载数据库驱动。通常使用Class类的forName()静态方法来加载驱动。

  1. Class.forName(driverClass) ; 如:Class.forName("com.mysql.jdbc.Driver") ;//加载MySQL的驱动

2)通过DriverManager获取数据库连接

  1. DriverManager.getConnection(String url,String user,String pass);
  2. MySQL数据库的URL写法如下:jdbc:mysql://hostname:port/databasename

3)通过Connection对象创建Statement对象。Connection创建Statement的方法有如下三个:

  1. 1createStatement():创建基本的Statement对象。
  2. 2prepareStatement(String sql):根据传入的SQL语句创建预编译的Statement对象。
  3. 3prepareCall(String sql):根据传入的SQL语句创建CallableStatement对象。

4)使用Statement执行SQL语句。所有的Statement都有如下三个方法来执行SQL语句。

  1. 1execute();
  2. 2executeUpdate();
  3. 3executeQuery();

5)操作结果集。如果执行的SQL语句是查询语句,则执行结果将返回一个ResultSet对象,该对象里保存了SQL语句查询的结果。

6)回收数据库资源,包括关闭ResultSet,Statement和Connection等资源。

发表评论

表情:
评论列表 (有 0 条评论,350人围观)

还没有评论,来说两句吧...

相关阅读