1.整体目录
(只展示一部分代码,其余部分可以去第一版观看)
2.代码:
SysRoleMapper
package com.bai.mybatis.mapper;
import com.bai.mybatis.model.SysRole;
import com.bai.mybatis.provider.PrivilegeProvider;
import org.apache.ibatis.annotations.*;
import java.util.List;
public interface SysRoleMapper {
/**
* 根据Id 查询角色
* @param id
* @return
*/
// @Select("select id,role_name,enabled,create_by,create_time from sys_role where id=#{id}")
@Select("select * from sys_role where id=#{id}")
SysRole selecrRoleById(Long id);
/**
* 查询所有角色
* @return
*/
@Select("select * from sys_role ")
List<SysRole> selectAll();
/**
* 插入一条记录 ,不返回自增主键
* @param role
* @return
*/
@Insert("INSERT INTO `sys_role` " +
"( `role_name`, `enabled`, `create_by`, `create_time`)" +
" VALUES ( #{roleName}, #{enabled}, #{createBy}, #{createTime});")
int insertRole(SysRole role);
/**
* 插入一条记录 ,返回自增主键 适用于omysql等 自增主键的数据库
* @param role
* @return
*/
@Insert("INSERT INTO `sys_role` " +
"( `role_name`, `enabled`, `create_by`, `create_time`)" +
" VALUES ( #{roleName}, #{enabled}, #{createBy}, #{createTime});")
//设置useGeneratedKeys设置true后,mybatis会使用jdbc的getGeneratedKeys方法来取出由数据库内部生成的主键。
//这里的列的值和keyProperty配置的属性一一对应,由于要使用数据库返回的主键值,所以SQL上下两部分的列中去掉了id列和对应的#{id}属性
@Options(useGeneratedKeys = true, keyProperty = "id")
int insertRole2(SysRole role);
/**
* 插入一条记录 ,返回自增主键 适用于oracle等 无自增主键的数据库
* @param role
* @return
*/
@Insert("INSERT INTO `sys_role` " +
"( `role_name`, `enabled`, `create_by`, `create_time`)" +
" VALUES ( #{roleName}, #{enabled}, #{createBy}, #{createTime});")
@SelectKey(statement = " SELECT LAST_INSERT_ID()", keyProperty = "id",
resultType = Long.class, before = false)
//before=false 等同于order=AFTER bsfore=true 等同于order=BFRORE
//详细解释可以查看xml配置一类方法下的解释
int insertRole3(SysRole role);
@SelectProvider(type = PrivilegeProvider.class,method = "selectRoleById2")
SysRole selectRoleById2(Long id);
}
PrivilegeProvider
package com.bai.mybatis.provider;
import org.apache.ibatis.jdbc.SQL;
public class PrivilegeProvider {
public String selectRoleById2(final Long id){
return "select * from sys_role where id=#{id}";
}
}
SysRoleMapperTest
package com.bai.mybatis.mapper;
import com.bai.mybatis.model.SysRole;
import org.apache.ibatis.session.SqlSession;
import org.junit.Assert;
import org.junit.Test;
import java.util.Date;
import java.util.List;
public class SysRoleMapperTest extends BaseMapperTest {
@Test
public void selectRoleById(){
SqlSession sqlSession = getSqlSession();
try{
SysRoleMapper sysRoleMapper = sqlSession.getMapper(SysRoleMapper.class);
SysRole sysRole = sysRoleMapper.selecrRoleById(1l);
Assert.assertNotNull(sysRole);
System.out.println(sysRole.toString());
}finally {
sqlSession.close();
}
}
@Test
public void selectAll(){
SqlSession sqlSession = getSqlSession();
try{
SysRoleMapper sysRoleMapper = sqlSession.getMapper(SysRoleMapper.class);
List<SysRole> sysRoleList = sysRoleMapper.selectAll();
Assert.assertNotNull(sysRoleList);
for (int i = 0; i <sysRoleList.size() ; i++) {
System.out.println(sysRoleList.get(i).toString());
}
}finally {
sqlSession.close();
}
}
@Test
public void insertRole(){
SqlSession sqlSession = getSqlSession();
try{
SysRoleMapper sysRoleMapper = sqlSession.getMapper(SysRoleMapper.class);
SysRole sysRole = new SysRole();
sysRole.setRoleName("哈哈哈、");
sysRole.setCreateBy(2l);
sysRole.setCreateTime(new Date());
sysRole.setEnabled(1);
int result =sysRoleMapper.insertRole(sysRole);
Assert.assertNotNull(result);
}finally {
sqlSession.rollback();
sqlSession.close();
}
}
@Test
public void insertRole2(){
SqlSession sqlSession = getSqlSession();
try{
SysRoleMapper sysRoleMapper = sqlSession.getMapper(SysRoleMapper.class);
SysRole sysRole = new SysRole();
sysRole.setRoleName("哈哈哈、");
sysRole.setCreateBy(2l);
sysRole.setCreateTime(new Date());
sysRole.setEnabled(1);
// int result =sysRoleMapper.insertRole2(sysRole);
int result =sysRoleMapper.insertRole3(sysRole);
Assert.assertNotNull(result);
System.out.println(sysRole.getId());
}finally {
sqlSession.rollback();
sqlSession.close();
}
}
@Test
public void selectRoleById2(){
SqlSession sqlSession = getSqlSession();
try{
SysRoleMapper sysRoleMapper = sqlSession.getMapper(SysRoleMapper.class);
SysRole sysRole = sysRoleMapper.selectRoleById2(2l);
System.out.println(sysRole.toString());
}finally {
sqlSession.close();
}
}
}
3.百度网盘地址:
链接:https://pan.baidu.com/s/1RU3ICCwqT498mgS-44DkWQ
提取码:gdy5