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生成的详细信息,如下图:
注意修改以下几点:
- 修改要生成的数据库表(数据库,账号 密码 哪些表等)
- pojo文件所在包路径
- 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)
注意:
- 逆向工程生成的代码只能做单表查询
- 不能在生成的代码上进行扩展,因为如果数据库变更,需要重新使用逆向工程生成代码,原来编写的代码就被覆盖了。
- 一张表会生成4个文件
- Mybatis入门简版(二)
- MyBatis入门(二)
- mybatis-入门(二)
- MyBatis入门(二)
- myBatis入门(二)-mybatis工作流程
- 【MyBatis】mybatis快速入门(二)
- Mybatis入门实例(二)
- mybatis入门系列(二)
- mybatis入门实例(二)
- Mybatis入门学习(二)
- mybatis 入门到精通(二)
- MyBatis入门(二)-一对一,一对多
- springboot入门(二)初步集成mybatis
- MyBatis学习笔记(二)快速入门
- Mybatis入门篇(二)-模糊查询
- Mybatis入门级教程(二)
- mybatis入门(二)配置XML
- MyBatis (二) 入门程序
- 图像分割(一)轮廓提取
- 搭建自己的MVP框架
- ubuntu 配置samba
- JavaScript
- 我的第一篇
- Mybatis入门简版(二)
- 晶振不集成到IC内部,为什么?
- 5.1,从键盘任意输入一个实数,不使用计算绝对值函数编程计算并输出该实数的绝对值。
- 开发者们,2017年你们过得好吗?
- 企业级服务器应用、RAID、Cache和Buffer的区别、程序、进程、守护进程的区别
- Java中的常见异常
- web前端开发的各种坐标系,尺寸
- 【《Real-Time Rendering 3rd》 提炼总结】(十一) 第十四章 : 游戏开发中的渲染加速算法总结
- Java基础知识04-面向对象