欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Maven开发中使用注解替换映射文件

程序员文章站 2022-07-08 14:42:37
...

前言:
这里我使用Mybatis的框架,在dao层对数据库进行基本的CRUD,Mybatis好处就是对数据库操作的封装,很方便操作,通过操作javabean就可以操作数据库了.
在单表操作的情况下使用注解是最简单的,比起多一个映射文件来的轻松多了,但是平时我也还是习惯使用映射文件.
单表的操作就不举例了,那就来试一下一对多的关联表之间的查询

创建基本的工程环境,配置好config.xml以及domain层和dao层的数据

1.在pom.xml配置文件下引入数据库和mybatis一级日志等的相关依赖
2.配置注解映射(跟映射文件一样配置即可)
	<mappers>
        <package name="指定包的全限定路径"></package>
    </mappers>
    也可以使用<class>标签指定类  
 3.导入数据库配置文件.properties文件,简化数据库连接
 4.先确定需要查询的字段,以及表的字段,把需要查询的所有字段封装到一个javabean中
 5.创建一个javabean除了拥有自己的属性外还需要加入另外一个表的字段,但是另外一个表是对应多个的,所有是就以集合的形式存在
 public class User {
    private int id;
    private String username;
  ...
    private List<Account> list;
6.由于没有映射文件那就直接在dao层写注解
 @Results(id = "userMap", value = {
            @Result(id = true,property = "id",column = "id"),
            @Result(property = "username",column = "username"),
            ...
            @Result(property = "list",column = "id",many = @Many(
                    select = "cyh.test.dao.AccountDao.findAccountById",fetchType = FetchType.LAZY
            ))
    })
    @Select(value = "select * from user ")
    public List<User> findAllUser();
		这里使用注解替换了的映射文件,使用@Results注解代替映射文件的<resultMap>标签,使用@Result代替<result>标签和<collection>标签,@Many注解主要使用于一对多/多对多环境下,其相对的注解是@One使用一对一/多对一环境下.
		其实看起里似乎也没有简介多少,特别是在字段比较多的时候@Result注解的字段就会非常多,后续想办法解决,同时因为List集合无法使用OGNL表达式,所以只好拆分sql,如果不想拆分sql语句那就使用回原来的映射文件即可,又由于sql语句的拆分所以还得在另外一个javabean中写附加执行的sql语句,同时由于拆分语句执行就还可以加进来了延时加载的一些内容.

7.最后使用单元测试即可

相关标签: 注解开发