JDBC 实例--JDBC通过工具类DBUtil连接到数据库,让我们不再恐惧操作数据库

时间:2023-03-09 00:27:34
JDBC 实例--JDBC通过工具类DBUtil连接到数据库,让我们不再恐惧操作数据库

利用JDBC连接到数据库一般需要几个步骤:

1.装载驱动程序。

2.建立连接。

3.发送和执行SQL语句。

4.释放资源

首先建立一个数据库:

脚本如下:

 create database csdn;
use csdn;
-- 创建用户表
CREATE TABLE USERS
(
ID INT(7) NOT NULL AUTO_INCREMENT,
NAME VARCHAR(50) ,
PWD VARCHAR(50),
PHONE VARCHAR(50) ,
PRIMARY KEY (id),
-- 登录用户名唯一约束
constraint name_unique unique(name)
); -- 向数据库插入模拟数据
insert into Users (id, name, pwd, phone) values ( 1,'Tom', '', '');
insert into Users (id, name, pwd, phone) values (2,'Jerry', 'abc', '');
insert into Users (id, name, pwd, phone) values ( 3,'Andy', '', ''); select * from users;

java连接代码如下:

新建一个项目并导入需要的jar包,完整代码如下:

JDBC 实例--JDBC通过工具类DBUtil连接到数据库,让我们不再恐惧操作数据库

 package com.daliu.jdbc;

 import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement; /**
* 测试使用JDBC连接mysql数据库
*
* @author Administrator
*/
public class DBUtil { public static void main(String[] args) { Connection conn = null;
Statement stmt = null;
ResultSet rs = null; /*
* 1.装载驱动程序。 当出现了: java.lang.ClassNotFoundException:
* oracle.jdbc.driver.OracleDriver
*
* 这个异常时,说明数据库的驱动jar包没有 导入到项目中。 若导入了jar包还报这个错误,大部分原因是 书写的驱动有错误
*/ try {
Class.forName("com.mysql.jdbc.Driver"); /*
* 2.建立连接。
*
* 通过调用DriverManager的getConnection方法,获取Connection类的对象,建立连接。
*/
String URL = "jdbc:mysql://localhost:3306/csdn"; conn = DriverManager.getConnection(URL, "root", "123456"); // 测试一下是否连接成功
System.out.println(conn); /*
* 3.通过Connection的createStatement()方法获取数据库操作对象Statement。
* 通过调用Statement对象的executeQuery方法来执行SQL语句。
*/
stmt = conn.createStatement();
rs = stmt.executeQuery("SELECT * FROM csdn.users"); /*
* 4.
* Statement的executeQuery方法的返回值为ResultSet对象。ResultSet表示数据库查询操作的结果集。
* 它具有指向其当前数据行的光标。最初,光标被置于第一行之前,调用其next 方法将光标移动到下一行,该方法在 ResultSet
* 对象没有下一行时返回 false,因此可以在 while 循环中使用它来迭代结果集。
*/
while (rs.next()) {
System.out.println(rs.getInt("ID") + ","
+ rs.getString("NAME") + ","
+ rs.getString("PWD") + ","
+ rs.getString("PHONE"));
} /*
* ResultSet提供了getXXX(String column)方法,例如:getInt(String
* column)等,获取当前ResultSet 对象的当前行中指定列名的值,其中参数column表示数据库表中的列名字。
*/
} catch (ClassNotFoundException e) {
e.printStackTrace();
System.out.println("驱动类无法找到!");
throw new RuntimeException(e); } catch (SQLException e) {
e.printStackTrace();
System.out.println("数据库访问异常!");
throw new RuntimeException(e);
} finally { /*
*5. 在finally块中,依次关闭ResultSet对象、Statement对象以及Connection对象。
*/
try {
if (rs != null) {
rs.close();
}
if (stmt != null) {
stmt.close();
}
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
System.out.println("关闭连接时发生异常");
} } } }

效果如下:

JDBC 实例--JDBC通过工具类DBUtil连接到数据库,让我们不再恐惧操作数据库