`
ssxxjjii
  • 浏览: 950935 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

MyBatis 3 自动生成 主键 针对不同的数据库(oracle/sqlserver/mysql)

 
阅读更多

MyBatis自动生成的主键很多数据库支持自动生成主键的数据类型。不过这通常(并不总是)是个私有的特性。SQL Map 通过<insert>的子元素<selectKey>来支持自动生成的键值。它同时支持预生成(如Oracle)和后生成两种类 型(如 MS-SQL Server MySQL)。

一、Oracle设置

复制代码
<insert id="saveUserInfo" parameterType="UserInfo">
        <selectKey resultType="int"  keyProperty="userId" order="BEFORE">   
            <![CDATA[SELECT SEQ_COMMON.NEXTVAL AS ID FROM DUAL]]>   
          </selectKey>
        <![CDATA[insert into userinfo(userId,userName,phone,age,birthday,remark) 
        values(#{userId},#{userName},#{phone},#{age},#{birthday},#{remark})]]>
    </insert>
复制代码

注意:

1、MyBatis3已使用resultType ,resultClass是会报错的!

2、order="BEFORE" 上,这个必须要写明,生成序列在之前。在ibatis中使用type="pro" ,但在MyBatis3中必须使用order否则报错!

3、selectKey中的 keyProperty 要和 insert into中的 插入的参数 要一致 keyProperty="userId"  如: insert into userinfo (userId) VALUES (#{userId}) 

注意以上三点就OK了。

二、mysql设置

  <insert id="saveUserInfo" parameterType="UserInfo"  useGeneratedKeys="true"   keyProperty="id">
        insert into
        userinfo(userName,phone,age,birthday,remark)
        values(#{userName},#{phone},#{age},#{birthday},#{remark})  
   </insert>

mysql就简单了!

三、MS-SQL配置(本人没有测试过!)

复制代码
<!-- Microsoft SQL Server IDENTITY Column 改进-->   
<insertid="insertProduct-MS-SQL"parameterClass="com.domain.Product">   
    <selectKeyresultClass="int"keyProperty="id">   
        <![CDATA[insert into PRODUCT (PRD_DESCRIPTION) values(#description#)
         SELECT SCOPE_IDENTITY() AS ID ]]>  
    </selectKey>   
</insert>
复制代码

 

分享到:
评论

相关推荐

    mybatis自动生成实例支持oracle和MySQL

    在"mybatis自动生成实例支持oracle和MySQL"的场景中,我们可以理解为该压缩包包含了一个能够帮助开发者自动生成针对Oracle和MySQL数据库的相关代码的工具或教程。 1. **MyBatis自动化工具**: MyBatis Generator ...

    mybatis_generator生成含中文注释model( 整合了mysql、oracle、sqlserver的配置和相关jar)

    在这个特定的压缩包文件中,我们看到它已经集成了MySQL、Oracle和SQL Server三种主流数据库的配置,以及相关的JAR库,使得开发者无需单独配置就能方便地为这三种数据库生成含中文注释的Model类。 首先,让我们详细...

    MyBatis主键自动生成方法.pdf

    在MyBatis中,主键自动生成是一种常见且实用的功能,尤其在与支持自动增加主键的数据库(如MySQL)配合使用时。当我们在插入数据时,有时希望数据库能够自动为新记录生成唯一的主键值,而不是手动指定。MyBatis提供...

    SpringBoot集成MyBatis-Plus实现国产数据库适配.docx

    * 分页插件支持多种数据库:支持 MySQL、MariaDB、Oracle、DB2、H2、HSQL、SQLite、Postgre、SQLServer 等多种数据库 * 内置性能分析插件:可输出 Sql 语句以及其执行时间,建议开发测试时启用该功能,能快速揪出慢...

    mybatis-generator 代码自动生成工具

    MBG支持多种数据库,包括MySQL、Oracle、SQL Server等,因此可以根据实际使用的数据库进行相应配置。 MBG提供了多种定制选项,例如可以设置Java字段的命名策略,可以选择是否生成Example类用于复杂查询,还可以控制...

    mybatis自动生成代码依赖包.rar

    Mybatis Generator的使用不仅限于MySQL,它还支持其他主流的关系型数据库,如Oracle、SQL Server等。通过灵活配置,你可以根据项目的实际需求定制代码生成规则,使得开发更加高效和规范。同时,它还可以集成到构建...

    SQL Server导入MySQL.zip

    5. **处理索引和约束**:SQL Server和MySQL对索引和约束的实现有所不同,比如主键和唯一性约束。在MySQL中,可能需要重新创建这些约束,以保持数据的一致性和完整性。 6. **测试和验证**:迁移完成后,务必进行详尽...

    mybatis-generator 代码自动生成工具---内有详细介绍

    6. **兼容性**:MBG支持多种数据库,如MySQL、Oracle、SQL Server等,同时也支持MyBatis 3.x版本。 7. **增量更新**:MBG提供了增量更新的功能,当数据库表结构发生变化时,只需要重新运行MBG,它会自动识别变化并...

    mysql sqlserver orcle 数据库操作

    在Oracle数据库中,设置主键的过程与MySQL略有不同,一般会使用`ALTER TABLE`配合`ADD CONSTRAINT`,如`ALTER TABLE course_info ADD CONSTRAINT pk_course_info PRIMARY KEY (id)`。Oracle不支持直接在表定义中设置...

    mybatis自动生成代码工具,内有2个jar包,一个配置文件

    MBG支持多种数据库,如MySQL、Oracle、SQL Server等,具有高度的可定制性,允许用户根据项目需求调整生成的代码模板。 压缩包中的两个jar文件分别对应MyBatis Generator的核心库和运行时依赖。核心库包含了MBG的...

    mybatis自动生成表的配置文件

    MBG支持多种数据库,如MySQL、Oracle、SQL Server等。 2. **配置文件** 标题中的“mybatis自动生成表的配置文件”指的是MBG的主配置文件,通常命名为`generatorConfig.xml`。这个文件定义了MBG如何连接到数据库、...

    mybatis-plus代码生成器的两种方式.zip

    CodeGenerator是Mybatis-Plus提供的一个通用代码生成器,它不仅支持MySQL,还支持其他多种数据库,如Oracle、SQLServer等。与MysqlGenerator相比,CodeGenerator更加灵活,它允许开发者通过配置文件定义生成代码的...

    eclipse插件mybatis逆向生成插件MyBatis Generator

    MyBatis Generator支持多种数据库,如MySQL、Oracle、SQL Server等,可以根据实际的数据库类型调整配置。同时,MBG提供了丰富的定制选项,可以通过修改配置文件中的属性来控制生成的代码风格,如是否生成注释、是否...

    mybatis-generator 代码生成 , 源码132

    同时,MBG还支持多种数据库类型,如MySQL、Oracle、SQL Server等,具有很好的兼容性。 了解并掌握MyBatis Generator,可以提升Java开发效率,减少手动编写重复代码的工作量,使开发者更专注于业务逻辑的实现。通过...

    Oracle主键自增的办法

    在 Oracle 数据库中,与许多其他关系型数据库系统不同,它并没有内置的自动自增字段类型,例如 MySQL 的 `AUTO_INCREMENT` 或 SQL Server 的 `IDENTITY`。但是,Oracle 提供了序列(Sequences)和触发器(Triggers)...

    mybatis模板生成工具

    6. **支持多种数据库**:MBG 支持多种主流数据库,如 MySQL、Oracle、SQL Server 等,只需在配置文件中指定数据库连接参数即可。 **使用步骤:** 1. **引入依赖**:将 mybatis-generator-core-2.0.5 包加入项目...

    自动根据数据库生成JAVA BEAN和DAO

    自动根据数据库生成Java Bean和DAO的过程,通常涉及到以下步骤: 1. 配置数据库连接信息:这包括数据库类型(如MySQL、Oracle、SQL Server等)、服务器地址、端口号、数据库名、用户名和密码等。这些信息会被用来...

    mybatis代码生成工具

    - 数据库兼容性:MBG支持多种主流数据库,如MySQL、Oracle、SQL Server等,但需要确保配置文件中的JDBC驱动与所使用的数据库版本匹配。 - 表前缀处理:如果数据库表有统一的前缀,可以通过配置文件设置去除前缀,...

    mybatis分页插件源码

    MyBatis分页插件的工作原理是动态插入SQL,它会在执行查询语句之前,根据数据库类型(如MySQL或Oracle)动态生成合适的分页SQL。例如,对于MySQL,它会将原SQL语句转换为带有LIMIT和OFFSET的分页SQL;对于Oracle,...

    MyBatis逆向工具

    8. **兼容性**:MyBatis逆向工具通常与主流的数据库如MySQL、Oracle、SQL Server等兼容,适应不同项目环境。 9. **扩展性**:除了基本的映射文件生成,该工具可能还支持复杂的SQL生成,如自定义的关联查询、分页...

Global site tag (gtag.js) - Google Analytics