ImageVerifierCode 换一换
格式:DOCX , 页数:46 ,大小:185.34KB ,
资源ID:3869359      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3869359.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(MyBatis简明教程.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

MyBatis简明教程.docx

1、MyBatis简明教程MyBatis 简明教程史上最简单的 MyBatis 教程Dr.Cang电脑工作室2018年9月前 言本 MyBatis 简明教程是根据CSDN上的史上最简单的 MyBatis 教程编辑而成。其网址为本教程的 GitHub 地址为mybatis-tutorial。Dr.Cang电脑工作室2018年9月目 录前言 1第1章 MyBatis 教程(一) 1一、简介 1二、构建步骤 1三、体验 MyBatis 框架 1第2章 基于 JUnit 单元测试的原理及示例 4一、简介 4二、特点 5三、内容 5四、JUnit 3.X 和 JUnit 4.X 的区别 6五、测试示例 9六

2、、个人建议 12第3章 MyBatis 教程(二) 13一、前言 13二、示例 13三、完整代码 15第4章 MyBatis 教程(三) 19一、前言 19二、总结 19第5章 MyBatis 教程(四) 20一、前言 20二、动态SQL语句 20三、总结 23第6章 MyBatis 教程(五) 24一、前言 24二、关联映射(1:N) 24前言MyBatis 源于 Apache 的一个开源项目 iBatis,而 iBatis 一词则来源于“internet”和“abatis”的组合,2010年这个项目由 Apache Software Foundation 迁移到了 Google Code,

3、并且改名为MyBatis ,2013年11月其又迁移到 Github。MyBatis 是一个基于 Java 的支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架,相比于基于面向对象使用 HQL 语言的 Hibernate 框架,MyBatis 则基于 SQL 面向结果集,因此其效率更高。第1章 MyBatis 教程(一)一、简介MyBatis 是支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架,其几乎消除了所有的 JDBC 代码和参数的手工设置以及结果集的检索。MyBatis 使用简单的 XML 或注解用于配置和原始映射,将接口和 Java 的 POJOs(Plain Old

4、 Java Objects,普通的 Java对象)映射成数据库中的记录。MyBatis 应用程序大都使用 SqlSessionFactory 实例,SqlSessionFactory 实例可以通过 SqlSessionFactoryBuilder 获得,而SqlSessionFactoryBuilder 则可以从一个 XML 配置文件或者一个预定义的配置类的实例获得。二、构建步骤想要熟练的使用 MyBatis 框架,就必须明确其构建步骤,在此,咱们给出构建 MyBatis 框架的详细步骤,以供大家参考: 创建一个 Java Web 项目; 导入 MyBatis 框架的 jar 包; 创建核心配

5、置文件 sqlMapConfig.xml ; 创建映射文件 UersMapper.xml; 创建测试类。其中,MyBatis 框架的 jar 包可以通过“MyBatis 之 各种依赖包”进行下载,而且里面包含了大多数常用的配置文件,值得大家get。此外,还有一点需要大家注意,那就是 MyBatis 框架用于操作数据,支持 SQL 语句,因此在体验 MyBatis 框架的时候,需要使用数据库配合进行测试。在本篇博文中,咱们在数据库中创建了一个名为“person”的表,并通过 MyBatis 框架对其进行一系列常见的操作(增、删、改、查等)。三、体验 MyBatis 框架首先,给出项目结构图:第一

6、步:创建 Java Web 项目,导入 jar 包mybatis-3.2.2.jar 核心jarmysql-connector-java-5.1.10-bin.jar 数据库访问asm-3.3.1.jar 增强类cglib-2.2.2.jar 动态代理commons-logging-1.1.1.jar 通用日志javassist-3.17.1-GA.jar java助手log4j-1.2.17.jar 日志slf4j-api-1.7.5.jar 日志slf4j-log4j12-1.7.5.jar 日志第二步:创建核心配置文件 sqlMapConfig.xml 第三步:创建映射文件 UersMa

7、pper.xml SELECT * FROM Person 第四步:创建实体类(Person)package yeepay.payplus;/* * Created by 维C果糖 on 2017/2/1. */public class Person private Integer id; private String name; private Integer age; public Integer getId() return id; public void setId(Integer id) this.id = id; public String getName() return nam

8、e; public void setName(String name) this.name = name; public Integer getAge() return age; public void setAge(Integer age) this.age = age; Override public String toString() return Person + id= + id + , name= + name + + , age= + age + ; 第五步:创建测试类(CeshiMyBatis)package yeepay.payplus.test;import org.apa

9、che.ibatis.io.Resources;import org.apache.ibatis.session.SqlSession;import org.apache.ibatis.session.SqlSessionFactory;import org.apache.ibatis.session.SqlSessionFactoryBuilder;import org.junit.Test;import yeepay.payplus.Person;import java.io.IOException;import java.io.InputStream;import java.util.L

10、ist;/* * Created by 维C果糖 on 2017/2/1. */public class CeshiMyBatis Test public void ceshi() throws IOException /* * 1、获得 SqlSessionFactory * 2、获得 SqlSession * 3、调用在 mapper 文件中配置的 SQL 语句 */ String resource = sqlMapConfig.xml; / 定位核心配置文件 InputStream inputStream = Resources.getResourceAsStream(resource)

11、; SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); / 创建 SqlSessionFactory SqlSession sqlSession = sqlSessionFactory.openSession(); / 获取到 SqlSession / 调用 mapper 中的方法:命名空间 + id List personList = sqlSession.selectList(yeepay.payplus/mapper.UserMapper.findAll); fo

12、r (Person p : personList) System.out.println(p); 在完成以上步骤后,咱们可以通过 JUnit 来测试框架是否搭建成功,具体使用 JUnit 进行测试的方法,可以通过阅读“基于 JUnit 单元测试的原理及示例”来了解更为详细的内容。第2章 基于 JUnit 单元测试的原理及示例一、简介JUnit是一个Java语言的单元测试框架,它由 Kent Beck 和 Erich Gamma 建立,逐渐成为 xUnit 家族中最为成功的一个。 JUnit有它自己的JUnit扩展生态圈,多数Java的开发环境都已经集成了JUnit作为单元测试的工具。在这里,一

13、个单元可以是一个方法、类、包或者子系统。因此,单元测试是指对代码中的最小可测试单元进行检查和验证,以便确保它们正常工作。例如,我们可以给予一定的输入测试输出是否是所希望得到的结果。在本篇博客中,作者将着重介绍 JUnit 4.X 版本的特性,这也是我们在日常开发中使用最多的版本。二、特点 JUnit提供了注释以及确定的测试方法; JUnit提供了断言用于测试预期的结果; JUnit测试优雅简洁不需要花费太多的时间; JUnit测试让大家可以更快地编写代码并且提高质量; JUnit测试可以组织成测试套件包含测试案例,甚至其他测试套件; Junit显示测试进度,如果测试是没有问题条形是绿色的,测试

14、失败则会变成红色; JUnit测试可以自动运行,检查自己的结果,并提供即时反馈,没有必要通过测试结果报告来手动梳理。三、内容3.1 注解 Test :该注释表示,用其附着的公共无效方法(即用public修饰的void类型的方法 )可以作为一个测试用例; Before :该注释表示,用其附着的方法必须在类中的每个测试之前执行,以便执行测试某些必要的先决条件; BeforeClass :该注释表示,用其附着的静态方法必须执行一次并在类的所有测试之前,发生这种情况时一般是测试计算共享配置方法,如连接到数据库; After :该注释表示,用其附着的方法在执行每项测试后执行,如执行每一个测试后重置某些变

15、量,删除临时变量等; AfterClass :该注释表示,当需要执行所有的测试在JUnit测试用例类后执行,AfterClass注解可以使用以清理建立方法,如断开数据库连接,注意:附有此批注(类似于BeforeClass)的方法必须定义为静态; Ignore :该注释表示,当想暂时禁用特定的测试执行可以使用忽略注释,每个被注解为Ignore的方法将不被执行。/* JUnit 注解示例*/Testpublic void testYeepay() Syetem.out.println(用Test标示测试方法!);AfterClasspublic static void paylus() Syete

16、m.out.println(用AfterClass标示的方法在测试用例类执行完之后!);3.2 断言在这里,作者将介绍一些断言方法,所有这些方法都来自 org.junit.Assert 类,其扩展了 java.lang.Object 类并为它们提供编写测试,以便检测故障。简而言之,我们就是通过断言方法来判断实际结果与我们预期的结果是否相同,如果相同,则测试成功,反之,则测试失败。 void assertEquals(String message, expected value, actual value) :断言两个值相等,值的类型可以为int、short、long、byte、char 或者j

17、ava.lang.Object,其中第一个参数是一个可选的字符串消息; void assertTrue(String message, boolean condition) :断言一个条件为真; void assertFalse(String message,boolean condition) :断言一个条件为假; void assertNotNull(String message, java.lang.Object object) :断言一个对象不为空(null); void assertNull(String message, java.lang.Object object) :断言一个

18、对象为空(null); void assertSame(String message, java.lang.Object expected, java.lang.Object actual) :断言两个对象引用相同的对象; void assertNotSame(String message, java.lang.Object unexpected, java.lang.Object actual) :断言两个对象不是引用同一个对象; void assertArrayEquals(String message, expectedArray, resultArray) :断言预期数组和结果数组相等

19、,数组的类型可以为int、long、short、char、byte 或者 java.lang.Object四、JUnit 3.X 和 JUnit 4.X 的区别4.1 JUnit 3.X(1)使用 JUnit 3.X 版本进行单元测试时,测试类必须要继承于 TestCase 父类;(2)测试方法需要遵循的原则: public的; void的; 无方法参数; 方法名称必须以 test 开头;(3)不同的测试用例之间一定要保持完全的独立性,不能有任何的关联;(4)要掌握好测试方法的顺序,不能依赖于测试方法自己的执行顺序。/* 用 JUnit 3.X 进行测试*/import junit.frame

20、work.Assert;import junit.framework.TestCase;public class TestOperation extends TestCase private Operation operation; public TestOperation(String name) / 构造函数 super(name); Override public void setUp() throws Exception / 在每个测试方法执行 之前 都会被调用,多用于初始化 System.out.println(欢迎使用Junit进行单元测试.); operation = new O

21、peration(); Override public void tearDown() throws Exception / 在每个测试方法执行 之后 都会被调用,多用于释放资源 System.out.println(Junit单元测试结束.); public void testDivideByZero() Throwable te = null; try operation.divide(6, 0); Assert.fail(测试失败); /断言失败 catch (Exception e) e.printStackTrace(); te = e; Assert.assertEquals(Ex

22、ception.class, te.getClass(); Assert.assertEquals(除数不能为 0 , te.getMessage(); 4.2 JUnit 4.X(1)使用 JUnit 4.X 版本进行单元测试时,不用测试类继承TestCase父类;(2)JUnit 4.X 版本,引用了注解的方式进行单元测试;(3)JUnit 4.X 版本我们常用的注解包括: Before 注解:与JUnit 3.X 中的 setUp() 方法功能一样,在每个测试方法之前执行,多用于初始化; After 注解:与 JUnit 3.X 中的 tearDown() 方法功能一样,在每个测试方法之

23、后执行,多用于释放资源; Test(timeout = xxx) 注解:设置当前测试方法在一定时间内运行完,否则返回错误; Test(expected = Exception.class) 注解:设置被测试的方法是否有异常抛出。抛出异常类型为:Exception.class;此外,我们可以通过阅读上面的第二部分“2 注解”了解更多的注解。/* 用 JUnit 4.X 进行测试*/import static org.junit.Assert.*;import org.junit.After;import org.junit.AfterClass;import org.junit.Before;i

24、mport org.junit.BeforeClass;import org.junit.Test;public class TestOperation private Operation operation; BeforeClass public static void globalInit() / 在所有方法执行之前执行 System.out.println(BeforeClass标注的方法,在所有方法执行之前执行.); AfterClass public static void globalDestory() / 在所有方法执行之后执行 System.out.println(AfterC

25、lass标注的方法,在所有方法执行之后执行.); Before public void setUp() / 在每个测试方法之前执行 System.out.println(Before标注的方法,在每个测试方法之前执行.); operation = new Operation(); After public void tearDown() / 在每个测试方法之后执行 System.out.println(After标注的方法,在每个测试方法之后执行.); Test(timeout=600) public void testAdd() / 设置限定测试方法的运行时间 如果超出则返回错误 System.out.println(测试 add 方法.); int result = operation.add(2, 3); assertEquals(5, result); Test public void testSubtract() System.out.println(测试 subtract 方法.); int result = operation.subtract(1, 2); assertEquals(-1, result); Test public void

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1