mybatis⾃定义传⼊参数类型(TypeHandler)mybatis ⾃定义传⼊参数类型(TypeHandler)
关于处理model中list属性,要将list中的值转化为string存储到数据库中, java:List 数据库:varchar
Model中的属性是
private List protectedList;
Mysql数据库存储为:varchar(2000)
在⾃定义的typeHandler中定义⽅法
public class ListTypeHandler implements TypeHandler<List> {
@Override
public List<ProtectedBO> getResult(ResultSet rs, String column) throws SQLException {
String protectedListValue = rs.getString(column);
return protectedListValue == null ? null
:
new Gson().fromJson(protectedListValue, new TypeToken<List<ProtectedBO>>() {
}.getType());
}
@Override
public List<ProtectedBO> getResult(ResultSet rs, int index) throws SQLException {
String protectedListValue = rs.getString(index);
return protectedListValue == null ? null
: new Gson().fromJson(protectedListValue, new TypeToken<List<ProtectedBO>>() {
}.getType());
}
@Override
parameter数据类型
public List<ProtectedBO> getResult(CallableStatement cs, int index) throws SQLException {
String protectedListValue = cs.getString(index);
return protectedListValue == null ? null
: new Gson().fromJson(protectedListValue, new TypeToken<List<ProtectedBO>>() {
}.getType());
}
@Override
public void setParameter(PreparedStatement ps, int index, List<ProtectedBO> protectedList, JdbcType jdbcType)
throws SQLException {
if (null == protectedList || protectedList.size() == 0 || protectedList.isEmpty()) {
ps.setNull(index, Types.VARCHAR);
} else {
ps.setString(index, new Gson().toJson(protectedList));
}
}
l的添加或者编辑⽅法

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。