当前位置: 首页 > news >正文

建设网站注意实现深圳网站建设服务哪家有

建设网站注意实现,深圳网站建设服务哪家有,深圳网络推广案例,oa系统软件1. 问题#xff1a; 假设这么一个场景 localurl里面的值大概这样#xff1a;dwad21.jpg,dwad22.jpg,dwad.23.jpg 是一个字符串 如果我在sql表中有一个字段#xff08;local_url#xff09;是本地图片资源的多个url字符串拼接值。我想在java后端中不进行额外的转换就取值加… 1. 问题 假设这么一个场景 localurl里面的值大概这样dwad21.jpg,dwad22.jpg,dwad.23.jpg 是一个字符串 如果我在sql表中有一个字段local_url是本地图片资源的多个url字符串拼接值。我想在java后端中不进行额外的转换就取值加值。我需要的是里面的dwad21.jpg最好做集合处理。 最好的情况就是使用sql映射到对象的时候就把把字符串变成集合dwad21.jpg,dwad22.jpg,dwad.23.jpg {dwad21.jpg,dwad22.jpg,dwad.23.jpg} 然后使用insert或者update的时候自动把集合变成字符串{dwad21.jpg,dwad22.jpg,dwad.23.jpg} dwad21.jpg,dwad22.jpg,dwad.23.jpg 2. 解决思路 2.1.typehandler官网介绍 主要是对请求数据或者接受数据进行自定义映射处理。 我只能说mybaits非常任性了提供了自定义类型转换器。 mybatis官网配置类型处理器 《------------------------------------------------------------------》 功能MyBatis 在设置预处理语句PreparedStatement中的参数或从结果集中取出一个值时 都会用类型处理器将获取到的值以合适的方式转换成 Java 类型。 下面是常用的数据类型的默认使用的类型处理器。 类型处理器Java 类型JDBC 类型BooleanTypeHandlerjava.lang.Boolean,boolean BOOLEANByteTypeHandlerjava.lang.Byte,byte NUMERIC,BYTEShortTypeHandlerjava.lang.Short, short NUMERIC SMALLINTIntegerTypeHandlerjava.lang.Integer, int NUMERIC INTEGERLongTypeHandlerjava.lang.Long, long NUMERIC BIGINTFloatTypeHandlerjava.lang.Float, float NUMERIC FLOATDoubleTypeHandlerjava.lang.Double, double NUMERIC ,DOUBLEBigDecimalTypeHandlerjava.math.BigDecimal NUMERIC, DECIMALStringTypeHandlerjava.lang.String CHAR, VARCHAR 2.2. 创建自定义handler 你可以重写已有的类型处理器或创建你自己的类型处理器来处理不支持的或非标准的类型。 具体做法为 实现 org.apache.ibatis.type.TypeHandler 接口继承一个很便利的类 org.apache.ibatis.type.BaseTypeHandler 并且可以可选地将它映射到一个 JDBC 类型。比如 在大部分使用场景中mybaitis的默认类型转换器就可以帮助大家的java对象到jdbc对象的转换。 但是我的整的花活显然不是满足。正好mybatis允许我们自定义类转换器。 我们这里使用实现接口的方法进行类型控制器的声明 public class StringToListTypeHandler implements TypeHandlerListString {Overridepublic void setParameter(PreparedStatement ps, int i, ListString parameter, JdbcType jdbcType) throws SQLException {if (parameter ! null) {ps.setString(i, String.join(,, parameter));} else {ps.setNull(i, jdbcType.TYPE_CODE);}}Overridepublic ListString getResult(ResultSet rs, String columnName) throws SQLException {String columnValue rs.getString(columnName);return convertStringToList(columnValue);}Overridepublic ListString getResult(ResultSet rs, int columnIndex) throws SQLException {String columnValue rs.getString(columnIndex);return convertStringToList(columnValue);}Overridepublic ListString getResult(CallableStatement cs, int columnIndex) throws SQLException {String columnValue cs.getString(columnIndex);return convertStringToList(columnValue);}private ListString convertStringToList(String columnValue) {if (columnValue ! null) {return Arrays.asList(columnValue.split(,));} else {return null;}} }setParameter 方法这个方法用于将 Java 对象的参数设置到 PreparedStatement 中通常用于将参数绑定到 SQL 语句中的占位符。在这个示例中它将 List 类型的参数转换为逗号分隔的字符串并设置到 PreparedStatement 中。如果参数为 null它将设置为数据库类型的 null 值。 getResult(ResultSet rs, String columnName)从 ResultSet 对象中获取结果根据列名 columnName 获取对应的列的值。 getResult(ResultSet rs, int columnIndex)从 ResultSet 对象中获取结果根据列索引 columnIndex 获取对应的列的值。 getResult(CallableStatement cs, int columnIndex)从 CallableStatement 对象中获取结果根据列索引 columnIndex 获取对应的列的值。通常这种情况用于从存储过程中获取结果。 一般只实现一个方法即可 2.3. 注册类型转换器 要注意 MyBatis 不会通过检测数据库元信息来决定使用哪种类型所以你必须在参数和结果映射中指明字段是 VARCHAR 类型 typeHandlerstypeHandler handlercom.chen.behindimagesmanage.handler.StringToListTypeHandler javaTypejava.util.Listjava.lang.String jdbcTypeVARCHAR/ /typeHandlers当然这里也可以配置别名如果这里设置了类型在mapper里就可以不用设置了。 2.4. mapper使用类型转换器 mapper xml文件 ?xml version1.0 encodingUTF-8 ? !DOCTYPE mapper PUBLIC -//mybatis.org//DTD Mapper 3.0//EN http://mybatis.org/dtd/mybatis-3-mapper.dtdmapper namespacecom.chen.behindimagesmanage.dao.FileDao!-- 定义一个查询语句 --resultMap idimageMetaDataResultMap typecom.chen.behindimagesmanage.pojo.ImageMetaDataid propertyid columnid /result propertymd5 columnmd5 /result propertyaliyunUrl columnaliyun_url /result propertylocalUrl columnlocal_url typeHandlercom.chen.behindimagesmanage.handler.StringToListTypeHandler /result propertyversion columnversion //resultMapselect idgetAllImg resultTypeimageMetaDataResultMapSELECT * FROM image_metadata/select!-- 定义一个更新语句 --parameterMap idimageMetaDataParamMap typecom.chen.behindimagesmanage.pojo.ImageMetaDataparameter propertyid jdbcTypeINTEGER javaTypejava.lang.Integer modeIN/parameter propertymd5 jdbcTypeVARCHAR javaTypejava.lang.String modeIN/parameter propertyaliyunUrl jdbcTypeVARCHAR javaTypejava.lang.String modeIN/parameter propertylocalUrl typeHandlercom.chen.behindimagesmanage.handler.StringToListTypeHandler/parameter propertyversion jdbcTypeINTEGER javaTypeint modeIN//parameterMapupdate idupdateLocalUrl parameterTypeimageMetaDataParamMapUPDATE image_metadata SET local_url #{imageMetaData.localUrl}, version #{imageMetaData.localUrl} 1 WHERE version #{imageMetaData.localUrl}/update/mapper mapper接口层 Mapper public interface FileDao {/*** 获取所有img归属信息* return 所有归属信息*/ListImageMetaData getAllImg();/*** 更新元数据归属服务器* param imageMetaData 更新的元数据列* return 影响行*/int updateLocalUrl(ImageMetaData imageMetaData); }
http://www.yutouwan.com/news/58397/

相关文章:

  • 济南市建设局网站查房产信息重庆荣昌网站建设费用
  • 昂昂溪网站建设公司网站制作效果怎么样
  • 淮南做网站的公司有哪些百度推广手机客户端
  • 营销型网站建设网站建设营销广州网站建设易企
  • 盐城企业网站制作网络营销做得好的产品
  • 广州三合一网站建设重庆招聘网官网
  • 企业官网网站什么是网站推广优化
  • 做设计网站的工作内容如何建设简单网站
  • 泉州快速建站模板页面有哪几个网站可以做
  • 下拉框代码自做生成网站怎么样自己做最简单的网站
  • 快速网站制作南京一等一网络科技有限公司
  • 学校资源网站建设有啥作用深圳电商平台网站
  • 免费做暧暧网站网站自适应手机转码
  • 重庆建设厅施工员证书查询网站网站备案没公司
  • 碳晶板装修多少钱一平方seo查询 站长工具
  • 济南房产信息网站官网大连网站建设公司排名
  • 晋江做任务的网站北京企业网站案例
  • 买什么样的主机(用来建网站的)支持下载wordpress 编辑自己代码
  • 证书查询甘肃建设网站服务营销7p理论
  • 用html5做课程教学网站深圳前50强网站建设公司
  • 手机电商网站模板建立网站分为几阶段
  • 呼和浩特企业网站建设网校网站毕业设计的方案
  • 游戏网站风控怎么做赶集网官网首页
  • 给教育类做网站中国网库网站介绍
  • 网页制作网站建设公司网站安全建设情况报告
  • 企业网站的设计要求有哪些做百科网站
  • 苏州网站排名优化价格ui网页设计字体
  • 自已做好的网站怎么做后台阜宁网站制作服务商
  • 个人网站建设源代码公司改名字重新备案网站会停吗
  • 城市建设服务中心网站竞价网站模板