下面展示一些 内联代码片

数据库保存数据,类型为List<String> ,字段只需设置为varchar[],然后导入下述类,并在实体类的对应字段位置加上@Type(type = "XX.ListToStringArrayUserType"),这里写保存工具类的包路径
/*** @Author ZGM* @DateTime 2021/8/26* @description*/
public class ListToStringArrayUserType implements UserType, ParameterizedType, Serializable {protected static final int[] SQL_TYPES = {Types.ARRAY};/*** 默认 ArrayList*/private Class listType;@Overridepublic int[] sqlTypes() {return new int[]{Types.ARRAY};}@Overridepublic Class returnedClass() {return listType;}@Overridepublic boolean equals(Object o, Object o1) throws HibernateException {if (o == null) {return o1 == null;}return o.equals(o1);}@Overridepublic int hashCode(Object o) throws HibernateException {return o.hashCode();}@Overridepublic Object nullSafeGet(ResultSet resultSet, String[] strings, SharedSessionContractImplementor sharedSessionContractImplementor, Object o) throws HibernateException, SQLException {if (resultSet.getArray(strings[0]) == null) {return null;}Array array = resultSet.getArray(strings[0]);List<String> result = newList();String[] javaArray = (String[]) array.getArray();result.addAll(Arrays.asList(javaArray));return result;}@Overridepublic void nullSafeSet(PreparedStatement preparedStatement, Object o, int i, SharedSessionContractImplementor sharedSessionContractImplementor) throws HibernateException, SQLException {Connection connection = preparedStatement.getConnection();if (o == null) {preparedStatement.setNull(i, SQL_TYPES[12]);} else {List castObject = (List) o;Object[] intArr = castObject.toArray();Array array = connection.createArrayOf("VARCHAR", intArr);preparedStatement.setArray(i, array);}}@Overridepublic Object deepCopy(Object o) throws HibernateException {if (o == null) return null;List copyList = newList();copyList.addAll((List) o);return copyList;}@Overridepublic boolean isMutable() {return true;}@Override@SuppressWarnings("unchecked")public Serializable disassemble(Object o) throws HibernateException {return ((Serializable) o);}@Overridepublic Object assemble(Serializable serializable, Object o) throws HibernateException {return serializable;}@Overridepublic Object replace(Object o, Object o1, Object o2) throws HibernateException {return o;}@Overridepublic void setParameterValues(Properties properties) {String listType = (String) properties.get("listType");if (!Strings.isNullOrEmpty(listType)) {try {this.listType = Class.forName(listType);} catch (ClassNotFoundException e) {throw new HibernateException(e);}} else {this.listType = java.util.ArrayList.class;}}private List newList() {try {return (List) listType.newInstance();} catch (Exception e) {throw new HibernateException(e);}}
}

数据库保存数据,类型为List<String>相关推荐

  1. c#窗体点餐系统 使用sql server 数据库保存数据

    c#窗体点餐系统 使用sql server 数据库保存数据 登录界面 using System; using System.Collections.Generic; using System.Comp ...

  2. access数据库为什么一直登陆_为什么要养成用Access数据库保存数据的习惯?

    我是宇哥,专门教数据库的,学办公软件的女同学没有不认识我的. 一.今天强调一下:为什么要养成用标准数据库保存数据的习惯- 其实制造业企业,都更倾向于用Access数据库保存日常数据,尤其是一些高端制造 ...

  3. mysql的代码需要保存吗_php向Mysql数据库保存数据的代码

    php向Mysql数据库保存数据的代码 PHP如何向MySQL数据库中写入数据你知道吗?你对PHP向MySQL数据库中写入数据了解吗?下面是小编为大家带来的php向Mysql数据库保存数据的`代码,欢 ...

  4. MyBatis映射文件如何给数据库的int类型字段“插入”string类型记录

    MyBatis映射文件如何给数据库的int类型字段"插入"string类型记录. 数据库中对应字段名称和类型如下: 给数据库的int类型字段"插入"string ...

  5. Android sqlite 数据库保存Date 类型

    2019独角兽企业重金招聘Python工程师标准>>> 在sqlite 中所有字段是在数据库中不管是integer 还是text 类型, 都保存为text 类型, 所以在插入的时候2 ...

  6. hibernate一对多向数据库保存数据失败问题解决

    先贴出报错内容 一月 05, 2019 10:01:14 下午 org.hibernate.util.JDBCExceptionReporter logExceptions 警告: SQL Error ...

  7. 保存数据时报:Incorrect string value: '\xF0\x9F\x91\x8D' for column 'f_char_name' at row 1

    是数据库表的字段的字符编码设置有问题,需要设置成下面这种字符格式: 而不是:

  8. mysql java datetime_Java向mysql数据库插入datetime类型数据实例(精)

    在Mysql数据库中日期跟时间有两种: 1.date类型,date类型也就是我们常见的储存yyyy-MM-dd类型的日期,它不能储存时间,也就是只能储存日期, 2.dateitme就是可以储存日期同时 ...

  9. mysql blob 存储乱码_mysql 保存 blob 类型数据 乱码 解决

    本人问题:mysql 保存 blob 类型数据 乱码 解决 未解决,??? 之前 private string  archiveValue;导致 写入的进去之后的中文 都是乱码 改正后 ,即可 pri ...

最新文章

  1. SAP S4HANA Buiness Partner名词解析
  2. 不契合市场,Bitcoin SV愿景未必是给矿工的一个好选择
  3. sklearn之pipeline:sklearn.pipeline函数使用及其参数解释之详细攻略
  4. Linux驱动编程 step-by-step (十一)
  5. 0406复利计算5.0--结对
  6. 服务器能否只做c盘系统,我的云服务器只有一个c盘
  7. python标准库(一)
  8. 挑战Textarea——把textarea中的HTML写入数据库
  9. 将摄像头拍摄图像或者本地图片设置为头像的方法
  10. 段错误 php,如何解决php扩展出现段错误的问题
  11. java中bitconverter_【Java】BitConverter(数字转字节数组工具类)
  12. python之random.shuffle
  13. 【LeetCode】【字符串】题号:*125. 验证回文串
  14. oracle12c如何完全卸载_如何卸载oracle12c
  15. 14 ABSOLUTE评估肿瘤纯度
  16. 【LeetCode】图解 904. 水果成篮
  17. NLP篇【02】白话Word2vec原理以及层softmax、负采样的实现
  18. Learning C++ No.14【STL No.4】
  19. SSH2.0编程 ssh协议过程实现(转)
  20. 生活总结[置顶] 程序员的奋斗史(十八)——人活着,只是一种态度

热门文章

  1. txt电子书如何用Windows电脑阅读?
  2. 帧服务器支持会声会影哪个版本,会声会影哪个版本好用
  3. UDT 最新源码分析(三) -- UDT Socket 相关函数
  4. STM32 汇编程序——串口输出 Hello world
  5. ie8下实现预览pdf
  6. 安卓:Day5 列表视图
  7. Linux Shell脚本语句执行失败,后续语句继续执行的问题
  8. Zhong__CentOS7安装Elasticsearch笔记
  9. 宝塔linux面板和centOS的区别,AMH面板和宝塔linux面板哪个好
  10. 数学名词:调和平均数