Mybatis入门简版(二)

来源:互联网 发布:python mysql 批处理 编辑:程序博客网 时间:2024/05/17 23:21

一、Dao层开发的方式

以前dao层开发比较繁琐,写了接口还得写实现类,实际上用了Mybatis之后写实现类非常重复,都是重复的代码。那么此时改成另外一种简单形式。

 

遵循以下四个原则(名称、形参、返回值、命名空间):
1.Mapper接口方法名和Mapper.xml中定义的每个statement(SQL语句)的id相同

 

2.Mapper接口方法的输入参数类型和mapper.xml中定义的每个sql 的parameterType的类型相同

 

3Mapper接口方法的输出参数类型和mapper.xml中定义的每个sql的resultType的类型相同

 

4. Mapper.xml文件中的namespace与mapper接口的全路径名相同。(用来把用户的接口和用户的mapper文件对应好。仅靠ID可不行,也许用户和订单都有个相同ID的SQL)

 

 

 

二、mappers(映射器)

之前写过这个:

 

但是当有很多Mapper映射文件的时候岂不是要复制写很多遍?

 

Mapper配置的几种方法:

<mapper resource=" " />

使用相对于类路径的资源(现在的使用方式)

如:<mapper resource="sqlmap/User.xml" />

 

<package name=""/>

注册指定包下的所有mapper接口

如:<package name="cn.itcast.mybatis.mapper"/>

注意:此种方法要求mapper接口名称和mapper映射文件名称相同,且放在同一个目录中

 

三、查询多条数据

 

 

四、逆向工程

使用逆向工程可以轻易的全自动生成POJO和mapper映射文件和接口等,大大的提高了开发效率

 

把generatorSqlmapCustom这个工程Import进Eclipse。

 

这是个工程,要根据我们的具体要求修改

修改配置文件

在generatorConfig.xml中配置Mapper生成的详细信息,如下图:

注意修改以下几点:

  1. 修改要生成的数据库表(数据库,账号 密码 哪些表等)
  2. pojo文件所在包路径
  3. Mapper所在的包路径

 

 

-------------------------------正式去生成------------------------------------------------------------------------

找到里面src下的唯一的Java文件。运行

然后刷新工程,惊喜地发现如下:

 

生成mapper包,并且下面的映射文件和接口都写好了

Pojo也都正好了

 

最后提一下里面的XxxxExample.java文件的作用

 

// 创建User对象扩展类,用户设置查询条件

        UserExample example = new UserExample();

        example.createCriteria().andUsernameLike("%%");

 

        // 查询数据

        List<User> list = userMapper.selectByExample(example);

 

比如以上代码中example对象可以用来设置很多很多过滤条件 它有很多方法。

example用于添加条件,相当where后面的部分 
xxxExample example = new xxxExample(); 
Criteria criteria = new Example().createCriteria();

 

具体参考文章:MyBatis的Mapper接口以及Example的实例函数及详解(http://blog.csdn.net/biandous/article/details/65630783)

 

 

注意:

  1. 逆向工程生成的代码只能做单表查询
  2. 不能在生成的代码上进行扩展,因为如果数据库变更,需要重新使用逆向工程生成代码,原来编写的代码就被覆盖了。
  3. 一张表会生成4个文件

     

原创粉丝点击