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
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>
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>
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>
--- 注释版本 ---
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>

浙公网安备 33010602011771号