springboot mybatis 枚举


mybatis 枚举

 

 

******************

示例

 

************

myenum 层

 

Sex

public enum Sex {
    Male(1,"男"),FeMale(2,"女");

    private Integer id;
    private String name;

    Sex(Integer id,String name){
        this.id=id;
        this.name=name;
    }

    public static Sex getSexById(Integer id){
        for(Sex sex:Sex.values()){
            if(sex.getId().equals(id)){
                return sex;
            }
        }

        return null;
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    @Override
    public String toString() {
        return this.getName();
    }
}

 

************

pojo 层

 

User

@Table(name = "user")
public class User implements Serializable {
    @Id
    @GeneratedValue(generator = "JDBC")
    private Integer id;

    private String name;

    private Integer age;

    private Sex sex;

    。。。。

}

 

************

typeHandler 层

 

MyTypeHandler:枚举转换类

@MappedTypes(Sex.class)
@MappedJdbcTypes(JdbcType.INTEGER)
public class MyTypeHandler implements TypeHandler<Sex> {

    @Override
    public void setParameter(PreparedStatement preparedStatement, int i, Sex sex, JdbcType jdbcType) throws SQLException {
        preparedStatement.setInt(i,sex.getId());
    }

    @Override
    public Sex getResult(ResultSet resultSet, int i) throws SQLException {
        return Sex.getSexById(resultSet.getInt(i));
    }

    @Override
    public Sex getResult(ResultSet resultSet, String s) throws SQLException {
        return Sex.getSexById(resultSet.getInt(s));
    }

    @Override
    public Sex getResult(CallableStatement callableStatement, int i) throws SQLException {
        return Sex.getSexById(callableStatement.getInt(i));
    }
}

 

************

配置文件

 

application.yml:配置扫描枚举包

mybatis:
  type-handlers-package: com.example.demo.typehandler

 

************

controller 层

 

UserController

@RestController
public class UserController {

    @Autowired
    private UserMapper userMapper;

    @RequestMapping("/save")
    public User save(){
        User user=new User();
        
        user.setName("瓜田李下");
        user.setAge(24);
        user.setSex(Sex.FeMale);

        userMapper.insert(user);
        System.out.println(user);
                   //控制台打印输出:12 瓜田李下 24 女

        return user;
    }

    @RequestMapping("/get")
    public User get(){
        return userMapper.selectByPrimaryKey(5);
    }
}

 

 

******************

使用测试

 

                         

 

数据库插入数据

                        

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值