发表于: 2018-05-19 23:10:05

1 1226


今天完成的内容:

1、尝试了Mybatis连接数据库insert和update语句的用法。


测试代码:

@Test
public void testInsert() {
   SqlSession sqlSession = getSqlSession();
   try {
       UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
       SysUser user = new SysUser();
       user.setUserName("test1");
       user.setUserPassword("123456");
       user.setUserEmail("test@mybatis.tk");
       user.setUserInfo("test info");

       user.setHeadImg(new byte[]{1,2,3});
       user.setCreateTime(new Date());

       int result = userMapper.insert(user);

       Assert.assertEquals(1,result);
       Assert.assertNull(user.getId());



   } finally {
       sqlSession.rollback();
       sqlSession.close();
   }
}

@Test

public void testInsert2() {
   SqlSession sqlSession = getSqlSession();
   try {
       UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
       SysUser user = new SysUser();
       user.setUserName("test1");
       user.setUserPassword("123456");
       user.setUserEmail("test@mybatis.tk");
       user.setUserInfo("test info");

       user.setHeadImg(new byte[]{1,2,3});
       user.setCreateTime(new Date());

       int result = userMapper.insert2(user);

       Assert.assertEquals(1,result);
       Assert.assertNotNull(user.getId());



   } finally {
       sqlSession.rollback();
       sqlSession.close();
   }
}

@Test

public void testUpdateById() {
   SqlSession sqlSession = getSqlSession();
   try {
       UserMapper userMapper = sqlSession.getMapper(UserMapper.class);

       SysUser user = userMapper.selectById(1L);

       Assert.assertEquals("admin", user.getUserName());

       user.setUserName("admin_test");

       user.setUserEmail("test@mybatis.tk");

       int result = userMapper.updateById(user);

       Assert.assertEquals(1, result);

       user = userMapper.selectById(1L);

       Assert.assertEquals("admin_test", user.getUserName());


   } finally {
       sqlSession.rollback();
       sqlSession.close();
   }
}

@Test
public void testDeleteById() {
   SqlSession sqlSession = getSqlSession();
   try {
       UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
       SysUser user1 = userMapper.selectById(1L);
       Assert.assertNotNull(user1);
       Assert.assertEquals(1, userMapper.deleteById(1L));
       Assert.assertNull(userMapper.selectById(1L));
       SysUser user2 = userMapper.selectById(1001L);
       Assert.assertNotNull(user2);
       Assert.assertEquals(1,userMapper.deleteById(user2));
       Assert.assertNull(userMapper.selectById(1001L));

   } finally {
       sqlSession.rollback();
       sqlSession.close();
   }
}

2、尝试了Mybatis中注解的用法。




@Select({"select id, role_name roleName, enabled, " +
       "create_by createBy, create_time createTime",
       "from sys_role ",
       "where id = #{id}"})
SysRole selectById(Long id);

@Results(id = "roleResultMap", value = {
       @Result(property = "id", column ="id", id = true),
       @Result(property = "roleName", column = "role_name"),
       @Result(property = "enabled", column = "enabled"),
       @Result(property = "createBy", column = "create_by"),
       @Result(property = "createTime", column = "create_time")
})

@Select("select id,role_name,enabled,create_by, create_time" +
       " from sys_role where id = #{id} ")
SysRole selectById2(Long id);

@ResultMap("roleResultMap")
@Select("select * from sys_role")
List<SysRole> selectAll();

@Insert({"insert into sys_role (id, role_name, enabled, create_by, create_time)" +
       "values(#{roleName}, #{enabled}, #{createBy}," +
       "#{createTime, jdbcType = TIMESTAMP"})
int insert(SysRole sysRole);

@Insert({"insert into sys_role (role_name, enabled, create_by, create_time)" +
       "values(#{roleName}, #{enabled}, #{createBy}," +
       "#{createTime, jdbcType = TIMESTAMP"})
@Options(useGeneratedKeys = true, keyProperty = "id")
int insert2(SysRole sysRole);

@Update({"update sys_role" +
       "set role_name = #{roleName}," +
       "enabled = #{enabled}," +
       "create_by = #{createBy}," +
       "create_time = #{createTime, jdbcType=TIMESTAMP)" +
       "where id = #{id}"})
int updateById(SysRole sysRole);

@Delete("delete from sys_role where id = #{id}")
int deleteById(Long id);

测试代码:

@Test
public void testSelectById() {

   SqlSession sqlSession = getSqlSession();
   try {
       RoleMapper roleMapper = sqlSession.getMapper(RoleMapper.class);
       SysRole role = roleMapper.selectById(1L);
       Assert.assertNotNull(role);
       Assert.assertEquals("管理员", role.getRoleName());
   } finally {
       sqlSession.close();
   }
}

@Test
public void testSelectById2() {

   SqlSession sqlSession = getSqlSession();
   try {
       RoleMapper roleMapper = sqlSession.getMapper(RoleMapper.class);
       SysRole role = roleMapper.selectById2(1L);
       Assert.assertNotNull(role);
       Assert.assertEquals("管理员", role.getRoleName());

   } finally {
       sqlSession.close();
   }
}

@Test
public void testSelectAll() {
   SqlSession sqlSession = getSqlSession();
   try {
       RoleMapper roleMapper = sqlSession.getMapper(RoleMapper.class);
       List<SysRole> role = roleMapper.selectAll();
       Assert.assertEquals("管理员", role.get(0).getRoleName());//此处不是数组,是结果集,为何这样写
       Assert.assertNotNull(role);
   } finally {
       sqlSession.close();
   }
}



明天的计划:

1、了解一下Mybatis动态语句相关。

2、开始做写自己的Mybatis连接数据库。


遇到的困难:今天在学注解这里,很容易报错,调试比较久。


今日收获:学会了Mybatis基础CRUD方法。



返回列表 返回列表
评论

    分享到