MyBatis中使用实体中使用枚举,数据库中使用数值

一、简介

  本文主要讲MyBatis中使用实体中使用枚举,数据库中使用数值的解决方案。正常直接使用会报错,需要添加typeHandlers在mybatis-config.xml中。

二、解决方案

  如下:千万注意configuration中typeHandlers和其它节点之间的放置顺序。否则会出错。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<!--配置  -->
<configuration>
    <!--枚举处理-->
    <typeHandlers>
        <typeHandler handler="org.apache.ibatis.type.EnumOrdinalTypeHandler" javaType="com.test.domain.enums.EffectAppEnum"/>
        <typeHandler handler="org.apache.ibatis.type.EnumOrdinalTypeHandler" javaType="com.test.domain.enums.ModuleEnum"/>
        <typeHandler handler="org.apache.ibatis.type.EnumOrdinalTypeHandler" javaType="com.test.domain.enums.ReplaceModeEnum"/>
        <typeHandler handler="org.apache.ibatis.type.EnumOrdinalTypeHandler" javaType="com.test.domain.enums.TriggerTypeEnum"/>
    </typeHandlers>

    <!--配置环境  -->
    <environments default="development">
        <environment id="development">
            <!--事务管理  -->
            <transactionManager type="JDBC"/>
            <!--数据源 通过Properties加载配置 -->
            <dataSource type="POOLED">
                <!--驱动driver  -->
                <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
                <!--连接URL  -->
                <property name="url" value="jdbc:mysql://127.0.0.1:3306/testdb?characterEncoding=utf8&amp;useUnicode=true&amp;useSSL=false&amp;serverTimezone=Asia/Shanghai&amp;allowMultiQueries=true"/>
                <!--用户名  -->
                <property name="username" value="root"/>
                <!--密码  -->
                <property name="password" value="1234567"/>
            </dataSource>
        </environment>
    </environments>
    <!--建立映射  -->
    <mappers>
        <mapper resource="mappers/InitMapper.xml"/>
    </mappers>
</configuration>

原文地址:https://www.cnblogs.com/songxingzhu/p/10457398.html

时间: 2024-08-15 01:07:45

MyBatis中使用实体中使用枚举,数据库中使用数值的相关文章

关于mybatis中的实体类属性与数据库中的列名不一致的两种解决方法

1.我们都知道,在mybatis中写实体类的时候,是按照数据库中的列名来给实体类定义属性的,举个例子: public class User implements Serializable { private Integer id; private String username; private String address; private String sex; private Date birthday; } 2.但是,如果我们在定义实体类的时候,实体类中的属性与数据库列名不一致呢?比如:

《Entity Framework 6 Recipes》中文翻译系列 (20) -----第四章 ASP.NET MVC中使用实体框架之在MVC中构建一个CRUD示例

翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 第四章  ASP.NET MVC中使用实体框架 ASP.NET是一个免费的Web框架,它支持3种不同的技术来创建websites(网站)和Web应用:他们分别是,Web Pages,Web Forms,和MVC.虽然MVC是一种非常流行的,有完整的用于软件开发模式理论的技术,但它在ASP.NET中却是一种新的技术. 目前最新的版本是2012年发布的ASP.NET MVC4.自从2008年发布

Excel中的数据导入到SqlServer数据库中

从SqlServer2008才开始支持导出表结构的和表中的数据,而SqlServer2008以前的数据库只支持导出表结构,有些时候我们可能需要把2008以前的数据库中的数据导出来,这个时候我们可以使用折中的方法,先把数据库导出到Excel中,再把Excel中的数据导入到数据库中(如果两台数据库服务器之间可以互通的话,可以直接建立远程链接进行数据传输,不用如此麻烦), 将SqlServer中的数据导出到Excel中比较简单,这里不再贴图,下面是把Excel中的数据导入到SqlServer中步骤:

C#中使用FileUpload上传图片到SQL数据库中以image类型存储并使用Image控件显示注意事项

当我们需要以数据流存储图片到数据库中(而不是文件路径),需要考虑很多因素,不同的环境决定了采取不同方法. 1.将图片存入数据库.首先,当我们决定使用FileUpload上传图片,需要考虑,FileUpload的功能主要是在客户端选取图片,然后使用FileUpload的SaveAs方法将选取的图片的地址保存到服务器端保存,因为我们使用的数据流存储图片,所以没有必要将图片保存到服务器端. 其次,FileUpload没有像OpenDialog的.Filter方法过滤图片的格式,即实现打开对话框,只能选

SQL中的where条件,在数据库中提取与应用浅析

来源:深入MySQL内核 1        问题描述 一条SQL,在数据库中是如何执行的呢?相信很多人都会对这个问题比较感兴趣.当然,要完整描述一条SQL在数据库中的生命周期,这是一个非常巨大的问题,涵盖了SQL的词法解析.语法解析.权限检查.查询优化.SQL执行等一系列的步骤,简短的篇幅是绝对无能为力的.因此,本文挑选了其中的部分内容,也是我一直都想写的一个内容,做重点介绍: 给定一条SQL,如何提取其中的where条件?where条件中的每个子条件,在SQL执行的过程中有分别起着什么样的作用

Hive中的Order by与关系型数据库中的order by语句的异同点

在Hive中,ORDER BY语句是对查询结果集进行整体的排序,最终将会产生一个reducer进行全局的排序,达到的最终结果是和传统的关系型数据库是一样的. 在数据量非常大的时候,全局排序的单个reducer将会成为性能瓶颈,有可能由于数据量过大而跑不出来结果. Hive中可以设置hive.mapred.mode为strict严格模式,这时候,Hive要求用户必须对order by语句加上limit 条数限制,防止排序数据集过大导致性能瓶颈. 在这里我不提sort by ,distribute

SQL Server中TEXT类型字段值在数据库中追加字符串方法

在数据上我们往往会遇到ntext大文本类型,这种类型如果和 nvarchar类型相加会出现问题,所以有一中方法可以解决这种问题. 使用的sql   函数: TEXTPTR:返回要更新的 text.ntext 或 image 数据的文本指针的值. UPDATETEXT :在适当的位置更改 text.ntext 或 image 列的一部分 WRITETEXT: 来更新和替换整个 text.ntext 或 image 字段 举例: CREATE TABLE [dbo].[aa]( [ID] [int]

excel中十万级数据导入oracle数据库中的几种方法

1.plsql中的ODBC Imported和text imported,可以直接选择文件导入.具体导入操作细节不赘述.大数据量的导入效率不行: 2.sql develop中,选择目标表,右键菜单选择“导入数据”,将excel文件存为cvs格式,浏览选中,根据向导操作.效率比较高! 38万条数据大约14分钟完成导入.

把一个数据库中的数据导入另一个数据库中

use master go -- ============================================= -- Basic Create Database Template -- ============================================= IF EXISTS (SELECT * FROM master..sysdatabases WHERE name = N'lbNorthwind') DROP DATABASE lbNorthwind GO

think PHP提取字符串中的数字,并到数据库中使用in查询所关联表的字段值

/* * 提取数字并去数据库取得相应的分类名 * $strs 需要处理的字符串 * $table 数据表名 * $condition 条件字段 * $field 获取的字段 */ public function extractNumberGetName($strs,$table,$condition,$field){ if(empty($strs)){ return ''; } $patterns = "/\d+/"; preg_match_all($patterns,$strs,$a