更多精彩文章歡迎關注公眾號“Java之康庄大道”

dao接口
User myGetUserById(Integer id);
sql xml自定義封裝規則
<!--自定義某個javabean的封裝規則
type:自定義規則的java類型
id:唯一標識方便引用
-->
<resultMap id="myUser" type="com.yunqing.mybatis.bean.User"> <!--id指定主鍵列的封裝規則,return指定普通列的封裝規則 column:數據庫列名 property:對應的javabean屬性 --> <id column="id" property="id"/> <result column="name" property="name"/> <result column="age" property="age"/> </resultMap> <!--使用自定義封裝規則--> <select id="myGetUserById" resultMap="myUser"> SELECT * FROM t_user WHERE id = #{id} </select>
test測試類
@Test public void myGetUserById() throws IOException { String r = "mybatis-config.xml"; InputStream is = Resources.getResourceAsStream(r); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(is); SqlSession sqlSession = sqlSessionFactory.openSession(true); UserMapper userMapper = sqlSession.getMapper(UserMapper.class); User user = userMapper.myGetUserById(1); System.out.println(user); }
關於級聯映射結果集的規則:
javabean的User.java
private Integer id; private String name; private Integer age; private Department dep;//所屬部門
Department.java
private Integer id;//部門id
private String departmentName;//部門名
通過用戶id查詢用戶和部門信息
User getUserAndDepById(Integer id);
returnMap映射級聯結果集
第一種:
<!-- 自定義結果集,使用級聯屬性封裝第一種方式--> <resultMap id="myMapJiLian" type="com.yunqing.mybatis.bean.User"> <id column="id" property="id"/> <result column="name" property="name"/> <result column="age" property="age"/> <result column="did" property="dep.id"/> <result column="dep_name" property="dep.departmentName"/> </resultMap> <!--使用級聯屬性--> <select id="getUserAndDepById" resultMap="myMapJiLian"> SELECT u.id id,u.name name,u.age age,u.dep_id dep_id,dep.id did,dep.department dep_name FROM t_user u,t_dep dep WHERE u.dep_id=dep.id AND u.id=#{id} </select>
第二種
<!-- 自定義結果集第二種方式 association可以指定聯合javabean對象 property指定那個屬性是聯合的對象即外鍵 javaType不能省略,指定這個屬性對象的類型 --> <resultMap id="myMapAss" type="com.yunqing.mybatis.bean.User"> <id column="id" property="id"/> <result column="name" property="name"/> <result column="age" property="age"/> <association property="dep" javaType="com.yunqing.mybatis.bean.Department"> <id column="did" property="id"/> <result column="dep_name" property="departmentName"/> </association> </resultMap> <!--使用級聯屬性--> <select id="getUserAndDepById" resultMap="myMapAss"> SELECT u.id id,u.name name,u.age age,u.dep_id dep_id,dep.id did,dep.department dep_name FROM t_user u,t_dep dep WHERE u.dep_id=dep.id AND u.id=#{id} </select>
