如何使用 JDBC 处理 SQL 语句并举例说明?
要处理 SQL 语句,您需要按照以下步骤操作:
建立连接。
创建一个语句。
执行语句/查询。
处理结果。
关闭连接。
建立连接
要处理 SQL 语句,首先需要与所需的 DBMS、文件系统或其他数据源建立连接。
为此,请使用 **registerDriver()** 方法将与 DataSource 对应的 JDBC 驱动程序类注册到 DriverManager。
Driver myDriver = new com.mysql.jdbc.Driver(); DriverManager.registerDriver(myDriver);
此方法接受 Driver 类的对象;它将指定的 Driver 注册到 DriverManager。
您也可以使用 **forName()** 方法注册驱动程序。此方法将指定的类加载到内存中,并自动注册。
Class.forName("com.mysql.jdbc.Driver");
注册驱动程序类后,使用 getConnection() 方法获取 Connection 对象。
此方法接受数据库 URL(指向数据库的地址)、用户名和密码,并返回一个连接对象。
String url = "jdbc:mysql://127.0.0.1/"; String user = "user_name"; String passwd = "password"; Connection conn = DriverManager.getConnection(url, user_name, password);
创建语句
Statement 接口表示 SQL 语句,JDBC 提供 3 种类型的 Statement
**Statement:**一种通用语句,不接受任何参数。
**PreparedStatement:**一种预编译的 SQL 语句,接受输入参数。
**Callable Statement:**用于调用存储过程。
Connection 接口提供名为 createStatement()、prepareStatement() 和 prepareCall() 的方法,分别用于创建 Statement、PreparedStatement 和 CallableStatement。您需要使用相应的方法创建这些语句中的任何一个。
conn.createStatement(); conn.prepareStatement(query); conn.prepareCall(query);
执行语句
创建语句对象后,需要执行它们。为了执行语句,Statement 接口提供了三种方法,即 execute()、executeUpdate() 和 executeQuery()。
**execute():**用于执行 SQL DDL 语句,它返回一个布尔值,指定是否可以检索 ResultSet 对象。
**executeUpdate():**用于执行诸如插入、更新、删除之类的语句。它返回一个整数值,表示受影响的行数。
**executeQuery():**用于执行返回表格数据的语句(例如 select)。它返回 ResultSet 类的对象。
使用这些方法之一执行创建的语句。
stmt.execute(query); stmt.executeQuery(query); stmt.execute(query);
处理结果
执行语句/查询后,您将从 **execute()**(布尔值)、**executeQuery()**(ResultSet)或 **executeUpdate()**(整数值)方法获得相应查询的结果作为返回值。
ResultSet 对象保存表格值,它有一个指针指向表的行,最初指针/游标将位于第一行之前。获得 ResultSet 对象后,需要从中检索所需的值并进行处理。
您可以使用 **next()** 方法将指针移动到下一行。这将返回一个布尔值,指定 **ResultSet** 是否包含下一行。
因此,在 while 循环中使用此方法,您可以迭代结果集的内容,并使用 Statement 接口的 getter 方法获取该行列的内容。
while(rs.next()) { System.out.print("Brand: "+rs.getString("Mobile_Brand")+", "); System.out.print("Sale: "+rs.getString("Unit_Sale")); System.out.println(""); }