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

大丰企业做网站多少钱网站收录大量下降

大丰企业做网站多少钱,网站收录大量下降,网页设计制作网站总结,wordpress仿朋友圈MyBatis 在处理数据库查询结果或传递参数时#xff0c;需要将数据库类型与 Java 类型之间进行转换。MyBatis 提供了多种方式来实现这种类型转换#xff0c;主要通过内置的 TypeHandler#xff08;类型处理器#xff09;机制。 1. TypeHandler 的作用 TypeHandler 是 MyBat… MyBatis 在处理数据库查询结果或传递参数时需要将数据库类型与 Java 类型之间进行转换。MyBatis 提供了多种方式来实现这种类型转换主要通过内置的 TypeHandler类型处理器机制。 1. TypeHandler 的作用 TypeHandler 是 MyBatis 中的一个接口用于在 Java 类型和 JDBC 类型之间进行转换。每当 MyBatis 需要将 Java 对象传递给 SQL 语句或者从 SQL 查询结果中获取数据并转换为 Java 对象时都会使用 TypeHandler。 TypeHandler 负责以下两种类型的转换 Java 类型到 JDBC 类型的转换当 MyBatis 需要将 Java 对象作为参数传递给 SQL 语句时TypeHandler 会将 Java 类型转换为 JDBC 类型。 JDBC 类型到 Java 类型的转换当 MyBatis 从数据库中获取数据时TypeHandler 会将 JDBC 类型转换为 Java 类型。 2. 内置的 TypeHandler MyBatis 提供了许多内置的 TypeHandler可以处理常见的 Java 类型和 JDBC 类型之间的转换。以下是一些常见的内置 TypeHandler IntegerTypeHandler用于将 int 和 Integer 转换为数据库中的 INTEGER 类型。 StringTypeHandler用于将 String 转换为数据库中的 VARCHAR 类型。 DateTypeHandler用于将 java.util.Date 转换为数据库中的 DATE 类型。 BooleanTypeHandler用于将 boolean 和 Boolean 转换为数据库中的 BIT 或 BOOLEAN 类型。 这些内置的 TypeHandler 在绝大多数情况下能够满足开发者的需求。MyBatis 会自动选择合适的 TypeHandler 来处理常见的数据类型。 3. 自定义 TypeHandler 有时应用程序中可能需要处理一些自定义的数据类型或者需要对现有的类型转换进行定制。此时可以通过实现 TypeHandler 接口来自定义类型处理器。 3.1. 实现 TypeHandler 接口 要创建一个自定义的 TypeHandler你需要实现 org.apache.ibatis.type.TypeHandler 接口。这个接口有四个方法 setParameter(PreparedStatement ps, int i, T parameter, JdbcType jdbcType)将 Java 类型的数据设置到 PreparedStatement 中作为 SQL 语句的参数。 getResult(ResultSet rs, String columnName)从 ResultSet 中通过列名获取数据并将其转换为 Java 类型。 getResult(ResultSet rs, int columnIndex)从 ResultSet 中通过列索引获取数据并将其转换为 Java 类型。 getResult(CallableStatement cs, int columnIndex)从 CallableStatement 中获取数据并将其转换为 Java 类型用于处理存储过程的输出参数。 3.2. 自定义 TypeHandler 示例 假设你有一个枚举类 Gender它表示用户的性别。数据库中性别使用 CHAR 类型存储值为 M 或 F而在 Java 中使用枚举来表示 public enum Gender {MALE, FEMALE } 你可以创建一个自定义的 TypeHandler用于将 CHAR 类型的数据库值转换为 Gender 枚举并反向转换 import org.apache.ibatis.type.BaseTypeHandler; import org.apache.ibatis.type.JdbcType; import java.sql.*; ​ public class GenderTypeHandler extends BaseTypeHandlerGender { ​Overridepublic void setNonNullParameter(PreparedStatement ps, int i, Gender gender, JdbcType jdbcType) throws SQLException {ps.setString(i, gender Gender.MALE ? M : F);} ​Overridepublic Gender getNullableResult(ResultSet rs, String columnName) throws SQLException {String gender rs.getString(columnName);return gender ! null gender.equals(M) ? Gender.MALE : Gender.FEMALE;} ​Overridepublic Gender getNullableResult(ResultSet rs, int columnIndex) throws SQLException {String gender rs.getString(columnIndex);return gender ! null gender.equals(M) ? Gender.MALE : Gender.FEMALE;} ​Overridepublic Gender getNullableResult(CallableStatement cs, int columnIndex) throws SQLException {String gender cs.getString(columnIndex);return gender ! null gender.equals(M) ? Gender.MALE : Gender.FEMALE;} } 3.3. 注册自定义 TypeHandler 你可以通过两种方式将自定义的 TypeHandler 注册到 MyBatis 在 MyBatis 配置文件中注册 typeHandlerstypeHandler handlercom.example.GenderTypeHandler javaTypecom.example.Gender/ /typeHandlers 通过注解注册 如果你使用 MyBatis 的 Mapper 注解可以在字段或方法上直接使用 TypeHandler 注解 Select(SELECT id, name, gender FROM users WHERE id #{id}) Results({Result(property gender, column gender, typeHandler GenderTypeHandler.class) }) User selectUserById(int id); 4. 全局和局部 TypeHandler 全局 TypeHandler可以通过在 MyBatis 配置文件中注册自定义 TypeHandler或者使用 MappedTypes 注解将自定义 TypeHandler 绑定到特定的 Java 类型。MyBatis 会自动在需要时使用这些全局 TypeHandler。 局部 TypeHandler在特定的 SQL 映射文件或注解中指定 TypeHandler。这种方式仅在指定的地方生效不会影响全局行为。 5. 总结 内置 TypeHandlerMyBatis 提供了多种内置的 TypeHandler用于处理常见的 Java 类型和数据库类型之间的转换。 自定义 TypeHandler当内置的 TypeHandler 不能满足需求时可以通过实现 TypeHandler 接口或扩展 BaseTypeHandler 类来自定义类型处理器并在 MyBatis 中注册使用。 注册与使用自定义的 TypeHandler 可以全局注册也可以在特定的映射文件或注解中局部使用灵活处理复杂的类型转换需求。 通过使用 TypeHandlerMyBatis 能够灵活且高效地处理 Java 类型和数据库类型之间的转换满足各种应用场景的需求。
http://www.pierceye.com/news/854659/

相关文章:

  • 简单的做图网站wordpress加密授权
  • 哪里做网站域名不用备案新华舆情监测平台
  • 品牌工厂网站建设qt 网站开发
  • xxx网站建设规划家庭服务网站的营销策略
  • 哪里可以做宝盈网站江门百度seo公司
  • 电子商务的网站建设名词解释如何建立官网
  • 网站建设维护外包群排名优化软件
  • 苏州专业建设网站镇江网站建设找思创网络
  • 长春网站排名提升seo关键词推广多少钱
  • 头条网站怎么做的在网站上放广告
  • 网站建设费的会计分录wordpress c博客
  • 网站开发语言字典使用apmserv本地搭建多个网站
  • 建网站费用记账北京时间网站建设
  • 兴化网站开发佛山营销网站建设联系方式
  • 安居客官网网站天津 网站设计制作公司
  • seo建站优化价格表中山网站建设品牌
  • wp网站源码聊城市住房和城乡建设局网站首页
  • 个人博客网站总结买东西的网站
  • 兰州新区小程序建站网站的漂浮广告怎么做
  • 用vs代码做网站线上拓客渠道有哪些
  • 微信网站界面如何免费创建自己的平台
  • 电商设计一般都是做什么潍坊网站seo外包
  • 大城怎么样做网站雄安建设工程信息网站
  • 郑州网站建设方案服务安全狗iis版删了以后 网站打不开
  • 忻州网站制作jsp小型网站开发代码
  • 如何外贸网站推广wordpress默认主题哪个好
  • 设计网站推荐提升审美网站建设的公司
  • 张浦专业做网站网站建设案例百度云
  • 佛山网站如何制作网站建设公司哪家强
  • 韩城市网站建设编程培训机构加盟哪家好