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

做网站好比做房子网站开发工作好不好

做网站好比做房子,网站开发工作好不好,成都网站设计说明书,外部调用wordpress函数目录 1、简介 2、DTD 3、typeHandlers 3.1、默认类型处理器 3.2、自定义类型处理器 4、plugins ⭐MyBatis系列①:增删改查 ⭐MyBatis系列②:两种Dao开发方式 ⭐MyBatis系列③:动态SQL 1、简介 MyBatis的核心配置文件(通常命…

目录

1、简介

2、DTD

3、typeHandlers

3.1、默认类型处理器

3.2、自定义类型处理器

4、plugins


⭐MyBatis系列①:增删改查

⭐MyBatis系列②:两种Dao开发方式

⭐MyBatis系列③:动态SQL

1、简介

MyBatis的核心配置文件(通常命名为mybatis-config.xml)是配置MyBatis框架的重要文件之一。

它定义了全局性的设置,包括数据库连接信息、对象关系映射(ORM)设置、插件配置、类型处理器等。

文档声明:

这部分内容是用于声明MyBatis核心配置文件的文档类型定义(DOCTYPE)。它告诉XML解析器如何解释这个XML文件。内容解释如下:

  1. <!DOCTYPE configuration:这部分表示这是一个文档类型声明,指定了文档的类型为configuration,也就是MyBatis的核心配置文件。
  2. PUBLIC "-//mybatis.org//DTD Config 3.0//EN":这是一个标识符,用于指定文档类型的公共标识符(Public Identifier)。在这里,-//mybatis.org//DTD Config 3.0//EN指定了MyBatis配置文件的版本和语言。
  3. "http://mybatis.org/dtd/mybatis-3-config.dtd":这是文档类型定义的系统标识符(System Identifier),它指定了DTD文件的位置。在这个例子中,它指向了MyBatis配置文件的DTD(Document Type Definition)文件的URL。

综合起来,这个文档类型声明告诉XML解析器如何解释这个XML文件,以及该XML文件遵循的DTD规范版本和位置。在这里,它指定了MyBatis核心配置文件的版本为3.0,并且使用MyBatis官方提供的DTD文件进行解析。

2、DTD

这段XML文件是一个DTD(Document Type Definition)文档,用于定义MyBatis的核心配置文件结构和元素的规范。这个DTD文件描述了MyBatis配置文件中可以使用的元素、属性以及它们之间的关系。

这个DTD文件中的注释和标签解释了各个元素的含义、属性和子元素。

元素

描述

configuration

根元素,表示MyBatis的配置信息,包括数据库连接、映射器配置等。

databaseIdProvider

数据库ID提供者元素,用于为不同数据库提供不同的配置。

properties

属性元素,用于设置全局属性,可以从外部资源加载。

property

属性元素,具有name和value属性,用于定义属性的名称和值。

settings

设置元素,用于定义全局设置。

setting

单个设置元素,具有name和value属性。

typeAliases

类型别名元素,用于定义Java类的别名。

typeAlias

类型别名元素,具有type和alias属性,用于定义类型别名。

typeHandlers

类型处理器元素,用于自定义类型处理器。

typeHandler

类型处理器元素,具有javaType、jdbcType和handler属性。

objectFactory

对象工厂元素,用于自定义对象的创建方式。

objectWrapperFactory

对象包装器工厂元素,用于自定义对象包装器。

reflectorFactory

反射器工厂元素,用于自定义反射器。

plugins

插件元素,用于添加插件拦截器。

plugin

插件元素,具有interceptor属性,指定插件拦截器的类名。

environments

数据库环境元素,用于定义事务管理器和数据源。

environment

环境元素,具有id属性,用于定义一个数据库环境。

transactionManager

事务管理器元素,用于定义事务管理器类型。

dataSource

数据源元素,用于定义数据源类型。

mappers

映射器元素,用于定义映射器配置。

mapper

映射器元素,具有resource、url和class属性,用于定义映射器文件的位置。

package

包元素,用于定义Java包。

这个DTD文件描述了MyBatis核心配置文件中可以使用的各种元素和属性,帮助开发者编写符合规范的配置文件。

3、typeHandlers

typeHandlers 是 MyBatis 配置文件中的一个元素,用于自定义处理数据库与 Java 类型之间的转换。

数据库和 Java 类型之间可能存在类型不匹配的情况,比如将数据库中的数字类型映射到 Java 中的枚举类型,或者处理日期时间的转换等。

typeHandlers 允许你编写自定义的类型处理器,以确保正确地在数据库与 Java 之间进行数据转换。

3.1、默认类型处理器

下表描述了一些默认的类型处理器:

类型处理器

对应的Java类型

对应的JDBC类型

BooleanTypeHandler

Boolean

数据库兼容的BOOLEAN

ByteTypeHandler

Byte

数据库兼容的NUMERIC或BYTE

ShortTypeHandler

Short

数据库兼容的NUMERIC或SHORT INTEGER

IntegerTypeHandler

Integer

数据库兼容的NUMERIC或INTEGER

LongTypeHandler

Long

数据库兼容的NUMERIC或LONG INTEGER

StringTypeHandler

String

VARCHAR, CHAR

DateTypeHandler

Date

DATE, TIMESTAMP

EnumTypeHandler

Enum

VARCHAR

ArrayTypeHandler

Array

ARRAY

MapTypeHandler

Map

MAP

ObjectTypeHandler

Object

VARIOUS

3.2、自定义类型处理器

可以重写类型处理器或创建你自己的类型处理器来处理不支持的或非标准的类型。

具体做法为:

实现 org.apache.ibatis.type.TypeHandler 接口,或继承一个很便利的类org.apache.ibatis.type.BaseTypeHandler, 然

后可以选择性地将它映射到一个JDBC类型。

例如需求:一个Java中的Date数据类型,我想将其存到数据库的时候存成一个1970年至今的毫秒数,取出来时转换成java的Date,即java的Date与数据库的varchar毫秒值之间转换

开发步骤:

① 定义转换类继承类BaseTypeHandler<T>

② 覆盖4个未实现的方法:

其中setNonNullParameter为java程序设置数据到数据库的回调方法,getNullableResult为查询时 mysql的字符串类型转换成 java的Type类型的方法

③ 在MyBatis核心配置文件中进行注册

④ 测试转换是否正确

下面是代码实现:

编写转换类,继承BaseTypeHandler<T>,重写方法:

package com.xzl.handle;import org.apache.ibatis.type.BaseTypeHandler;
import org.apache.ibatis.type.JdbcType;import java.sql.CallableStatement;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Date;/*** @author 逐梦苍穹* @date 2023/8/24 23:30* setNonNullParameter为java程序设置数据到数据库的回调方法* getNullableResult为查询时 mysql的字符串类型转换成 java的Type类型的方法* i 是一个整数,表示要设置的参数在 SQL 语句中的位置。* s 表示数据库列名*/
public class DateTypeHandle extends BaseTypeHandler<Date> {@Overridepublic void setNonNullParameter(PreparedStatement preparedStatement, int i, Date date, JdbcType jdbcType) throws SQLException {// 在预处理语句中设置非空参数// 将 Date 类型的数据转换为 long 类型的时间戳,并以字符串形式设置到 PreparedStatement 中preparedStatement.setString(i, date.getTime() + "");}@Overridepublic Date getNullableResult(ResultSet resultSet, String s) throws SQLException {// 从结果集中获取可空结果(根据列名)// 将结果集中的 long 类型的时间戳转换为 Date 类型并返回return new Date(resultSet.getLong(s));}@Overridepublic Date getNullableResult(ResultSet resultSet, int i) throws SQLException {// 从结果集中获取可空结果(根据列索引)// 将结果集中的 long 类型的时间戳转换为 Date 类型并返回return new Date(resultSet.getLong(i));}@Overridepublic Date getNullableResult(CallableStatement callableStatement, int i) throws SQLException {// 从存储过程的调用结果中获取可空结果// 直接获取存储过程的 Date 类型数据并返回return callableStatement.getDate(i);}
}

配置mybatis-config.xml

这一步配置要注意这个标签相对于其他标签的位置顺序,如果标签的相对位置不对,则会出现:

数据库表单和实体类要新增:

测试效果:

首先是测试存入时间戳到数据库中:

结果如下:

然后是测试将数据库中的时间毫秒值取出并且转换为正常的日期类对象:

结果如下:

4plugins

MyBatis可以使用第三方的插件来对功能进行扩展,分页助手PageHelper是将分页的复杂操作进行封装,使用简单的方式即可获得分页的相关数据。

开发步骤:

导入通用PageHelper的坐标

<!-- 分页助手 -->
<dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper</artifactId><version>3.7.5</version>
</dependency>
<!-- sql解析 -->
<dependency><groupId>com.github.jsqlparser</groupId><artifactId>jsqlparser</artifactId><version>0.9.1</version>
</dependency>

在mybatis核心配置文件中配置PageHelper插件

测试分页数据获取

关键代码:PageHelper.startPage(1,3);   表示当前在第一页、展现三条数据

如下:

获得分页相关的其他参数:

测试代码如下:

http://www.yayakq.cn/news/637696/

相关文章:

  • 网站建设 军报做网站用什么工具好
  • 做网站外国的wordpress links插件
  • 天眼查官方网站步骤记录器
  • 网站可以做哪些内容网站问题图片
  • 5千ip的网站能赚多少钱php医疗网站咨询源码
  • wordpress调用百度地图长沙官网seo技术
  • 网站如何做二级域名做网站的相关术语
  • 蓬莱建设局规划处网站建设工程机械鉴定中心官网
  • 站长统计app软件网站开发平均工资
  • 金坛做网站公司怎么建设淘宝客网站
  • 老太太做受网站网站建设合同报价单 模板
  • 宁波网站建设公司哪家比较好荔枝app下载不收费用
  • 网站宣传语整合营销传播策略
  • 为什么网站只能显示ip地址_不能显示域名 wordpressfrontpage做网站怎么样
  • 网站建设多久可以学会莱芜网站建设资情况介绍
  • 自己开发购物网站青岛seo优化
  • api模式网站开发介绍网页设计欣赏
  • 天津中小企业网站制作邮箱网站架构
  • 途牛旅游网站建设方案沈阳专业关键词推广
  • 内部网站建设计划网站打不开建设中哪的问题
  • 网站下载免费新版温州网页设计前端招聘
  • 企业网站搭建多少钱网站后台和移动开发
  • 美食网站开发现状全网搜索关键词查询
  • 最新备案网站查询小米发布会ppt模板
  • 网站域名和网站网址吗单页面网站建设
  • 涂料 网站 源码东营有做网站的公司
  • 做此广告的网站html个人主页模板
  • 花卉网站建设策划方案建设银行网页版登录入口
  • 深圳建网建网站家装公司网站建设网站
  • 京东企业集团网站建设方案怎么用ps做静态网站