帮我用DAO模式封装使用JDBC技术连接mysql数据库
时间: 2024-06-11 10:08:31 浏览: 14
DAO模式是一种设计模式,用于封装数据访问逻辑,使它与业务逻辑分离。在使用JDBC技术连接mysql数据库时,可以使用DAO模式来帮助我们封装数据访问逻辑,提高代码的可维护性和可扩展性。
以下是一个简单的示例,演示如何使用DAO模式封装使用JDBC技术连接mysql数据库:
1. 创建一个DAO接口,定义数据访问方法:
```
public interface UserDao {
User getUserById(int userId) throws SQLException;
void addUser(User user) throws SQLException;
void updateUser(User user) throws SQLException;
void deleteUser(int userId) throws SQLException;
}
```
2. 创建一个User类,用于表示数据库中的一条记录:
```
public class User {
private int id;
private String name;
private int age;
// getters and setters
}
```
3. 创建一个UserDaoImpl类,实现UserDao接口,并使用JDBC技术连接mysql数据库,完成数据访问操作:
```
public class UserDaoImpl implements UserDao {
private Connection conn;
public UserDaoImpl() throws SQLException {
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "password");
}
public User getUserById(int userId) throws SQLException {
String sql = "SELECT * FROM users WHERE id = ?";
PreparedStatement stmt = conn.prepareStatement(sql);
stmt.setInt(1, userId);
ResultSet rs = stmt.executeQuery();
User user = null;
if (rs.next()) {
user = new User();
user.setId(rs.getInt("id"));
user.setName(rs.getString("name"));
user.setAge(rs.getInt("age"));
}
rs.close();
stmt.close();
return user;
}
public void addUser(User user) throws SQLException {
String sql = "INSERT INTO users (name, age) VALUES (?, ?)";
PreparedStatement stmt = conn.prepareStatement(sql);
stmt.setString(1, user.getName());
stmt.setInt(2, user.getAge());
stmt.executeUpdate();
stmt.close();
}
public void updateUser(User user) throws SQLException {
String sql = "UPDATE users SET name = ?, age = ? WHERE id = ?";
PreparedStatement stmt = conn.prepareStatement(sql);
stmt.setString(1, user.getName());
stmt.setInt(2, user.getAge());
stmt.setInt(3, user.getId());
stmt.executeUpdate();
stmt.close();
}
public void deleteUser(int userId) throws SQLException {
String sql = "DELETE FROM users WHERE id = ?";
PreparedStatement stmt = conn.prepareStatement(sql);
stmt.setInt(1, userId);
stmt.executeUpdate();
stmt.close();
}
}
```
4. 在应用程序中使用UserDaoImpl类,进行数据访问操作:
```
UserDao userDao = new UserDaoImpl();
// 添加一条记录
User user = new User();
user.setName("Tom");
user.setAge(18);
userDao.addUser(user);
// 更新一条记录
user = userDao.getUserById(1);
user.setName("Jerry");
user.setAge(20);
userDao.updateUser(user);
// 删除一条记录
userDao.deleteUser(2);
```
以上就是使用DAO模式封装使用JDBC技术连接mysql数据库的简单示例。在实际应用中,可以根据需要进行更复杂的数据访问操作,并在DAO接口中定义相应的方法。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)