发表于: 2018-04-01 21:50:56
2 509
day4
今天完成的事情:
1.通过 接口 + Mapper.xml 的形式实现操作数据库,也算是mybatis的一个特色吧
但要注意以下几点:
1).接口的方法名要和Mapper.xml 中对应标签的id保持一致
2).返回值类型 与 Mapper.xml文件中返回值类型(resultType)要一致,
3).方法的入参类型 与Mapper.xml中入参的类型(parameterType)要一致
4).命称空间namespace必须和Mapper接口类路径一致,以绑定此接口
思考:为什么使用Mybatis的时候注意理解为什么不需要Impl
大概是Mybatis使用了动态代理,生成了代理对象,而方法的实现都在Mapper.xml中
配置的差不多了,所以Mapper.xml就相当于是Dao的实现类了。
2.关于Junit
Junit 的几种注解:
1.@Test: 测试方法
测试方法必须使用public void 进行修饰,不能带任何的参数
a)(expected=XXException.class)如果程序的异常和XXException.class一样,则测试通过
b)(timeout=100)如果程序的执行能在100毫秒之内完成,则测试通过
2.@Ignore: 被忽略的测试方法:加上之后,暂时不运行此段代码
3.@Before: 每一个测试方法之前运行
4.@After: 每一个测试方法之后运行
5.@BeforeClass: 方法必须必须要是静态方法(static 声明),所有测试开始之前运行,注意区分before,是所有测试方法
6.@AfterClass: 方法必须要是静态方法(static 声明),所有测试结束之后运行,注意区分 @After
2.@AfterClass和 @After 区别,以及@BeforeClass和@Before的区别
我们跑一段代码来看看,
先执行testAdd测试方法代码
得到此结果
我们在每个方法内部加入让它输出方法名的代码。
再执行所有测试方法,即执行整个类,得到如下
它们的区别是显然的,一个是每个方法运行都要随之运行,一个只在所有方法运行的前前后后运行。
小知识点:
1).Java 返回值为string时,想要使返回的String中间有换行:
只需要在要换行的地方加上转义字符“\n”即可实现换行。
如:String function(){ return "hello \n world"; // 返回“hello”换行“world”}
2).接口的方法的访问修饰符只能是public,不写public也是默认public的。是为了方便别的包的类实现。
下图中不写public也是可以的
3).在mybatis工具类中用到了ThreadLocal来存放和获取sqlSession,这里
有关于ThreadLocal的介绍:https://blog.csdn.net/qq_29227939/article/details/52029065
明天计划的事情:
Spring和Junit整合
遇到的问题:
暂无
收获:
以上
评论