JobPlus知识库 IT DBA 文章
如何使用MyBaits实现数据库的数据全部查询和数据条数总和统计

一 核心配置文件

二实体类

三数据库属性配置文件

四dao层sql语句映射

五测试类(以及工具类)


准备工作:配置config文件格式和mapper文件格式(复制到新建的xml文件第一行)或者进行myeclips设置自动生成

[html]

  1. <?xml version="1.0" encoding="UTF-8" ?>  
  2. <!DOCTYPE configuration  
  3. PUBLIC "-//mybatis.org//DTD Config 3.0//EN"  
  4. "http://mybatis.org/dtd/mybatis-3-config.dtd">  

[html] 

  1. <?xml version="1.0" encoding="UTF-8" ?>  
  2. <!DOCTYPE mapper  
  3. PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"  
  4. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">  

导入jar包

UserMapper.java

[html] 

  1. package cn.kgc.dao;  
  2.   
  3. import java.util.List;  
  4.   
  5. import cn.kgc.pojo.User;  
  6.   
  7. public interface UserMapper {  
  8.   
  9.     //查询用户的数据  
  10.     public List<User> getUserList();  
  11.       
  12.     //count  
  13.     public int count();  
  14.       
  15.       
  16. }  


UserMapper.xml

[html] 

  1. <?xml version="1.0" encoding="UTF-8" ?>  
  2. <!DOCTYPE mapper  
  3. PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"  
  4. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">  
  5. <!-- 命名空间: 全类名+映射名 -->  
  6. <mapper namespace="cn.kgc.dao.UserMapper">  
  7.     <!-- 查询记录数 -->  
  8.         <!-- id:是唯一标识符 -->  
  9.         <!-- resultType: 返回值类型 -->  
  10.     <select id="count" resultType="int">  
  11.         select count(*) as count from smbms_user  
  12.     </select>  
  13.       
  14.       
  15.     <select id="getUserList" resultType="User">  
  16.         select * from smbms_user  
  17.     </select>  
  18.       
  19.       
  20. </mapper>  


User.java

[html] 

  1. package cn.kgc.pojo;  
  2.   
  3. import java.util.Date;  
  4.   
  5. public class User {  
  6.       
  7.     private Integer id;//  
  8.     private String userCode;//用户编码  
  9.     private String userName;//用户密码  
  10.     private String userPassword;//密码  
  11.     private Integer gender;  
  12.     private Date birthday;  
  13.     private String phone;  
  14.     private String address;  
  15.     private Integer userRole;  
  16.     private Integer createdBy;  
  17.     private Date creationDate;  
  18.     private Integer modifyBy;  
  19.     private Date modifyDate;  
  20.     public Integer getId() {  
  21.         return id;  
  22.     }  
  23.     public void setId(Integer id) {  
  24.         this.id = id;  
  25.     }  
  26.     public String getUserCode() {  
  27.         return userCode;  
  28.     }  
  29.     public void setUserCode(String userCode) {  
  30.         this.userCode = userCode;  
  31.     }  
  32.     public String getUserName() {  
  33.         return userName;  
  34.     }  
  35.     public void setUserName(String userName) {  
  36.         this.userName = userName;  
  37.     }  
  38.     public String getUserPassword() {  
  39.         return userPassword;  
  40.     }  
  41.     public void setUserPassword(String userPassword) {  
  42.         this.userPassword = userPassword;  
  43.     }  
  44.     public Integer getGender() {  
  45.         return gender;  
  46.     }  
  47.     public void setGender(Integer gender) {  
  48.         this.gender = gender;  
  49.     }  
  50.     public Date getBirthday() {  
  51.         return birthday;  
  52.     }  
  53.     public void setBirthday(Date birthday) {  
  54.         this.birthday = birthday;  
  55.     }  
  56.     public String getPhone() {  
  57.         return phone;  
  58.     }  
  59.     public void setPhone(String phone) {  
  60.         this.phone = phone;  
  61.     }  
  62.     public String getAddress() {  
  63.         return address;  
  64.     }  
  65.     public void setAddress(String address) {  
  66.         this.address = address;  
  67.     }  
  68.     public Integer getUserRole() {  
  69.         return userRole;  
  70.     }  
  71.     public void setUserRole(Integer userRole) {  
  72.         this.userRole = userRole;  
  73.     }  
  74.     public Integer getCreatedBy() {  
  75.         return createdBy;  
  76.     }  
  77.     public void setCreatedBy(Integer createdBy) {  
  78.         this.createdBy = createdBy;  
  79.     }  
  80.     public Date getCreationDate() {  
  81.         return creationDate;  
  82.     }  
  83.     public void setCreationDate(Date creationDate) {  
  84.         this.creationDate = creationDate;  
  85.     }  
  86.     public Integer getModifyBy() {  
  87.         return modifyBy;  
  88.     }  
  89.     public void setModifyBy(Integer modifyBy) {  
  90.         this.modifyBy = modifyBy;  
  91.     }  
  92.     public Date getModifyDate() {  
  93.         return modifyDate;  
  94.     }  
  95.     public void setModifyDate(Date modifyDate) {  
  96.         this.modifyDate = modifyDate;  
  97.     }  
  98.       
  99.       
  100.       
  101. }  


MapperTest.java

[html] 

  1. package cn.kgc.test;  
  2.   
  3. import java.io.IOException;  
  4. import java.io.InputStream;  
  5. import java.util.ArrayList;  
  6. import java.util.List;  
  7.   
  8. import org.apache.ibatis.io.Resources;  
  9. import org.apache.ibatis.session.SqlSession;  
  10. import org.apache.ibatis.session.SqlSessionFactory;  
  11. import org.apache.ibatis.session.SqlSessionFactoryBuilder;  
  12. import org.junit.Test;  
  13.   
  14. import cn.kgc.dao.UserMapper;  
  15. import cn.kgc.pojo.User;  
  16. import cn.kgc.utils.MyBatisUtil;  
  17.   
  18. public class MapperTest {  
  19.       
  20.     //没有使用将公共的逻辑代码写入工具类,最初的方法  
  21.     @Test  
  22.     public void test() {  
  23.         String resource="mybatis-config.xml";  
  24.         int count=0;  
  25.         SqlSession sqlSession=null;  
  26.         try {  
  27.             //1.获取mybatis-config.xml的输入流  
  28.             InputStream is=Resources.getResourceAsStream(resource);  
  29.             //2.建立SqlSessionFactory对象,来完成对配置文件的读取  
  30.             SqlSessionFactory factory=new SqlSessionFactoryBuilder().build(is);  
  31.             //3.建立sqlSession对象  
  32.             sqlSession=factory.openSession();  
  33.             count=sqlSession.selectOne("cn.kgc.dao.UserMapper.count");  
  34.             System.out.println(count);  
  35.         } catch (IOException e) {  
  36.             // TODO Auto-generated catch block  
  37.             e.printStackTrace();  
  38.         }finally{  
  39.             sqlSession.close();  
  40.         }  
  41.     }  
  42.   
  43.       
  44.     //将公共的逻辑代码写入工具类,调用工具类中的静态方法。selectOne()方法获得数据条数  
  45.     @Test  
  46.     public void test2() {  
  47.          
  48.         int count=0;  
  49.         SqlSession sqlSession=null;  
  50.         try {  
  51.             sqlSession=MyBatisUtil.createSqlSession();  
  52.             count=sqlSession.selectOne("cn.kgc.dao.UserMapper.count");  
  53.             System.out.println(count);  
  54.         } catch (Exception e) {  
  55.             // TODO Auto-generated catch block  
  56.             e.printStackTrace();  
  57.         }finally{  
  58.             MyBatisUtil.closeSqlSession(sqlSession);  
  59.         }  
  60.     }  
  61.       
  62.     //将公共的逻辑代码写入工具类,调用工具类中的静态方法。selectList()方法获得所有数据条信息  
  63.     @Test  
  64.     public void test3() {  
  65.          
  66.       List<User> userList=new ArrayList<User>();  
  67.         SqlSession sqlSession=null;  
  68.         try {  
  69.             //1  
  70.             sqlSession=MyBatisUtil.createSqlSession();  
  71.             //2  
  72.             userList=sqlSession.selectList("cn.kgc.dao.UserMapper.getUserList");  
  73.         } catch (Exception e) {  
  74.             // TODO Auto-generated catch block  
  75.             e.printStackTrace();  
  76.         }finally{  
  77.             //3  
  78.             MyBatisUtil.closeSqlSession(sqlSession);  
  79.         }  
  80.           
  81.         for(User user :userList){  
  82.             System.out.println(user.getUserCode()+"----"+user.getUserName());  
  83.         }  
  84.           
  85.           
  86.         
  87.     }  
  88.         
  89.        //基于接口的方式   
  90.     //将公共的逻辑代码写入工具类,调用工具类中的静态方法。调用接口中的抽象方法getUserList()获得所有数据条信息  
  91.         @Test  
  92.         public void test4() {  
  93.              
  94.           List<User> userList=new ArrayList<User>();  
  95.             SqlSession sqlSession=null;  
  96.             try {  
  97.                 sqlSession=MyBatisUtil.createSqlSession();  
  98.                 userList=sqlSession.getMapper(UserMapper.class).getUserList();  
  99.             } catch (Exception e) {  
  100.                 // TODO Auto-generated catch block  
  101.                 e.printStackTrace();  
  102.             }finally{  
  103.                 MyBatisUtil.closeSqlSession(sqlSession);  
  104.             }  
  105.               
  106.             for(User user :userList){  
  107.                 System.out.println(user.getUserCode()+"----"+user.getUserName());  
  108.             }  
  109.         }  
  110. }  


MyBatisUtil.java

[html] 

  1. package cn.kgc.utils;  
  2.   
  3. import java.io.InputStream;  
  4.   
  5. import org.apache.ibatis.io.Resources;  
  6. import org.apache.ibatis.session.SqlSession;  
  7. import org.apache.ibatis.session.SqlSessionFactory;  
  8. import org.apache.ibatis.session.SqlSessionFactoryBuilder;  
  9.   
  10. public class MyBatisUtil {  
  11.     private static SqlSessionFactory factory;  
  12.     //  
  13.     static{  
  14.           
  15.         InputStream is;  
  16.         try {  
  17.             is = Resources.getResourceAsStream("mybatis-config.xml");  
  18.             //2.建立SqlSessionFactory对象,来完成对配置文件的读取  
  19.              factory=new SqlSessionFactoryBuilder().build(is);  
  20.         } catch (Exception e) {  
  21.             // TODO Auto-generated catch block  
  22.             e.printStackTrace();  
  23.         }  
  24.           
  25.     }  
  26.       
  27.     public static SqlSession createSqlSession(){  
  28.         return factory.openSession(false);  
  29.     }  
  30.       
  31.     public static void closeSqlSession(SqlSession sqlSession){  
  32.         if(sqlSession!=null){  
  33.             sqlSession.close();  
  34.         }  
  35.     }  
  36.   
  37. }  


database.properties

[html] 

  1. driver=com.mysql.jdbc.Driver  
  2. url=jdbc:mysql://127.0.0.1:3306/smbms  
  3. user=root  
  4. password=root  


mybatis-config.xml

[html] 

  1. <?xml version="1.0" encoding="UTF-8" ?>  
  2. <!DOCTYPE configuration  
  3. PUBLIC "-//mybatis.org//DTD Config 3.0//EN"  
  4. "http://mybatis.org/dtd/mybatis-3-config.dtd">  
  5. <!-- 通过这个配置文件完成mybatis与数据库的连接 -->  
  6. <configuration>  
  7.     <!-- 引入database.properties  有下述两种方法-->  
  8.    <!--  <properties resource="database.properties"></properties> -->  
  9.     <properties>  
  10.         <property name="driver" value="com.mysql.jdbc.Driver"/>  
  11.         <property name="url" value="jdbc:mysql://127.0.0.1:3306/smbms"/>  
  12.         <property name="user" value="root"/>  
  13.         <property name="password" value="root"/>        
  14.     </properties>  
  15.       
  16.     <typeAliases>  
  17.         <!-- <typeAlias type="cn.kgc.pojo.User" alias="User"/> -->  
  18.         <package name="cn.kgc.pojo"/>  
  19.     </typeAliases>  
  20.       
  21.     <environments default="aa">  
  22.         <environment id="aa">  
  23.         <!--  配置事务管理  ,采用的是JDBC的事务管理-->  
  24.             <transactionManager type="JDBC"></transactionManager>  
  25.             <!--JDNI     -->  
  26.             <dataSource type="POOLED">  
  27.                  <property name="driver" value="${driver}"/>  
  28.                  <property name="url" value="${url}"/>  
  29.                  <property name="username" value="${user}"/>  
  30.                  <property name="password" value="${password}"/>            
  31.             </dataSource>  
  32.         </environment>  
  33.       
  34.           
  35.     </environments>  
  36.     <mappers>  
  37.        <mapper resource="cn/kgc/dao/UserMapper.xml"/>  
  38.     </mappers>  
  39. </configuration>  

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

¥ 打赏支持
486人赞 举报
分享到
用户评价(0)

暂无评价,你也可以发布评价哦:)

扫码APP

扫描使用APP

扫码使用

扫描使用小程序