发表于: 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方法。
评论