久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

Mybatis

132次閱讀
沒有評論

共計 2816 個字符,預計需要花費 8 分鐘才能閱讀完成。

本篇文章給大家分享的是有關 Mybatis_day03 中怎么輸入和輸出映射,丸趣 TV 小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著丸趣 TV 小編一起來看看吧。

輸入映射和輸出映射

Mapper.xml 映射文件中定義了操作數據庫的 sql,每個 sql 是一個 statement,映射文件是 mybatis 的核心。

1.parameterType(輸入類型)

傳遞簡單類型

參考第一天內容。

傳遞 pojo 對象

Mybatis 使用 ognl 表達式解析對象字段的值,#{} 或者 ${} 括號中的值為 pojo 屬性名稱。

傳遞 pojo 包裝對象

開發中通過 pojo 傳遞查詢條件,查詢條件是綜合的查詢條件,不僅包括用戶查詢條件還包括其它的查詢條件 (比如將用戶購買商品信息也作為查詢條件),這時可以使用包裝對象傳遞輸入參數。

Pojo 類中包含 pojo。

需求:根據用戶名查詢用戶信息,查詢條件放到 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 文件

!--  使用包裝類型查詢用戶   使用 ognl 從對象中取屬性值,如果是包裝對象可以使用. 操作符來取內容部的屬性  --   select id= findUserByQueryVo  parameterType= queryvo  resultType= user  SELECT * FROM user where username like  %${user.username}%   /select   接口  public interface UserMapper { User findUserByid(Integer id); List User  findUserByUserName(String name); List User  findUserByUserNameAndSex(String name,String sex); Integer insertUser(User user); Integer deleteByUserId(Integer id); Integer updateUserById(User user); List User  QueryVoByUserList(QueryVo queryVo); }  測試方法  @Test public void testFindUserByQueryVo() throws Exception { SqlSession sqlSession = sessionFactory.openSession(); // 獲得 mapper 的代理對象  UserMapper userMapper = sqlSession.getMapper(UserMapper.class); // 創建 QueryVo 對象  QueryVo queryVo = new QueryVo(); // 創建 user 對象  User user = new User(); user.setUsername(劉  queryVo.setUser(user); // 根據 queryvo 查詢用戶  List User  list = userMapper.findUserByQueryVo(queryVo); System.out.println(list); sqlSession.close(); }

1.resultType(輸出類型)

輸出簡單類型

參考 getnow 輸出日期類型,看下邊的例子輸出整型:

Mapper.xml 文件

!--  獲取用戶列表總數  --   select id= findUserCount  resultType= int  select count(1) from user  /select  Mapper 接口  public int findUserCount() throws Exception;  調用: Public void testFindUserCount() throws Exception{ // 獲取 session SqlSession session = sqlSessionFactory.openSession(); // 獲取 mapper 接口實例  UserMapper userMapper = session.getMapper(UserMapper.class); // 傳遞 Hashmap 對象查詢用戶列表  int count = userMapper.findUserCount(); // 關閉 session session.close(); }

輸出簡單類型必須查詢出來的結果集有一條記錄,最終將第一個字段的值轉換為輸出類型。

使用 session 的 selectOne 可查詢單條記錄。

輸出 pojo 對象

參考第一天內容

輸出 pojo 列表

參考第一天內容。

resultMap

resultType 可以指定 pojo 將查詢結果映射為 pojo,但需要 pojo 的屬性名和 sql 查詢的列名一致方可映射成功。

如果 sql 查詢字段名和 pojo 的屬性名不一致,可以通過 resultMap 將字段名和屬性名作一個對應關系,resultMap 實質上還需要將查詢結果映射到 pojo 對象中。

resultMap 可以實現將查詢結果映射為復雜類型的 pojo,比如在查詢結果映射對象中包括 pojo 和 list 實現一對一查詢和一對多查詢。

Mapper.xml 定義

使用 resultMap 指定上邊定義的 personmap。

定義 resultMap

由于上邊的 mapper.xml 中 sql 查詢列和 Users.java 類屬性不一致,需要定義 resultMap:userListResultMap 將 sql 查詢列和 Users.java 類屬性對應起來

id/:此屬性表示查詢結果集的唯一標識,非常重要。如果是多個字段為復合唯一約束則定義多個。

Property:表示 User 類的屬性。

Column:表示 sql 查詢出來的字段名。

Column 和 property 放在一塊兒表示將 sql 查詢出來的字段映射到指定的 pojo 類屬性上。

result /:普通結果,即 pojo 的屬性。

Mapper 接口定義

public List User  findUserListResultMap() throws Exception;

以上就是 Mybatis_day03 中怎么輸入和輸出映射,丸趣 TV 小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注丸趣 TV 行業資訊頻道。

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-08-03發表,共計2816字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 万山特区| 扶沟县| 台北市| 台州市| 南京市| 香格里拉县| 五指山市| 弋阳县| 长岭县| 盐源县| 松阳县| 西畴县| 海原县| 平舆县| 上蔡县| 瑞丽市| 石门县| 云南省| 临沧市| 龙山县| 博湖县| 桐梓县| 肃北| 纳雍县| 章丘市| 安徽省| 塔河县| 永仁县| 聂荣县| 容城县| 突泉县| 枝江市| 绥芬河市| 临颍县| 拉孜县| 休宁县| 龙井市| 上饶县| 凤凰县| 沐川县| 乐都县|