1. 程式人生 > >mybatis的入門實例(三)

mybatis的入門實例(三)

style void 容器 factor 文章 方法 div 圖片 如果

  前面的文章我們已經實現了根據id查詢用戶信息的功能,下面我們進行其他業務功能的實現。

一、根據用戶名模糊查詢用戶列表

  查詢使用的sql : select * from user where username like ‘%小明%‘

方法一:

  1.1.1 在UserMapper.xml映射文件中添加如下信息:

1 <!--如果返回多個結果,mybatis會自動把返回的結果放在list容器中  -->
2     <!--resultType的配置和返回一個結果的配置一樣  -->
3     <!--實現功能 :根據用戶名模糊查詢用戶列表  -->
4
<select id="findUserByUsername" parameterType="String" resultType="com.lwjnicole.pojo.User"> 5 select * from user where username like #{username} 6 </select>

  1.2.1 在Test類中添加Junit測試方法:

 1 package mybatis_study;
 2 
 3 import java.io.IOException;
 4 import java.io.InputStream;
5 import java.util.List; 6 7 import org.apache.ibatis.io.Resources; 8 import org.apache.ibatis.session.SqlSession; 9 import org.apache.ibatis.session.SqlSessionFactory; 10 import org.apache.ibatis.session.SqlSessionFactoryBuilder; 11 import org.junit.After; 12 import org.junit.Before; 13 14 import
com.lwjnicole.pojo.User; 15 16 public class Test { 17 private SqlSessionFactory sqlSessionFactory = null; 18 private SqlSession session = null; 19 20 @Before 21 public void before(){ 22 //創建SqlSessionFactoryBuilder對象 23 SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder(); 24 InputStream inputStream = null; 25 try { 26 //加載SqlMapConfig.xml配置文件 27 inputStream = Resources.getResourceAsStream("SqlMapConfig.xml"); 28 } catch (IOException e) { 29 e.printStackTrace(); 30 } 31 //創建SqlSessionFactory對象 32 this.sqlSessionFactory = sqlSessionFactoryBuilder.build(inputStream); 33 } 34 35 //根據用戶名模糊查詢用戶列表 36 @org.junit.Test 37 public void findUserByUsername(){ 38 //創建SqlSession對象 39 session = sqlSessionFactory.openSession(); 40 //使用SqlSession對象執行查詢sql,獲得結果(查詢多條數據,使用selectList方法) 41 List<User> userList = session.selectList("findUserByUsername", "%小明%"); 42 //打印結果 43 for (User user : userList) { 44 System.out.println(user); 45 } 46 } 47 48 @After 49 public void after(){ 50 //釋放資源 51 session.close(); 52 } 53 }

  1.3.1 打印結果為:

技術分享圖片

方法二:

  2.1.1 在UserMapper.xml映射文件中添加如下信息:

1     <!--如果返回多個結果,mybatis會自動把返回的結果放在list容器中  -->
2     <!--resultType的配置和返回一個結果的配置一樣  -->
3     <!--實現功能 :根據用戶名模糊查詢用戶列表  -->
4     <select id="findUserByUsername" parameterType="String" resultType="com.lwjnicole.pojo.User">
5         select * from user where username like ‘%${value}%‘
6     </select>

  2.1.2 在Test類中添加Junit測試方法:

 1 package mybatis_study;
 2 
 3 import java.io.IOException;
 4 import java.io.InputStream;
 5 import java.util.List;
 6 
 7 import org.apache.ibatis.io.Resources;
 8 import org.apache.ibatis.session.SqlSession;
 9 import org.apache.ibatis.session.SqlSessionFactory;
10 import org.apache.ibatis.session.SqlSessionFactoryBuilder;
11 import org.junit.After;
12 import org.junit.Before;
13 
14 import com.lwjnicole.pojo.User;
15 
16 public class Test {
17     private SqlSessionFactory sqlSessionFactory = null;
18     private SqlSession session = null;
19     
20     @Before
21     public  void before(){
22         //創建SqlSessionFactoryBuilder對象
23         SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
24         InputStream inputStream = null;
25         try {
26             //加載SqlMapConfig.xml配置文件
27             inputStream = Resources.getResourceAsStream("SqlMapConfig.xml");
28         } catch (IOException e) {
29             e.printStackTrace();
30         }
31         //創建SqlSessionFactory對象
32         this.sqlSessionFactory = sqlSessionFactoryBuilder.build(inputStream);
33     }
34     
35     //根據用戶名模糊查詢用戶列表
36     @org.junit.Test
37     public void findUserByUsername(){
38         //創建SqlSession對象
39         session = sqlSessionFactory.openSession();
40         //使用SqlSession對象執行查詢sql,獲得結果(查詢多條數據,使用selectList方法)
41         List<User> userList  = session.selectList("findUserByUsername", "小明");
42         //打印結果
43         for (User user : userList) {
44             System.out.println(user);
45         }
46     }
47     
48     @After
49     public void after(){
50         //釋放資源
51         session.close();
52     }
53 }

  2.1.3 打印結果:

技術分享圖片

二、總結

  2.1 #{}${} 的區別

mybatis的入門實例(三)