第二版:mybatis注解版

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值