Mybatis中常见的配置文件含义
-
核心配置文件configuration,这是mybatis的核心配置文件,在这之中配置你需要配置的东西
-
settings,这是mybatis的全局配置参数,会影响mybatis的运行行为常用的设置如下:
<settings> <!--指定mybatis的日志实现和使用,常用的有如下俩--> <setting name="logImpl" value="STDOUT_LOGGING"/> <setting name="logImpl" value="LOG4J"/> <!--驼峰自动转换,把数据库的字段映射为驼峰式的字段--> <setting name="mapUnderscoreToCamelCase" value="true"/> <!--在全局范围内启用或禁用缓存--> <setting name="cacheEnabled" value="true"/> </settings>
-
然后是typeAliases作用是给类起别名,比如你在mapper.xml中写了SQL语句返回值是一个pojo对象,平常都是写类的全类名,用了这个后就可以直接写类名的小写,比如
<!--可以给实体类起别名--> <typeAliases> <typeAlias type="com.liu.pojo.User" alias="user"/> </typeAliases>
然后还有可以指定到一个包名下,mybatis会在包名下搜索到需要的Javabean,默认别名是类名的小写
<!--可以给实体类起别名--> <typeAliases> <package name="com.liu.pojo"/> </typeAliases>
还有一种是注解的方式比如
@Alias("hello") public class User {}
这种方式,也需要在typeAliases中配置第二步,只是别名可以用这个hello
-
typeHanders,是把数据库与pojo对象字段对应的,比如varchar和string对应
-
然后是environments,环境配置,mybatis可以配置多套环境,但是每个SQLSessionFactory实例只能选择一种环境
<environments default="development"> <environment id="development"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property name="driver" value="${driver}"/> <property name="url" value="${url}"/> <property name="username" value="${username}"/> <property name="password" value="${password}"/> </dataSource> </environment> </environments>
其中,多套环境中,默认使用的是default=“xxx”,如果需要用哪套设置在这里就行了,这个地方也不多讲了,就是数据库的一些基础配置mybatis默认的事物管理器是JDBC,连接池是POOLED,这里提一点:#{}与$()
- #是防止sql注入的作用,相当于占位符
- $是sql拼接,不防止SQL注入的
- 如果参数是简单数据类型,#{任何值},${value}(必须这么写)
- 在SQL语句中不能做SQL参数的内容,是不能使用#的,只能使用 , 比 如 : a s c / d e s c ; t a b l e n a m e ( 表 名 ) , 字 段 名 , 比 如 S Q L 中 o r d e r b y 就 只 能 用 ,比如:asc/desc;tablename(表名),字段名,比如SQL中order by就只能用 ,比如:asc/desc;tablename(表名),字段名,比如SQL中orderby就只能用(),#{}无法实现这个功能
-
最后是mappers,映射器,MapperRegistry:注册绑定我们 mapper文件;
方式一(优先使用)
<!--,每一个Mapper都需要在mybatis核心配置文件中注册--> <mappers> <mapper resource="com/liu/dao/UserMapper.xml"/> </mappers>
方式二:使用class文件绑定注册
<!--,每一个Mapper都需要在mybatis核心配置文件中注册--> <mappers> <mapper class="com.liu.dao.UserMapper"/> </mappers>
注意点:
- 接口和他的Mapper配置文件必须同名!
- 接口和他的Mapper配置文件必须在同一包下!
方式三:使用扫描包进行注册绑定
<!--,每一个Mapper都需要在mybatis核心配置文件中注册--> <mappers> <package name = "com.liu.dao"/> </mappers>
注意点:
- 接口和他的Mapper配置文件必须同名!
- 接口和他的Mapper配置文件必须在同一包下!