springboot项目dao层写啥
时间: 2023-07-08 12:53:19 浏览: 109
springboot,mybatis,springboot-mybatis环境,手动写dao实现类,非自动扫描
在 Spring Boot 项目中,DAO 层主要负责与数据库进行交互,一般包括以下内容:
1. 数据访问对象接口的定义:在这个接口中定义了与数据库交互的方法,一般包括增删改查等操作。例如:
```java
public interface UserDao {
User getUserById(int id);
void addUser(User user);
void updateUser(User user);
void deleteUser(int id);
List<User> listUsers();
}
```
2. 数据访问对象实现类:在这个类中实现了定义在接口中的方法,具体实现方式可能是使用 JDBC 进行操作,或者使用 ORM 框架(如 Mybatis 或 Hibernate)进行操作。例如使用 JdbcTemplate 实现:
```java
@Repository
public class UserDaoImpl implements UserDao {
@Autowired
private JdbcTemplate jdbcTemplate;
@Override
public User getUserById(int id) {
String sql = "SELECT * FROM user WHERE id = ?";
return jdbcTemplate.queryForObject(sql, new Object[] { id }, new BeanPropertyRowMapper<User>(User.class));
}
@Override
public void addUser(User user) {
String sql = "INSERT INTO user(name,age,gender) VALUES(?,?,?)";
jdbcTemplate.update(sql, user.getName(), user.getAge(), user.getGender());
}
@Override
public void updateUser(User user) {
String sql = "UPDATE user SET name=?, age=?, gender=? WHERE id=?";
jdbcTemplate.update(sql, user.getName(), user.getAge(), user.getGender(), user.getId());
}
@Override
public void deleteUser(int id) {
String sql = "DELETE FROM user WHERE id=?";
jdbcTemplate.update(sql, id);
}
@Override
public List<User> listUsers() {
String sql = "SELECT * FROM user";
return jdbcTemplate.query(sql, new BeanPropertyRowMapper<User>(User.class));
}
}
```
3. 实体类:在 DAO 层中需要使用实体类来表示数据库中的数据,一般使用 JavaBean 的方式来定义。例如:
```java
public class User {
private int id;
private String name;
private int age;
private String gender;
// 省略 getter 和 setter 方法
}
```
以上就是 Spring Boot 项目中 DAO 层的基本写法,当然具体的实现方式可能会因为使用的数据库或 ORM 框架的不同而有所不同,但是主要的概念和流程是类似的。
阅读全文