使用TypeHandler实现数据入库前的过滤
来源:互联网 发布:客多宝宠物店软件下载 编辑:程序博客网 时间:2024/04/30 14:01
需求: 数据入库前过滤emoji表情
1.编写typeHandler类
@MappedJdbcTypes({JdbcType.VARCHAR})public class EmojiStringTypeHandler extends StringTypeHandler { @Override public void setNonNullParameter(PreparedStatement ps, int i, String parameter, JdbcType jdbcType) throws SQLException { super.setNonNullParameter(ps, i, StringUtils.filterEmoji(parameter), jdbcType); }}
其中emoji过滤:
public static String filterEmoji(String source) { int len = source.length(); StringBuilder buf = new StringBuilder(len); for (int i = 0; i < len; i++) { char codePoint = source.charAt(i); if (isNotEmojiCharacter(codePoint)) { buf.append(codePoint); } } return buf.toString(); }
private static boolean isNotEmojiCharacter(char codePoint) { return (codePoint == 0x0) || (codePoint == 0x9) || (codePoint == 0xA) || (codePoint == 0xD) || ((codePoint >= 0x20) && (codePoint <= 0xD7FF)) || ((codePoint >= 0xE000) && (codePoint <= 0xFFFD)) || ((codePoint >= 0x10000) && (codePoint <= 0x10FFFF)); }
3.在mapper.xml中,对要过滤的字段进行显式的type声明,如:
INSERT INTO table (
id,
apply_no,
cert_id,
customer_name,
app_remark,
pc_remark
) VALUES (
#{id},
#{applyNo},
#{certId},
#{customerName, jdbcType=VARCHAR},
#{appRemark, jdbcType=VARCHAR},
#{pcRemark, jdbcType=VARCHAR}
)
0 0
- 使用TypeHandler实现数据入库前的过滤
- 新闻内容入库前过滤
- Mabatis typeHandler的使用
- Mybatis TypeHandler的使用
- MERGE INTO 解决数据入库前的去重
- Mybatis中typeHandler的使用
- DWG数据的入库
- Qgis 数据的入库
- Mybatis实现自定义的类型转换器TypeHandler
- Mybatis实现自定义的类型转换器TypeHandler
- SESSION入库的实现
- SESSION入库的实现
- MyBatis系列之TypeHandler的使用
- 实现列表数据的过滤
- 元数据入库的总结
- c#实现的音频入库
- 数据库入库的方式实现
- Greenplum利用gpload,gpfist实现数据入库
- Thinkphp3.2图片上传服务器端接收
- TotoiseSVN的基本使用方法
- JQuery获取当前屏幕的高度宽度的实现代码
- 如何使用strace+pstack利器分析程序性能
- 1049 后序遍历
- 使用TypeHandler实现数据入库前的过滤
- C语言变量存储类型auto,static,extern,static extern,register
- c#学习摘录:类\继承\接口\字段、方法、属性\浅深复制(2)
- 文本自动摘要
- CPSR 程序状态寄存器
- 【idea】智能花盆
- 高盛想要做华尔街的谷歌
- 我是Papi酱,一个集才华与美貌于一身的过气网红
- 什么场景应该用 MongoDB ?