核心配置文件:
properties标签
properties标签可以通过resource属性指定外部properties文件
写一个外部文件 一个key值对应一个values值
通过resource属性指定外部properties文件,读取配置文件
setting标签
使用log4j打印日志信息
打印的日志信息
typeAliases标签
加载指定包中所有的类,给类默认起别名为类的名字但首字母小写
environments标签
在 environments标签中,可以配置Mybatis的多套运行环境,将SQL映射到多个不同的数据库上
environment是environments的子标签,用来配置myBaties的一套运行环境,需指定运行环境的id,事务管理,数据源配置等相关信息。
可以通过配置多个environment标签来连接多个数据库,需要注意的是必须指定其中一个为默认运行环境(通过default指定)
dataSource标签
用于配置数据库的连接属性,例如要连接的数据库的驱动程序名称 ,url,用户名和密码,数据库默认的type设置为pooled,表示使用连接池
mybatis的动态sql语句
mybatis的动态SQL包括以下几种元素
元素 | 作用 | 备注 |
if | 判断语句 | 单条件分支判断 |
choose(when、otherwise) | 相当于Java中的switch case语句 | 多条件分支判断 |
trim、where | 辅助元素 | 用于处理一些SQL拼接问题 |
foreach | 循环语句 | 在in语句等列举条件常用 |
set | 辅助元素 | 更新判断 |
if标签
if类似于Java中的if语句,是Mybatis中最常用的判断语句
if语句常常与test属性联合使用。语法如下:
<if test="判断条件">
SQL语句
</if>
当判断条件为true时才会执行所包含的SQL语句,最常见的if语句中包含where子句,例如:
使用动态前需要根据不同的情况大量手动拼接SQL语句
动态SQL更能体现Mybatis的灵活性,高度可配置和可维护性
set标签:
与where有相似,其后如果存在条件,则拼接set。<set>标签会动态地在行首插入SET关键字,并且自动帮我们去掉多余的逗号,适用于update,示例:
foreach标签:
对于一些SQL语句中含有in 条件,需要迭代条件集合来生成的情况,可以使用foreach 来实现 SQL条件的迭代
foreach标签用于循环语句,它很好的支持了数据和List set 接口的集合,并对此提供遍历的功能。语法格式如下:
- item:表示集合中每一个元素进行选代时的别名。
- index:指定一个名字,表示在迭代过程中每次迭代到的位置
- open:表示该语句以什么开始( 既然是in条件语句,所以必然以 ( 开始 )。
- close:表示该语句以什么结束( 既然是in条件语句,所以必然以 ) 开始 )。
- separator:表示在每次进行迭代之间以什么符号作为分隔符(既然是n 条件语句,所以必然以 ,作为分隔符)
用法:根据id进行批量删除
要删除的id:
public void testdelBeach(){
List<Integer> ids=new ArrayList<>();
ids.add(1);
ids.add(2);
ids.add(5);
ids.add(7);
DelVO delVO=new DelVO();
delVO.setIds(ids);
userDao.delBatch(delVO);
}