2023年6月21日发(作者:)
mysql枚举类型jdbc_SpringBootJdbcTemplate插⼊枚举类型⽅法⼀registerSqlType:适⽤于数据库存放的是字符串类型,枚举类型为单纯字段的。枚举类public enum PostStatus {AUDITING,AUDIT_PASS,AUDIT_FAILED,DELETED}具体实现@Autowiredprivate NamedParameterJdbcTemplate namedParameterJdbcTemplate;public void insertRecord(Post post) {String sql = ...BeanPropertySqlParameterSource paramSource = new BeanPropertySqlParameterSource(post);//PostStatus枚举类对应数据库字段是erSqlType("status", R);int result = (sql, paramSource);}⽅法⼆重写BeanPropertySqlParameterSource的getValue⽅法,当参数类型是枚举时返回枚举类对应的int值。枚举类@Getter@AllArgsConstructorpublic enum TaskStatus {WAITING((short) 0, "等待"),SUCCESS((short) 1, "成功"),FAILED((short) 2, "失败"),DELETED((short) 3, "已删除");private short code;private String label;}具体实现@Autowiredprivate NamedParameterJdbcTemplate namedParameterJdbcTemplate;public void insertRecord(Post post) {String sql = ...BeanPropertySqlParameterSource paramSource = new BeanPropertySqlParameterSource(post) {@Overridepublic Object getValue(String paramName) throws IllegalArgumentException {Object value = ue(paramName);if (value instanceof Enum) {return ((Enum) value).ordinal();}return value;}};int result = (sql, paramSource);}
2023年6月21日发(作者:)
mysql枚举类型jdbc_SpringBootJdbcTemplate插⼊枚举类型⽅法⼀registerSqlType:适⽤于数据库存放的是字符串类型,枚举类型为单纯字段的。枚举类public enum PostStatus {AUDITING,AUDIT_PASS,AUDIT_FAILED,DELETED}具体实现@Autowiredprivate NamedParameterJdbcTemplate namedParameterJdbcTemplate;public void insertRecord(Post post) {String sql = ...BeanPropertySqlParameterSource paramSource = new BeanPropertySqlParameterSource(post);//PostStatus枚举类对应数据库字段是erSqlType("status", R);int result = (sql, paramSource);}⽅法⼆重写BeanPropertySqlParameterSource的getValue⽅法,当参数类型是枚举时返回枚举类对应的int值。枚举类@Getter@AllArgsConstructorpublic enum TaskStatus {WAITING((short) 0, "等待"),SUCCESS((short) 1, "成功"),FAILED((short) 2, "失败"),DELETED((short) 3, "已删除");private short code;private String label;}具体实现@Autowiredprivate NamedParameterJdbcTemplate namedParameterJdbcTemplate;public void insertRecord(Post post) {String sql = ...BeanPropertySqlParameterSource paramSource = new BeanPropertySqlParameterSource(post) {@Overridepublic Object getValue(String paramName) throws IllegalArgumentException {Object value = ue(paramName);if (value instanceof Enum) {return ((Enum) value).ordinal();}return value;}};int result = (sql, paramSource);}
发布评论