温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

java DAO注解如何使用

发布时间:2026-09-14 21:27:01 来源:亿速云 阅读:98 作者:小樊 栏目:编程语言

在 Java 中,DAO(Data Access Object) 通常用于封装对数据库的访问。结合 注解(Annotation),可以大大简化 DAO 的编写,常见于 Spring + MyBatis / JPA(Hibernate) 等框架。

下面按常见框架分别说明 DAO 注解的使用方式。


一、Spring + MyBatis 中的 DAO 注解

1️⃣ 定义 DAO 接口

使用 @Mapper 或 @Repository

@Mapper
public interface UserDao {

    @Select("SELECT * FROM user WHERE id = #{id}")
    User getUserById(Integer id);

    @Insert("INSERT INTO user(name, age) VALUES(#{name}, #{age})")
    int addUser(User user);

    @Update("UPDATE user SET name=#{name} WHERE id=#{id}")
    int updateUser(User user);

    @Delete("DELETE FROM user WHERE id=#{id}")
    int deleteUser(Integer id);
}

✅ 说明:

  • @Mapper:MyBatis 扫描接口生成实现
  • SQL 注解:@Select @Insert @Update @Delete
  • #{}:防止 SQL 注入

2️⃣ Spring 中启用 Mapper 扫描

@SpringBootApplication
@MapperScan("com.example.dao")
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class);
    }
}

二、Spring + JPA(Hibernate)中的 DAO 注解

1️⃣ 实体类注解

@Entity
@Table(name = "user")
public class User {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Integer id;

    @Column(name = "name")
    private String name;
}

2️⃣ DAO 接口(Repository)

@Repository
public interface UserDao extends JpaRepository<User, Integer> {

    List<User> findByName(String name);
}

✅ 常用注解:

  • @Entity:实体类
  • @Table:表名
  • @Id:主键
  • @Repository:DAO 层组件

三、Spring 通用 DAO 注解

@Repository
public class UserDaoImpl implements UserDao {

    @Autowired
    private JdbcTemplate jdbcTemplate;
}

常用注解:

  • @Repository:DAO 层
  • @Autowired:依赖注入
  • @Transactional:事务

四、事务注解(DAO / Service 层)

@Transactional
public void saveUser(User user) {
    userDao.addUser(user);
}

五、总结对比

框架 DAO 注解 SQL 方式
MyBatis @Mapper 注解 / XML
JPA @Repository 方法名自动生成
Spring @Repository JDBC / Template

如果你有 具体框架(MyBatis / JPA / 原生 JDBC) 或 示例代码,我可以给你更精准的写法。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI
助
手