1.junit 常用注解
@Before 初始化方法,每次测试方法调用前都执行一次。
@After 释放资源:每次测试方法调用后都执行一次
@Test 测试方法:在这里可以测试期望异常和超时时间
@ignore 忽略的测试方法
@BeforeClass 针对所有测试,只执行一次,且必须为static void
@AfterClass 针对所有测试,只执行一次,且必须为static void
@RunWith 指定测试类使用的某个运行器参数SpringJUnit4ClassRunner.class
@Parameters 指定参数类的参数数据集合
@Rule 允许灵活添加或重新定义测试类中的每个测试方法的行为
@FixMethodOrder 指定测试方法的执行顺序
@ContextConfiguration 参数locations=“classpath:spring-mybatis.xml” 指向src下的该文件
执行顺序:
@BeforeClass—@Before—@Test—@After—@Before —@Test—@After—@AfterClass
junit与main方法相比的优势:代码量少、结构清晰、灵活性更好
main:一个类中只能有一个main方0法 层次结构方面不够清晰 运行具体某一个方法时,要将其他的方法注释掉
2.mybatis的基本配置
1.dao层接口
2.mapper.xml:编辑需要执行的sql语句
(1)mapper标签的namespace属性:指定该xml对应的dao层接口的路径
3.spring-mybatis.xml:spring集成mybatils的配置文件
(1)配置sqlSessionFactory指定要操作的数据库,以及mapper.xml的所在目录
(2)配置指定的dao层接口的目录
3.mybatis的注意事项
1.xml中的sql不得有分号
2.sql语句操作的表明和列名
3.xml中的小于号:KaTeX parse error: Expected 'EOF', got '&' at position 8: lt;大于号¥&̲gt; 4.取变量时,如果da…和#取值的区别
4.mybatis的xml中如何设置返回值
resultType返回的数据类型
5.$和#区别
- #将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号。如:order by #{user_id},如果传入的值是111,那么解析成sql时的值为order by “111”, 如果传入的值是id,则解析成的sql为order by “id”.
- $将传入的数据直接显示生成在sql中。如:order by ${user_id}, 如果传入 的值是id,则解析成的sql为order by id.
- #方式能够很大程度防止sql注入。
- $方式无法防止Sql注入。
- $方式一般用于传入数据库对象,例如传入表名.
- 一般能用#的就别用$ MyBatis排序时使用order by 动态参数时需要注意,用$而不是#