栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

MyBatis环境配置与解析

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

MyBatis环境配置与解析

  和我们学习的Java其他额外内容一样,要想使用MyBatis,首先需要导入它的jar包。因为目前大部分公司都在使用maven来实现jar包的导入和管理,因此学习时也同样推荐使用maven。以此实现学习和就业的无缝过渡。

Jar包/maven依赖

– MyBatis的maven仓库链接
https://mvnrepository.com/artifact/org.mybatis/mybatis/3.5.7
(版本号任意下载,可以使用最新版的玩玩,当然最推荐的还是使用人最多的稳妥啦。)

– GitHub链接
https://github.com/mybatis/mybatis-3/releases/tag/mybatis-3.5.7
(该方式下载jar包,需手动导入)

MyBatis核心配置文件

  MyBatis的特点就是使用XML配置文件来使用对接口的绑定和功能的实现,因此就需要在mapper之上写一个配置文件,以实现MyBatis的基础设定。
XML配置文件如下(MyBatis官网同样有示例文档可供参考)





	    
	        
	            
	            
	                
	                
	                
	                
	                
	            
	        
	    
	    
	    	
	        
	    

编写MyBatis工具类

  要想使用MyBatis中的代码,便需要获取其SqlSession对象。通过该对象来实现对方法的调用,SqlSession 提供了在数据库执行 SQL 命令所需的所有方法。

	import org.apache.ibatis.io.Resources;
	import org.apache.ibatis.session.*;
	import java.io.InputStream;
		
	//sqlSessionFactory -> sqlSession
	public class MybatisUtils {
	    private static SqlSessionFactory sqlSessionFactory;
	    static {
	        try {
	            //使用MyBatis第一步:获取sqlSessionFactory对象
	            String resource = "mybatis-config.xml";
	            InputStream inputStream = Resources.getResourceAsStream(resource);
		        sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
		        } catch (Exception e) {
		            e.printStackTrace();
		    }
	   	}
		//既然有了 SqlSessionFactory,顾名思义,我们可以从中获得 SqlSession 的实例。
		public static SqlSession getSqlSession() {
		    return sqlSessionFactory.openSession();
		}
}
后续测试

  当完成以上两步后,其实一个完整的MyBatis项目框架已经搭建完毕了,但如何知道它是健康的呢?那就需要编写供映射的实体类和测试代码来实现。
  实体类的搭建相信学习到这里的大家已经很熟悉了,便不再赘述,仅附上供测试的代码,并进行简单的说明。
  首先,需要在核心配置文件中注册mapper文件



  此处,使用大部分公司选用的Junit单元测试的方式来进行测试工作,当然首先要导入其jar包或maven依赖,自行百度不再赘述。

@Test
public void test() {
    //第一步:获得SqlSession对象
    SqlSession sqlSession = MybatisUtils.getSqlSession();

    //方式一:getMapper
    //使用反射机制动态创建一个实例,通过该实例调用其接口实现类(UserMapper.xml)的方法
    UserDao userDao = sqlSession.getMapper(UserDao.class);
    //利用该实例使用接口方法
    List userList = userDao.getUserList();
	
	//方式二:不推荐使用
//  List userList = sqlSession.selectList("com.wu.dao.UserDao.getUserList");
        for (User user : userList) {
            System.out.println(user);
        }
        //关闭SqlSession
        sqlSession.close();
    }

    for (User user : userList) {
        System.out.println(user);
    }
	
    //关闭SqlSession
    sqlSession.close();
}

  MyBatis实现Mapper接口的实例化有两种方式,不同于之间的接口实例化。推荐使用 getMapper() 的方式来创建Mapper实例。因为第二种方式直接写死了方法名,无法提高代码复用性和体现MyBatis的灵活性。

写在最后

  测试MyBatis时难免会遇到各种各样的问题,常见的有:

  1. 配置文件没有注册
  2. 绑定接口错误
  3. 方法名错误
  4. 返回类型错误
  5. Maven导出资源错误

切记读错误提示要从下往上读,善用百度和CSDN。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/292503.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号