热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

junit4配置数据源_01MyBatis环境配置

MyBatis环境配置MyBatis是一款优秀的持久层框架,她是半自动的化的ORM(ObjectRelationshipMapping)框架。1.准备工具jdk13.
10265a9e4a87e961d5aeada996f3d03c.png

MyBatis环境配置

MyBatis是一款优秀的持久层框架,她是半自动的化的ORM(Object Relationship Mapping)框架。

1.准备工具

  • jdk 13.0.2
  • maven 3.6.3
  • MyBatis 3.5.4
  • junit 4.13
  • logback 1.2.3
  • MySQL-connector-java 8.0.20
  • slf4j 1.7.25

2.创建一个空的maven项目

  • 可以使用IDE创建,比如IDEA或者Eclipse之类的;
  • 也可以使用命令行创建

mvn archetype:generate -DgroupId=com.kestiny -DartifactId=mybatis -Dversion=0.1.0

3.导入MyBatis依赖包

MyBatis相关依赖包主要是MySQL驱动,都可在maven仓库中查找到;


org.mybatismybatis3.5.4

mysqlmysql-connector-java8.0.20runtime

4.编写MyBatis核心配置文件

MyBatis的配置和使用都可参见MyBatis官方文档




注意: 1. MyBatis的xml配置文件标签是有顺序的,顺序和官方定位的不符时,是无法正确的使用的,当前版本时的顺序为:properties=>settings=>typeAliases=>typeHandlers=>objectFactory=>objectWrapperFactory=>reflectorFactory=>plugins=>environments=>databaseIdProvider=>mappers 2. 变量的引用需要使用${},变量的配置文件需要在properties resource标签中指定,当然也可以使用代码的方式读取; 3. environment中可以配置多个环境,但是可以生效的只有一个,需要在default中指定; 4. 数据源类型默认为POOLED,目前一共有三种内置数据源类型:UNPOOLED、POOLED和JNDI;

5.准备代码和PersonMapper.xml文件

准备代码,参见mybatis模块

编写PersonMapper.xml文件




6.执行测试

@Test
public void testPerson() {try {String resource = "mybatis-config.xml";InputStream inputStream = inputStream = Resources.getResourceAsStream(resource);SqlSessionFactory build = new SqlSessionFactoryBuilder().build(inputStream);SqlSession sqlSession = build.openSession();PersonMapper mapper = sqlSession.getMapper(PersonMapper.class);List personList = mapper.selectAll();logger.info("查找数据:" + personList.size());for (Person person : personList) {logger.info(person.toString());}sqlSession.close();} catch (IOException e) {e.printStackTrace();}
}

注意: 1. 需要从前面的配置文件中,获取MyBatis的连接; 2. 从已有连接中获取一次SqlSession,每次使用完成后,需要把SqlSession释放; 3. 使用前,需要先从session中获取mapper。

7. 获取SqlSession的优化

每次都从头创建SqlSessionFactory,在获取SqlSession,十分不便,并且会导致SqlSessionFactory多次创建,一次启动SqlSessionFactory只需要一个就可以了。

编写一个MyBatis工具类

public class MybatisUtils {private static SqlSessionFactory sqlSessionFactory;static {try {String resource = "mybatis-config.xml";InputStream inputStream = inputStream = Resources.getResourceAsStream(resource);sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);} catch (IOException e) {e.printStackTrace();}}public static SqlSession getSqlSession() {return sqlSessionFactory.openSession();}
}

测试代码简化为

@Test
public void testPerson() {SqlSession sqlSession = MybatisUtils.getSqlSession();PersonMapper mapper = sqlSession.getMapper(PersonMapper.class);List personList = mapper.selectAll();logger.info("查找数据:" + personList.size());for (Person person : personList) {logger.info(person.toString());}sqlSession.close();
}




推荐阅读
author-avatar
swa乄ycat曼颜
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有