@Component
@Controller注解被@Component注释修饰,原因为了开发的便捷性
@BeforeEach注解
在我们每次执行@Test方法时,都会先执行@BeforeEach注解
测试方法中的简化思路
用@BeforeEach注解简化Mybatis前置配置文件
设计思路:
1.要求每次执行测试方法时 都先生成一个SqlSessionFactory
2.从sqlSessionFactory中获取sqlSession
3.完成一个准备类将一些重复性的代码放入
@BeforeEach
public void testReady() throws IOException {
String s="mybatis/mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(s);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
sqlSession = sqlSessionFactory.openSession();
}
Mybatis的CURD操作:
在UserMapper接口文件中,我们写方法的时候要注意返回值类型。如果说是多个数据一般是用list集合来显示返回值类型为List<User>,如果是单个对象时返回值类型为User。
在根据某项数据(如id时)来查其他,方法的括号内需要传参,让UserMapper.xml文件的获得参数
UserMappper接口文件
//方法查询user表中的所有的数据
List<User> findAll();
//根据id查询对象
User findUserById(Integer id);
根据id查询
sql:select * from demo_user where id=1
UserMapper.xml文件在写SQl语句时这个数据如id不能写为id =1或者id =id要以id = #{id}的形式
<select id="findAll" resultType="com.jt.pojo.User">
select * from demo_user
</select>
<select id="findUserById" resultType="com.jt.pojo.User">
select * from demo_user where id=1
</select>
在测试类中id的值没有被定义所以在这里需要声明id,并且因为我们所查的id号为1这里我们给id赋值为一
@Test
public void testFind3(){
int id =1;
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
User user = userMapper.findUserById(id);
System.out.println(user);
sqlSession.close();
}
用户新增测试
目标:新增一个用户
UserMapper接口文件:
在新增操作之在控制台返回的内容并不是我们新增的信息,而是返回我们的操作影响了几行数