Mybatis简单查询

加载映射文件的另外一种方式
如果想把映射文件放到磁盘其他怎么做?
在这里插入图片描述
在mybatis-config.xml,采用以下方式:

       
       <mappers>
       
         <mapper url="file:///c:/UserMapper.xml"/>    适用于项目的生产环境
          
       </mappers>

实体类和核心配置文件完成后
封装SqlSession工具类

package com.oupeng.util;

import java.io.IOException;
import java.io.InputStream;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

public class SqlSessionUtil {
       public static SqlSessionFactory factory;
       static {
    	   String resource="mybatis-config.xml";
    	   try {
			InputStream is=Resources.getResourceAsStream(resource);
			factory=new SqlSessionFactoryBuilder().build(is);
		} catch (IOException e) {
			e.printStackTrace();
		}
    	   
     }
       //定义或创建SqlSession方法
       public static SqlSession  creatSqlSession() {
    	   SqlSession sqlSession=factory.openSession();
    	   return sqlSession;
       }
       //关闭SqlSession
       public static void closSqleSession(SqlSession _sqlSession) {
    	   if(_sqlSession!=null) {
    		   _sqlSession.close();
    	   }
       }
}

范例:统计当前用户表中的记录数
1、UserMapper接口

public int count();

2、映射文件

<select id="count"  resultType="Integer">
		select count(1) as count from smbms_user
	</select>

3、测试类

@Test
    public void test1() {
    	// 加载MyBatis的配置文件
    				String str = "mybatis-config.xml";
    				SqlSession sqlSession = null;
    				InputStream inputStream;
    				int count = 0;
    				try {
    					// 读取MyBatis的配置文件
    					inputStream = Resources.getResourceAsStream(str);
    					// 创建SqlSessionFactory工厂
    					SqlSessionFactory sqlSessionFactory =new SqlSessionFactoryBuilder().build(inputStream);
    					// 创建SqlSession
    					sqlSession = sqlSessionFactory.openSession();

    					// 统计当前用户的记录数
    					//count = Integer.parseInt(sqlSession.selectOne("com.oupeng.user.dao.UserMapper.count").toString());
    					count =sqlSession.getMapper(UserMapper.class).count();
    					System.out.println("当前系统用户数为:" + count + "人...");

    				} catch (IOException e) {
    					e.printStackTrace();
    				} finally {
    					// 关闭sqlSession
    					if(sqlSession!=null){
    						
    						sqlSession.close();
    					}
    				}
    	
    }

范例:查询当前所有的用户记录
1、接口方法

public List<User> getUserList();

2、映射文件

<!-- 查询用户所有记录 -->
  <select id="getUserList" resultType="User">
      select * from smbms_user
  </select>

测试类

@Test
    public void test2() {
    	//打开SqlSession
    	SqlSession sqlSession=SqlSessionUtil.creatSqlSession();
    	//List<User> list=sqlSession.selectList("com.oupeng.user.dao.UserMapper.getUserList");
    	List<User> list=sqlSession.getMapper(UserMapper.class).getUserList(); 
    	//遍历结果集
    	for(User u:list) {
    		System.out.println(u.getUserName()+"\t"+u.getUserPassword()+"\t"+u.getAddress());
    		
    	}
    	
    	//关闭SqlSession
    	SqlSessionUtil.closSqleSession(sqlSession);
    	
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值