Mybatis最佳实践-01

JDBC外部配置文件:jdbcConfig.xml

1 jdbc.driver=com.mysql.jdbc.Driver
2 jdbc.url=jdbc:mysql://localhost:3306/eesy_mybatis
3 jdbc.username=root
4 jdbc.password=root
jdbcConfig.xml


SqlMapConfig.xml---Mybatis主配置文件

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <!DOCTYPE configuration
 3         PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
 4         "http://mybatis.org/dtd/mybatis-3-config.dtd">
 5 <configuration>
 6     <!-- 配置properties-->
 7     <properties resource="jdbcConfig.properties"></properties>
 8 
 9     <settings>
10         <setting name="cacheEnabled" value="true"/>
11     </settings>
12     
13     <!--使用typeAliases配置别名,它只能配置domain中类的别名 -->
14     <typeAliases>
15         <package name="com.itheima.domain"></package>
16     </typeAliases>
17 
18     <!--配置环境-->
19     <environments default="mysql">
20         <!-- 配置mysql的环境-->
21         <environment id="mysql">
22             <!-- 配置事务 -->
23             <transactionManager type="JDBC"></transactionManager>
24 
25             <!--配置连接池-->
26             <dataSource type="POOLED">
27                 <property name="driver" value="${jdbc.driver}"></property>
28                 <property name="url" value="${jdbc.url}"></property>
29                 <property name="username" value="${jdbc.username}"></property>
30                 <property name="password" value="${jdbc.password}"></property>
31             </dataSource>
32         </environment>
33     </environments>
34     <!-- 配置映射文件的位置 -->
35     <mappers>
36         <package name="com.itheima.dao"></package>
37     </mappers>
38 </configuration>
SqlMapConfig.xml


xxxDao.xml---映射配置文件

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <!DOCTYPE mapper
 3         PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 4         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 5 
 6 <mapper namespace="com.itheima.dao.IUserDao">
 7   
 8   <!--开启二级缓存的支持-->
 9   <cache></cache>
10   
11   <resultMap id="userMap" type="user">
12     <id column="id" property="id"></id>
13     <result column="username" property="username"></result>
14     <result column="address" property="address"></result>
15     <result column="sex" property="sex"></result>
16     <result column="birthday" property="birthday"></result>
17     <collection property="accounts" ofType="account" column="id"
18         select="com.itheima.dao.IAccountDao.findAccountByUid">
19     </collection>
20   </resultMap>
21   
22   <!--查询所有-->
23   <select id="findAll" resultType="user">
24     SELECT * FROM user;
25   </select>
26 
27 <!--根据id查询用户-->
28   <select id="findById" parameterType="int" resultType="user" useCache="true">
29     SELECT * FROM user WHERE id = #{id};
30   </select>
31   
32   <update id="updateUser" parameterType="user" >
33     UPDATE user set username=#{username},birthday=#{birthday},sex=#{sex},address=#{address} WHERE id=#{id}
34   </update>
35   
36 </mapper>
IUserDao.xml
 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <!DOCTYPE mapper
 3         PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 4         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 5 
 6 <mapper namespace="com.itheima.dao.IAccountDao">
 7 
 8   <!--
 9   <association property="user" column="uid" javaType="user">
10       <id column="id" property="id"></id>
11       <result column="username" property="username"></result>
12       <result column="sex" property="sex"></result>
13       <result column="birthday" property="birthday"></result>
14       <result column="address" property="address"></result>
15     </association>
16   -->
17   
18   <!--建立对应的关系-->
19   <resultMap id="accountMap" type="account">
20     <id column="id" property="id"></id>
21     <result column="uid" property="uid"></result>
22     <result column="money" property="money"></result>
23     <!--它是用于指定从表方的引用实体属性的-->
24     <association property="user" column="uid" javaType="user"
25                  select="com.itheima.dao.IUserDao.findById">
26     </association>
27   </resultMap>
28   
29   <!--查询所有-->
30   <select id="findAll" resultMap="accountMap">
31     SELECT * FROM  account;
32    </select>
33    
34   <!--根据用户id查询账户列表-->
35   <select id="findAccountByUid" 
36           parameterType="int" resultType="account">
37     SELECT * FROM account WHERE uid=#{uid};
38   </select>
39   
40  </mapper>
IAccountDao.xml

 




--- 注释版本 ---

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <!DOCTYPE configuration
 3         PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
 4         "http://mybatis.org/dtd/mybatis-3-config.dtd">
 5 <!-- mybatis的主配置文件 -->
 6 <configuration>
 7     
 8     <properties resource="jdbcConfig.properties">
 9       <!--  <property name="driver" value="com.mysql.jdbc.Driver"/>
10         <property name="url" value="jdbc:mysql://localhost:3306/eesy_mybatis"/>
11         <property name="username" value="root"/>
12         <property name="password" value="root"/>-->
13     </properties>
14     
15     <!--配置参数-->
16     <settings>
17         <!--开启Mybatis支持延迟加载-->
18         <setting name="lazyLoadingEnabled" value="true"/>
19         <setting name="aggressiveLazyLoading" value="false"></setting>
20         
21         <!--开启二级缓存的支持-->
22         <!--因为 cacheEnabled 的取值默认就为 true,所以这一步可以省略不配置。为 true 代表开启二级缓存;为 false 代表不开启二级缓存-->
23         <setting name="cacheEnabled" value="true"></setting>
24     </settings>
25     
26     <typeAliases>
27         <package name="com.itheima.domain"/>
28     </typeAliases>
29     
30     <!-- 配置环境 -->
31     <environments default="mysql">
32         <!-- 配置mysql的环境-->
33         <environment id="mysql">
34             <!-- 配置事务的类型-->
35             <transactionManager type="JDBC"></transactionManager>
36             <!-- 配置数据源(连接池) -->
37             <dataSource type="POOLED">
38                 <!-- 配置连接数据库的4个基本信息 -->
39                 <property name="driver" value="${jdbc.driver}"/>
40                 <property name="url" value="${jdbc.url}"/>
41                 <property name="username" value="${jdbc.username}"/>
42                 <property name="password" value="${jdbc.password}"/>
43             </dataSource>
44         </environment>
45     </environments>
46 
47     <!-- 指定映射配置文件的位置,映射配置文件指的是每个dao独立的配置文件 -->
48     <mappers>
49         <!--<mapper resource="com/itheima/dao/IUserDao.xml"/>-->
50        <!-- package标签是用于指定dao接口所在的包,当指定了之后就不需要在写mapper以及resource或者class了 -->
51         <package name="com.itheima.dao"></package>
52     </mappers>
53 </configuration>
View Code

 



posted @ 2018-12-30 17:22  payn  阅读(168)  评论(0)    收藏  举报