mybatis 配置文件全解

目录


properties

settings

typeAliases

mappers

 


 

 

 

properties

  mybatis配置文件中,可以像代码一样定义变量,然后在配置文件的其他地方使用,比如数据库连接的相关配置:

<configuration>
	<properties>
		<property name="driver" value="com.mysql.jdbc.Driver"></property>
		<property name="url" value="jdbc:mysql://localhost:3306/mybatis"></property>
		<property name="username" value="root"></property>
		<property name="password" value="root"></property>
	</properties>
	<environments default="development">
		<environment id="development">
			<transactionManager type="JDBC"></transactionManager>
			<dataSource type="POOLED">
				<property name="driver" value="${driver}"></property>
				<property name="url" value="${url}"></property>
				<property name="username" value="${username}"></property>
				<property name="password" value="${password}"></property>
			</dataSource>
		</environment>
	</environments>
</configuration>

  

  当然,也可以使用properties标签加载外部配置文件,比如,创建src/conf/db.properties:

driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/mybatis
username=root
password=root

  在mybatis中引入外部配置文件:

<configuration>
	<properties resource="conf/db.properties"></properties>
	<environments default="development">
		<environment id="development">
			<transactionManager type="JDBC"></transactionManager>
			<dataSource type="POOLED">
				<property name="driver" value="${driver}"></property>
				<property name="url" value="${url}"></property>
				<property name="username" value="${username}"></property>
				<property name="password" value="${password}"></property>
			</dataSource>
		</environment>
	</environments>
</configuration>

  

  注意,加载外部配置文件的同时,也可以在在内部配置与配置文件中相同的属性,此时会覆盖外部配置文件的属性值。

 

 

settings

  settings标签可以用设置很多配置项,但是最常用的就是配置日志管理:

<settings>
	<setting name="logImpl" value="log4J"/>
</settings>

  

  其他的setting配置,可以参考mybatis官网给出的示例:

<settings>
	<setting name="cacheEnabled" value="true" />
	<setting name="lazyLoadingEnabled" value="true" />
	<setting name="multipleResultSetsEnabled" value="true" />
	<setting name="useColumnLabel" value="true" />
	<setting name="useGeneratedKeys" value="false" />
	<setting name="autoMappingBehavior" value="PARTIAL" />
	<setting name="defaultExecutorType" value="SIMPLE" />
	<setting name="defaultStatementTimeout" value="25" />
	<setting name="safeRowBoundsEnabled" value="false" />
	<setting name="mapUnderscoreToCamelCase" value="false" />
	<setting name="localCacheScope" value="SESSION" />
	<setting name="jdbcTypeForNull" value="OTHER" />
	<setting name="lazyLoadTriggerMethods" value="equals,clone,hashCode,toString" />
</settings>

  配置项虽然很多,但都见名知意。

 

 

typeAliases

  我们在创建mapper映射文件的时候,对于parameterType和resultType而言,如果是自定义的实体类,那么就需要写全路径,比如像下面这样:

  cn.ganlixin.mapper.PersonMapper.xml

<mapper namespace="cn.ganlixin.mapper.PersonMapper">
	<select id="selectOnePerson"
			parameterType="cn.ganlxin.pojo.Person"
			resultType="cn.ganlixin.pojo.Person">
		select * from person where id=#{id}
	</select>
</mapper>

  上面parameterType和resultType写全路径其实是很不方便的,此时可以在mybatis配置文件中使用typeAliases来配置别名:

<typeAliases>
	<typeAlias type="cn.ganlixin.pojo.Person" alias="person"/>
</typeAliases>

  之后cn.ganlixin.mapper.PersonMapper.xml中就可以这样写了:

<mapper namespace="cn.ganlixin.mapper.PersonMapper">
	<select id="selectOnePerson" parameterType="person" resultType="person">
		select * from person where id=#{id}
	</select>
</mapper>

  

  上面只是为cn.ganlixin.pojo.Person配置了别名,如果实体类很多,那么单独为每一个实体类配置别名,工作量就有点大了,此时可以为一个包下面的所有实体类配置别名,比如这里为cn.ganlixin.pojo包下的所有实体类都配置别名,别名就是单独的类名:

<typeAliases>
	<package name="cn.ganlixin.pojo"/>
</typeAliases>

  

 

mappers

  mappers的功能就是指定哪些位置的xml会被mybatis解析。

  可以有三种方式使用mappers:

  1、使用resource属性,每次指定一个mapper映射文件:

<mappers>
	<mapper resource="cn/ganlixin/mapper/PersonMapper.xml"></mapper>
	<mapper resource="cn/ganlixin/mapper/StudentMapper.xml"></mapper>
</mappers>

  

  2、使用url属性,每次也是指定一个mapper映射文件:

<mappers>
	<!-- windows中 -->
	<mapper url="file:///E:/mapper/PersonMapper.xml"/>
	
	<!-- linux中 -->
	<mapper url="file:///usr/mapper/PersonMapper.xml" />
</mappers>

  

  3、使用接口绑定式,可以用class属性,一次指定一个interface文件:

<mappers>
	<mapper class="cn.ganlxin.mapper.PersonMapper" />
</mappers>

  

  4、使用接口绑定时,可以用package属性,一次性指定一个包下面的所有interface文件:

<mappers>
	<package name="cn.ganlixin.mapper"/>
</mappers>

  

 

转载于:https://www.cnblogs.com/-beyond/p/10115302.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值