本文主要内容:Mybatis中的动态SQL语句、单表查询、多表查询
Mybatis中的动态SQL语句
####动态SQL(一):where与if标签的使用
- 首先我们在实体类中定义一个QueryVo
- 定义我们需要使用的查询方法(即Dao中的方法)
- 在UserDao.xml中完成sql语句的书写,这里有两种书写形式(不建议使用拼字符串where 1 = 1所以不做展示)
####动态SQL(二):foreach标签的使用
- 定义我们需要使用的查询方法
- 在UserDao.xml中完成sql语句的书写(注意foreach标签的参数)
单表查询
####单表查询(一):一对一单表查询
- 数据库外键展示(这里的外键为account表中uid关联user表中的id主键)
- 生成user实体类(注意这里的get和set方法因为空间原因没有写全)
- 生成account实体类(注意在account中需要添加user表的关系映射)
- AccountDao.xml中SQL语句的编写(我这是使用了AccountDao.xml因此需要在主要配置文件修改映射配置文件的位置)
单表查询(二): 一对多单表查询
- 数据库查询展示(即在查询user时获取user的账户信息)
- 生成user实体类(注意这里的get和set方法因为空间原因没有写全)(注意在user表需要添加account表的关系映射)
- 生成account实体类
- UserDao.xml中SQL语句的编写(我这是使用了UserDao.xml因此需要在主要配置文件修改映射配置文件的位置)
多表查询
- 多表查询所依赖数据库展示
- 生成user实体类(注意在user表需要添加role表的关系映射是为了获取user时获取role信息)
- 生成role实体类(注意在role表需要添加user表的关系映射是为了获取role时获取user信息)
- 在查询user时获取role信息的数据库展示
- 在查询user时获取role信息的sql语言展示(UserDao.xml)
- 在查询role信息时获取user的数据库展示
- 在查询role时获取user信息的sql语言展示(RoleDao.xml)
- 主配置文件的起别名标签与映射xml文件的标签
- 总结
1.在一对多,多对多的查询当中,我们需要在查询1的同时查询2,那么我们就需要在1的实体类中映射2的实体
2.不论在单表还是多表查询时,如果查询结果是单个对象,那么需要在中使用标签,就需要在同时查询列指明查询所依赖的外键列名,还需要通过标签指明查询所依赖的实体类,如果查询结果是对象的集合,那么需要在中使用标签,只需通过标签指明查询所依赖的实体类
3.当两张表有重复字段名时需要对其中的一张表进行起别名的操作,同时在起了别名时需要在和
4.如果实体类中属性名和数据库中字段名不相同,需要在和
5.如果在主配置文件中对实体类起了别名,那么在xml配置文件中就可以不使用全限定类名,而是使用别名(实体类类名大小写即可)