1 配置内容
-
properties(属性)
-
settings(全局配置参数)
-
typeAliases(类型别名)
-
typeHandlers(类型处理器)
-
objectFactory(对象工厂)
-
plugins(插件)
-
environments(环境集合属性对象)
-
environment(环境子属性对象)
-
transactionManager(事务管理)
-
dataSource(数据源)
-
mappers(映射器)
2 properties(属性)
SqlMapConfig.xml可以引用java属性文件中的配置信息如下:
db.properties
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/mybatis
jdbc.username=root
jdbc.password=root
SqlMapConfig.xml
<configuration>
<properties resource="db.properties"/>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="${jdbc.driver}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</dataSource>
</environment>
</environments>
注意:MyBatis将按照下面的顺序来加载属性
-
在properties元素体内定义的属性首先被读取
-
然后会读取properties元素中resource或url加载的属性,它会覆盖已读的同名属性
-
最后读取parameterType传递的属性具有最高优先级,resource或url加载的属性次之,最低优先级的是properties元素体内定义的属性。
3 setting(配置)
mybatis全局配置参数,全局参数将会影响mybatis的运行行为。
详细参见“学习资料/mybatis-settings.xlsx”文件
4 typeAliases (类型别名)
自定义别名
<!-- 配置别名 -->
<typeAliases>
<!-- 单个别名 -->
<!-- <typeAlias alias="user" type="net920vip.bean.UserBean" />-->
<!-- 批量别名 别名:类名(首字母大小写均可) -->
<package name="net920vip.bean"/>
</typeAliases>
案例:
<!-- 根据id查询user -->
<select id="findUserById" parameterType="int" resultType="UserBean">
select * from user where id = #{id}
</select>
<!-- 根据用户名模糊查询 -->
<select id="findUserByUsername" parameterType="java.lang.String" resultType="net920vip.bean.UserBean">
select * from user where username like '%${value}%'
</select>
在 根据id查询user中,resultType参数直接写userBean
即可,这里是批量别名起作用
<h2><a id="1__0"></a>1 配置内容</h2>
<ul>
<li>
<p>properties(属性)</p>
</li>
<li>
<p>settings(全局配置参数)</p>
</li>
<li>
<p>typeAliases(类型别名)</p>
</li>
<li>
<p>typeHandlers(类型处理器)</p>
</li>
<li>
<p>objectFactory(对象工厂)</p>
</li>
<li>
<p>plugins(插件)</p>
</li>
<li>
<p>environments(环境集合属性对象)</p>
</li>
<li>
<p>environment(环境子属性对象)</p>
</li>
<li>
<p>transactionManager(事务管理)</p>
</li>
<li>
<p>dataSource(数据源)</p>
</li>
<li>
<p>mappers(映射器)</p>
</li>
</ul>
<h2><a id="2_properties_24"></a>2 properties(属性)</h2>
<p>SqlMapConfig.xml可以引用java属性文件中的配置信息如下:</p>
<ul>
<li>
<p>eclipse:classpath目录->db.properties</p>
</li>
<li>
<p>idea:resources目录->db.properties</p>
</li>
</ul>
<p><code>db.properties</code></p>
<pre><code class="lang-">jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/mybatis
jdbc.username=root
jdbc.password=root
</code></pre>
<p><code>SqlMapConfig.xml</code></p>
<pre><div class="hljs"><code class="lang-xml"><span class="hljs-tag"><<span class="hljs-name">configuration</span>></span>
<span class="hljs-tag"><<span class="hljs-name">properties</span> <span class="hljs-attr">resource</span>=<span class="hljs-string">"db.properties"</span>/></span>
<span class="hljs-comment"><!-- 配置别名 --></span>
<span class="hljs-comment"><!-- 和spring整合后 environments配置将废除--></span>
<span class="hljs-tag"><<span class="hljs-name">environments</span> <span class="hljs-attr">default</span>=<span class="hljs-string">"development"</span>></span>
<span class="hljs-tag"><<span class="hljs-name">environment</span> <span class="hljs-attr">id</span>=<span class="hljs-string">"development"</span>></span>
<span class="hljs-comment"><!-- 使用jdbc事务管理--></span>
<span class="hljs-tag"><<span class="hljs-name">transactionManager</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"JDBC"</span>/></span>
<span class="hljs-comment"><!-- 数据库连接池--></span>
<span class="hljs-tag"><<span class="hljs-name">dataSource</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"POOLED"</span>></span>
<span class="hljs-tag"><<span class="hljs-name">property</span> <span class="hljs-attr">name</span>=<span class="hljs-string">"driver"</span> <span class="hljs-attr">value</span>=<span class="hljs-string">"${jdbc.driver}"</span>/></span>
<span class="hljs-tag"><<span class="hljs-name">property</span> <span class="hljs-attr">name</span>=<span class="hljs-string">"url"</span> <span class="hljs-attr">value</span>=<span class="hljs-string">"${jdbc.url}"</span>/></span>
<span class="hljs-tag"><<span class="hljs-name">property</span> <span class="hljs-attr">name</span>=<span class="hljs-string">"username"</span> <span class="hljs-attr">value</span>=<span class="hljs-string">"${jdbc.username}"</span>/></span>
<span class="hljs-tag"><<span class="hljs-name">property</span> <span class="hljs-attr">name</span>=<span class="hljs-string">"password"</span> <span class="hljs-attr">value</span>=<span class="hljs-string">"${jdbc.password}"</span>/></span>
<span class="hljs-tag"></<span class="hljs-name">dataSource</span>></span>
<span class="hljs-tag"></<span class="hljs-name">environment</span>></span>
<span class="hljs-tag"></<span class="hljs-name">environments</span>></span>
</code></div></pre>
<p>注意:MyBatis将按照下面的顺序来加载属性</p>
<ul>
<li>
<p>在properties元素体内定义的属性首先被读取</p>
</li>
<li>
<p>然后会读取properties元素中resource或url加载的属性,它会覆盖已读的同名属性</p>
</li>
<li>
<p>最后读取parameterType传递的属性具有最高优先级,resource或url加载的属性次之,最低优先级的是properties元素体内定义的属性。</p>
</li>
</ul>
<h2><a id="3_setting_70"></a>3 setting(配置)</h2>
<p>mybatis全局配置参数,全局参数将会影响mybatis的运行行为。</p>
<p>详细参见“学习资料/mybatis-settings.xlsx”文件</p>
<h2><a id="4_typeAliases__76"></a>4 typeAliases (类型别名)</h2>
<p>自定义别名</p>
<pre><code class="lang-"><!-- 配置别名 -->
<typeAliases>
<!-- 单个别名 -->
<!-- <typeAlias alias="user" type="net920vip.bean.UserBean" />-->
<!-- 批量别名 别名:类名(首字母大小写均可) -->
<package name="net920vip.bean"/>
</typeAliases>
</code></pre>
<p>案例:</p>
<pre><code class="lang-"><!-- 根据id查询user -->
<select id="findUserById" parameterType="int" resultType="UserBean">
select * from user where id = #{id}
</select>
<!-- 根据用户名模糊查询 -->
<select id="findUserByUsername" parameterType="java.lang.String" resultType="net920vip.bean.UserBean">
select * from user where username like '%${value}%'
</select>
</code></pre>
<p>在 根据id查询user中,resultType参数直接写<code>userBean</code>即可,这里是批量别名起作用</p>
留言