mybatis 使用resultMap实现数据库的操作
生活随笔
收集整理的這篇文章主要介紹了
mybatis 使用resultMap实现数据库的操作
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
resultType:直接表示返回類型
resultMap:對外部resultMap的引用
二者不能同時使用
創建一個實體類Role和User
public class Role {private Integer id;private String roleCode;private String roleName;//省略set、get方法
創建User類(在User中有roleId?? 1對多關系)
public class User {private Integer id;private String userName;private String userCode;private String userPassword;private Integer roleId;private String roleName;
//省略set、get方法
創建RoleMapper接口
public interface RoleMapper {public void add(Role role);public void update(Role role);public void delete(Role role);public List<Role> getRoleList();}
創建UserMapper接口
//接口的名字和xml的名字一樣,這樣xml中的namespace就不用改 public interface UserMapper {//接口名的方法名一定要和xml中的id名一樣public int count();public void add(User user);public void update(User user);public void delete(User user);public List<User> getUserList();//根據roleid獲取用戶列表public List<User> getUserByRoleId(Role role); }
?
創建RoleMapper.xml
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="cn.bdqn.dao.RoleMapper"><select id="getRoleList" resultType="Role">select * from role</select><insert id="add" parameterType="Role">insert into role (roleCode,roleName) values (#{roleCode},#{roleName})</insert><update id="update" parameterType="Role">update role set roleCode=#{roleCode},roleName=#{roleName} where id=#{id}</update><delete id="delete" parameterType="Role">delete from role where id=#{id}</delete> </mapper>
?
創建UserMapper.xml
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!-- 如果我要調用mapper文件,就去拿到namespace+id(方法名)的名字就可以訪問 --> <mapper namespace="cn.bdqn.dao.UserMapper"><!-- id要唯一的,一般是下拉類的方法名 --><!-- 返回的是什么類型int --><select id="count" resultType="int">select count(1) from user</select><!-- 增加 --><insert id="add" parameterType="User">insert into user(userCode,userName,userPassword)values (#{userCode},#{userName},#{userPassword})</insert><!-- 修改 --><update id="update" parameterType="User">update user set userCode=#{userCode},userName=#{userName},userPassword=#{userPassword} where id=#{id}</update><!-- 刪除 --><delete id="delete" parameterType="User">delete from user where id=#{id}</delete><!-- 查詢 --><select id="getUserList" resultType="User">select * from user</select> </mapper>
加入這個方法用resultMap
<!-- resultMap中的id隨便取,但要保證id唯一就行 --><!-- type指的是后臺的javabean的類名 映射到哪里 --><resultMap type="User" id="userMap"><!-- 顯示的字段 --><result property="id" column="id"/><result property="userCode" column="userCode"/><result property="userName" column="userName"/><result property="roleName" column="roleName"/></resultMap><!-- 拿roleID --><select id="getUserByRoleId" parameterType="User" resultMap="userMap">select u.*,r.roleName as roleName from user u,role r where u.roleId = r.id and u.roleId=#{id}</select>
?
在mybatis-config.xml中添加<mapper resource="cn/bdqn/dao/RoleMapper.xml"/>
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"><!-- 通過這個配置文件完成mybatis與數據庫的連接 --> <configuration><!-- 引入 jdbc.properties 文件--><properties resource="jdbc.properties"/><!-- alias別名 --><!-- 配置mybatis的log實現LOG4J --> <settings><setting name="logImpl" value="LOG4J" /> </settings><typeAliases><!-- <typeAlias type="cn.bdqn.pojo.User" alias="User"/> --><!-- 用這個比較方便,不用一個一個寫。包下的就是他的類名 --><package name="cn.bdqn.pojo"/></typeAliases><environments default="development"><environment id="development"><!--配置事務管理,采用JDBC的事務管理 --><transactionManager type="JDBC"></transactionManager><!-- POOLED:mybatis自帶的數據源,JNDI:基于tomcat的數據源 --><dataSource type="POOLED"><property name="driver" value="${driver}"/><property name="url" value="${url}"/><property name="username" value="${username}"/><property name="password" value="${password}"/></dataSource></environment></environments><!-- 將mapper文件加入到配置文件中 將來mapper文件很多所以是mappers --><mappers><mapper resource="cn/bdqn/dao/UserMapper.xml"/><mapper resource="cn/bdqn/dao/RoleMapper.xml"/></mappers> </configuration>
測試
//查詢 @Testpublic void getUserListTest(){SqlSession sqlSession = null;try {List<User> userList = new ArrayList<User>();sqlSession = MyBatisUtil.createSqlSession();userList = sqlSession.selectList("cn.bdqn.dao.UserMapper.getUserList");for(User user:userList){logger.debug("user的id==="+user.getId());}} catch (Exception e) {// TODO: handle exception e.printStackTrace();sqlSession.rollback();}finally{MyBatisUtil.closeSqlSession(sqlSession);}}
?
轉載于:https://www.cnblogs.com/xuerong/p/4959539.html
總結
以上是生活随笔為你收集整理的mybatis 使用resultMap实现数据库的操作的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 请推荐一些好看的科幻片
- 下一篇: (原创)c#学习笔记10--定义类成员0