一、从JDBC工具类抽取
JDBC(Java 数据库连接)是用于连接和操作数据库的Java API,它定义了一系列的接口和类,使得Java程序能够与数据库进行交互。而在进行JDBC编程时,我们通常需要编写许多样板代码,如加载数据库驱动、创建数据库连接、关闭连接等操作,这些重复的代码极大地影响了编程效率。
为了解决这个问题,在实际开发中,我们通常封装一个JDBC工具类,将其中常用的连接和关闭数据库等操作封装起来,简化了JDBC编程的流程。
下面是一个简单的JDBC工具类的示例代码:
public class JDBCUtils {
private static String url = "jdbc:mysql://localhost:3306/test";
private static String user = "root";
private static String password= "123456";
// 加载数据库驱动
static {
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
// 获取数据库连接
public static Connection getConnection() throws SQLException {
return DriverManager.getConnection(url, user, password);
}
// 关闭数据库连接
public static void close(ResultSet rs, Statement stmt, Connection conn) {
try {
if (rs != null) {
rs.close();
}
if (stmt != null) {
stmt.close();
}
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
二、JDBC工具类封装实体类
JDBC工具类的另一个重要作用是封装实体类,使得我们可以通过对实体类的操作来对数据库进行增删改查。一般来说,我们需要为每一个实体类定义一个DAO(Data Access Object)类,该类中包含实体类的增删改查方法,这些方法会调用JDBC工具类中的方法来操作数据库。下面是一个DAO类的示例代码:
public class UserDAO {
// 增加用户
public void addUser(User user) {
Connection conn = null;
PreparedStatement stmt = null;
try {
conn = JDBCUtils.getConnection();
String sql = "insert into user(name, age, gender) values(?, ?, ?)";
stmt = conn.prepareStatement(sql);
stmt.setString(1, user.getName());
stmt.setInt(2, user.getAge());
stmt.setString(3, user.getGender());
stmt.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
} finally {
JDBCUtils.close(null, stmt, conn);
}
}
// 删除用户
public void deleteUser(User user) {
Connection conn = null;
PreparedStatement stmt = null;
try {
conn = JDBCUtils.getConnection();
String sql = "delete from user where id=?";
stmt = conn.prepareStatement(sql);
stmt.setInt(1, user.getId());
stmt.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
} finally {
JDBCUtils.close(null, stmt, conn);
}
}
// 更新用户
public void updateUser(User user) {
Connection conn = null;
PreparedStatement stmt = null;
try {
conn = JDBCUtils.getConnection();
String sql = "update user set name=?, age=?, gender=? where id=?";
stmt = conn.prepareStatement(sql);
stmt.setString(1, user.getName());
stmt.setInt(2, user.getAge());
stmt.setString(3, user.getGender());
stmt.setInt(4, user.getId());
stmt.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
} finally {
JDBCUtils.close(null, stmt, conn);
}
}
// 根据id查找用户
public User findUserById(int id) {
Connection conn = null;
PreparedStatement stmt = null;
ResultSet rs = null;
try {
conn = JDBCUtils.getConnection();
String sql = "select * from user where id=?";
stmt = conn.prepareStatement(sql);
stmt.setInt(1, id);
rs = stmt.executeQuery();
if (rs.next()) {
User user = new User();
user.setId(rs.getInt("id"));
user.setName(rs.getString("name"));
user.setAge(rs.getInt("age"));
user.setGender(rs.getString("gender"));
return user;
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
JDBCUtils.close(rs, stmt, conn);
}
return null;
}
// 查找所有用户
public List findAllUsers() {
List userList = new ArrayList();
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
try {
conn = JDBCUtils.getConnection();
String sql = "select * from user";
stmt = conn.createStatement();
rs = stmt.executeQuery(sql);
while (rs.next()) {
User user = new User();
user.setId(rs.getInt("id"));
user.setName(rs.getString("name"));
user.setAge(rs.getInt("age"));
user.setGender(rs.getString("gender"));
userList.add(user);
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
JDBCUtils.close(rs, stmt, conn);
}
return userList;
}
}
三、JDBC工具类连接数据库步骤
JDBC工具类连接数据库的步骤如下:
1、加载数据库驱动
在进行JDBC编程时,我们需要先加载数据库驱动,例如MySQL的驱动为com.mysql.jdbc.Driver。我们可以通过以下代码来加载MySQL数据库驱动:
Class.forName("com.mysql.jdbc.Driver");
2、创建数据库连接
一旦加载了数据库驱动,我们就可以使用DriverManager类来创建数据库连接。连接数据库的过程需要指定数据库的URL、用户名和密码。例如:
String url = "jdbc:mysql://localhost:3306/test"; String user = "root"; String password = "123456"; Connection conn = DriverManager.getConnection(url, user, password);
3、创建Statement对象
创建Statement对象可以执行SQL语句并返回结果集。例如:
Statement stmt = conn.createStatement(); String sql = "select * from user"; ResultSet rs = stmt.executeQuery(sql);
4、执行SQL
对于INSERT、UPDATE和DELETE语句,我们可以使用Statement对象或者PreparedStatement对象执行SQL。例如:
// Statement对象
String sql1 = "insert into user(name, age, gender) values('Tom', 20, 'male')";
stmt.executeUpdate(sql1);
// PreparedStatement对象
String sql2 = "insert into user(name, age, gender) values(?, ?, ?)";
PreparedStatement pstmt = conn.prepareStatement(sql2);
pstmt.setString(1, "Tom");
pstmt.setInt(2, 20);
pstmt.setString(3, "male");
pstmt.executeUpdate();
5、处理结果
对于SELECT语句,我们需要使用ResultSet对象处理结果集。例如:
while (rs.next()) {
int id = rs.getInt("id");
String name = rs.getString("name");
int age = rs.getInt("age");
String gender = rs.getString("gender");
}
6、关闭连接
使用完数据库连接后,我们需要将其关闭,以释放资源。例如:
if (rs != null) {
rs.close();
}
if (stmt != null) {
stmt.close();
}
if (conn != null) {
conn.close();
}
四、JDBC工具类怎么写
封装一个JDBC工具类的关键在于将加载驱动、创建连接和关闭连接等繁琐的操作封装起来,使得我们调用起来更加简洁方便。下面是一份常见的JDBC工具类:
public class JDBCUtils {
private static String url = "jdbc:mysql://localhost:3306/test";
private static String user = "root";
private static String password = "123456";
private JDBCUtils() {
}
// 注册驱动,静态代码块
static {
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
/**
* 获取连接对象
*
* @return 连接对象
* @throws SQLException SQL异常
*/
public static Connection getConnection() throws SQLException {
return DriverManager.getConnection(url, user, password);
}
/**
* 释放资源
*
* @param conn 连接对象
* @param stmt Statement语句执行对象
* @param rs 结果集
*/
public static void close(Connection conn, Statement stmt, ResultSet rs) {
if (rs != null) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (stmt != null) {
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
五、JDBC工具类属于模型层吗
JDBC工具类属于模型层。在MVC(Model-View-Controller)架构中,模型层是负责处理数据和状态的一层,它与数据库进行交互,封装了数据库的操作,向上层提供API来操作实体类。而JDBC工具类正是负责连接和操作数据库的,因此属于模型层。
六、JDBC工具类是什么
JDBC工具类是一个Java类,封装了JDBC编程的相关操作,如加载数据库驱动、建立数据库连接、执行SQL语句、处理结果集等。它的主要作用是简化JDBC编程的流程,减少重复的样板代码,提高了程序员的开发效率。
七、JDBC编程的六个步骤
JDBC编程的六个步骤如下:
1、加载数据库驱动
通过Class.forName()方法加载数据库驱动,例:
Class.forName("com.mysql.jdbc.Driver");
2、建立数据库连接
使用DriverManager.getConnection()方法建立数据库连接,如:
String url = "jdbc:mysql://localhost:3306/test"; String user = "root"; String password = "123456"; Connection conn = DriverManager.getConnection(url, user, password);
3、创建Statement对象
使用Connection.createStatement()方法创建Statement对象,如:
Statement stmt = conn.createStatement();
4、执行SQL语句
使用Statement.executeXXX()方法执行SQL语句,如:
String sql = "select * from user"; ResultSet rs = stmt.executeQuery(sql);
5、处理结果集
使用ResultSet对象处理结果集,如:
while (rs.next()) {
int id = rs.getInt("id");
String name = rs.getString("name");
int age = rs.getInt("age");
String gender = rs.getString("gender");
}
6、释放资源
使用Connection.close()方法关闭连接,如:
if (rs != null) {
rs.close();
}
if (stmt != null) {
stmt.close();
}
if (conn != null) {
conn.close();
}
八、JDBC连接数据库步骤
JDBC连接数据库的步骤如下:
1、加载数据库驱动
通过Class.forName()方法加载数据库驱动,例如MySQL的驱动为com.mysql.jdbc.Driver,可以使用如下代码加载MySQL数据库驱动:
Class.forName("com.mysql.jdbc.Driver");
2、创建数据库连接
连接数据库需要指定数据库的URL、用户名和密码,例如:
String url = "jdbc:mysql://localhost:3306/test"; String user = "root"; String password = "123456"; Connection conn = DriverManager.getConnection(url, user, password);
3、创建Statement对象
创建Statement对象可以执行SQL语句并返回结果集。例如:
Statement stmt = conn.createStatement();
String sql = "select * from user";
ResultSet rs = stmt.executeQuery(sql);
</pre原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/257810.html
微信扫一扫
支付宝扫一扫