本篇文章給大家分享的是有關(guān)Mybatis_day03中怎么輸入和輸出映射,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
為三門等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及三門網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為成都網(wǎng)站制作、成都做網(wǎng)站、三門網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!
輸入映射和輸出映射
Mapper.xml映射文件中定義了操作數(shù)據(jù)庫的sql,每個sql是一個statement,映射文件是mybatis的核心。
1.parameterType(輸入類型)
傳遞簡單類型
參考第一天內(nèi)容。
傳遞pojo對象
Mybatis使用ognl表達式解析對象字段的值,#{}或者${}括號中的值為pojo屬性名稱。
傳遞pojo包裝對象
開發(fā)中通過pojo傳遞查詢條件,查詢條件是綜合的查詢條件,不僅包括用戶查詢條件還包括其它的查詢條件(比如將用戶購買商品信息也作為查詢條件),這時可以使用包裝對象傳遞輸入?yún)?shù)。
Pojo類中包含pojo。
需求:根據(jù)用戶名查詢用戶信息,查詢條件放到QueryVo的user屬性中。
public class QueryVo { private User user; public User getUser() { return user; } public void setUser(User user) this.user = user;* } }
Sql語句
SELECT * FROM user where username like '%劉%'
Mapper文件
接口 public interface UserMapper { User findUserByid(Integer id); ListfindUserByUserName(String name); List findUserByUserNameAndSex(String name,String sex); Integer insertUser(User user); Integer deleteByUserId(Integer id); Integer updateUserById(User user); List QueryVoByUserList(QueryVo queryVo); } 測試方法 @Test public void testFindUserByQueryVo() throws Exception { SqlSession sqlSession = sessionFactory.openSession(); //獲得mapper的代理對象 UserMapper userMapper = sqlSession.getMapper(UserMapper.class); //創(chuàng)建QueryVo對象 QueryVo queryVo = new QueryVo(); //創(chuàng)建user對象 User user = new User(); user.setUsername("劉"); queryVo.setUser(user); //根據(jù)queryvo查詢用戶 List list = userMapper.findUserByQueryVo(queryVo); System.out.println(list); sqlSession.close(); }
1.resultType(輸出類型)
輸出簡單類型
參考getnow輸出日期類型,看下邊的例子輸出整型:
Mapper.xml文件
Mapper接口 public int findUserCount() throws Exception; 調(diào)用: Public void testFindUserCount() throws Exception{ //獲取session SqlSession session = sqlSessionFactory.openSession(); //獲取mapper接口實例 UserMapper userMapper = session.getMapper(UserMapper.class); //傳遞Hashmap對象查詢用戶列表 int count = userMapper.findUserCount(); //關(guān)閉session session.close(); }
輸出簡單類型必須查詢出來的結(jié)果集有一條記錄,最終將第一個字段的值轉(zhuǎn)換為輸出類型。
使用session的selectOne可查詢單條記錄。
輸出pojo對象
參考第一天內(nèi)容
輸出pojo列表
參考第一天內(nèi)容。
resultMap
resultType可以指定pojo將查詢結(jié)果映射為pojo,但需要pojo的屬性名和sql查詢的列名一致方可映射成功。
如果sql查詢字段名和pojo的屬性名不一致,可以通過resultMap將字段名和屬性名作一個對應(yīng)關(guān)系,resultMap實質(zhì)上還需要將查詢結(jié)果映射到pojo對象中。
resultMap可以實現(xiàn)將查詢結(jié)果映射為復雜類型的pojo,比如在查詢結(jié)果映射對象中包括pojo和list實現(xiàn)一對一查詢和一對多查詢。
Mapper.xml定義
使用resultMap指定上邊定義的personmap。
定義resultMap
由于上邊的mapper.xml中sql查詢列和Users.java類屬性不一致,需要定義resultMap:userListResultMap將sql查詢列和Users.java類屬性對應(yīng)起來
Property:表示User類的屬性。
Column:表示sql查詢出來的字段名。
Column和property放在一塊兒表示將sql查詢出來的字段映射到指定的pojo類屬性上。
Mapper接口定義
public ListfindUserListResultMap() throws Exception;
以上就是Mybatis_day03中怎么輸入和輸出映射,小編相信有部分知識點可能是我們?nèi)粘9ぷ鲿姷交蛴玫降?。希望你能通過這篇文章學到更多知識。更多詳情敬請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。