2.4.1 简单的insert方法

1.接口类中的方法:

int insert(SysUser sysUser);

2.映射文件中的修改:

    <!--
        insert标签包含如下的属性:
            id:
            parameterType:即将传入的语句参数的完全限定类名或别名。这个属性是可选的,
                因为MyBatis可以推断出传入语句的具体参数,因此不建议配置该属性。(这个
                就是接口方法的形式参数!!!)
            flushCache:默认值为true,任何时候只要语句被调用,都会清空一级二级缓存
            timeout:设置在抛出异常之前,驱动程序等待数据库返回请求结果的秒数

            ========================这个对应与JDBC的statement=====================
            statementType:对于STATEMENT,PREPARED,CALLABLE,MyBatis会分别使用
            对应的Statement、PreparedStatement、CallableStatement,默认值为PREPARED
            ====================================================================

            ===============================这两个是一组的=========================
            useGeneratedKeys:默认值是false,如果设置为true,MyBatis会使用JDBC的get
                GeneratedKeys方法来取出由数据库内部生成的主键
            keyProperty:MyBatis通过GeneratedKeys获取主键值后将要赋给的属性名。如果希望
                得到多个数据库自动生成的列,属性值也可以是以逗号分割的属性名列表。
            ====================================================================

            ================================不懂=================================
            keyColumn:仅对INSERT和UPDATE有用,通过生成的键值设置表中的别名,这个设置仅在某些
                数据库中是必须的。
            databaseId:如果配置了databaseIdProvider,Mybatis会加载所有的不带databaseId的
                或者匹配当前databaseId的语句。
            =====================================================================

        为了放置出错,对于一些特殊的数据类型,建议指定具体的jdbcType值。例如headImg指定BLOB类型
        createTime指定TIMESTAMP类型。BLOB对应的类型是ByteArrayInputStream,就是二进制数据流
        由于数据库区分date、time、datetime类型,但是Java中一般都使用java.util.Date类型。因此
        为了保证数据类型的正确,需要手动指定日期类型,date,time,datetime对应JDBC类型分别为DATE
        ,TIME,TIMESTAMP。
            分析:BLOB那个没看懂,但是date、time、datetime看懂了点,就是说你定义类型时,如果
            用了Date类型定义变量,则你插入的时候,最好用jdbcType属性说明一下你插入的究竟是数据
            库中的哪种类型。

        数据库中的datetime类型可以储存date和timestamp类型这两种类型的值,但是不能存储time类型
        的时间。
    -->
    <insert id="insert">
        INSERT INTO sys_user
          (id,user_name,user_password,user_email,user_info,head_img,create_time)
        VALUES
          (#{id},#{userName},#{userPassword},#{userEmail},#{userInfo},#{headImg,jdbcType=BLOB},#{createTime,jdbcType=TIMESTAMP})
    </insert>

2.4.2 使用JDBC方式返回主键自增的值

1.接口类中增加的方法:

    int insert2(SysUser sysUser);

2.映射文件增加的代码:

    <insert id="insert2" useGeneratedKeys="true" keyProperty="id">
        INSERT INTO sys_user
          (id,user_name,user_password,user_email,
          user_info,head_img,create_time)
        VALUES
          (#{id},#{userName},#{userPassword},#{userEmail},
          #{userInfo},#{headImg,jdbcType=BLOB},#{createTime,jdbcType=TIMESTAMP})
    </insert>

2.4.3 使用selectKey返回主键的值

1.接口类中增加的方法:

    int insert3(SysUser sysUser);

2.映射文件增加的代码:

    <insert id="insert3">
        INSERT INTO sys_user
          (id,user_name,user_password,user_email,
          user_info,head_img,create_time)
        VALUES
          (#{id},#{userName},#{userPassword},#{userEmail},
          #{userInfo},#{headImg,jdbcType=BLOB},#{createTime,jdbcType=TIMESTAMP})

        <!--
            selectKey标签的属性:
                keyColumn:
                keyProperty:
                resultType:
                order:该属性与数据库有关。在MySQl中,为after值
        -->
        <selectKey keyColumn="id" resultType="long" keyProperty="id" order="AFTER">
            SELECT LAST_INSERT_ID()
        </selectKey>
    </insert>

MyBatis从入门到精通:insert用法的更多相关文章

  1. MyBatis从入门到精通(二):MyBatis XML方式的基本用法之Select

    最近在读刘增辉老师所著的<MyBatis从入门到精通>一书,很有收获,于是将自己学习的过程以博客形式输出,如有错误,欢迎指正,如帮助到你,不胜荣幸! 1. 明确需求 书中提到的需求是一个基 ...

  2. MyBatis从入门到精通(四):MyBatis XML方式的基本用法之增删改

    最近在读刘增辉老师所著的<MyBatis从入门到精通>一书,很有收获,于是将自己学习的过程以博客形式输出,如有错误,欢迎指正,如帮助到你,不胜荣幸! 1. insert用法 1.1 简单的 ...

  3. MyBatis从入门到精通(三):MyBatis XML方式的基本用法之多表查询

    最近在读刘增辉老师所著的<MyBatis从入门到精通>一书,很有收获,于是将自己学习的过程以博客形式输出,如有错误,欢迎指正,如帮助到你,不胜荣幸! 1. 多表查询 上篇博客中,我们示例的 ...

  4. MyBatis从入门到精通(五):MyBatis 注解方式的基本用法

    最近在读刘增辉老师所著的<MyBatis从入门到精通>一书,很有收获,于是将自己学习的过程以博客形式输出,如有错误,欢迎指正,如帮助到你,不胜荣幸! 1. @Select 注解 1.1 使 ...

  5. MyBatis从入门到精通(六):MyBatis动态Sql之if标签的用法

    最近在读刘增辉老师所著的<MyBatis从入门到精通>一书,很有收获,于是将自己学习的过程以博客形式输出,如有错误,欢迎指正,如帮助到你,不胜荣幸! 本篇博客主要讲解如何使用if标签生成动 ...

  6. MyBatis从入门到精通(七):MyBatis动态Sql之choose,where,set标签的用法

    最近在读刘增辉老师所著的<MyBatis从入门到精通>一书,很有收获,于是将自己学习的过程以博客形式输出,如有错误,欢迎指正,如帮助到你,不胜荣幸! 本篇博客主要讲解如何使用choose, ...

  7. MyBatis从入门到精通(八):MyBatis动态Sql之foreach标签的用法

    最近在读刘增辉老师所著的<MyBatis从入门到精通>一书,很有收获,于是将自己学习的过程以博客形式输出,如有错误,欢迎指正,如帮助到你,不胜荣幸! 本篇博客主要讲解如何使用foreach ...

  8. MyBatis从入门到精通(第9章):Spring集成MyBatis(中)

    MyBatis从入门到精通(第9章):Spring集成MyBatis(中) 框架(Framework)是整个或部分系统的可重用设计,表现为一组抽象构件及构件实例间交互的方法.应该将应用自身的设计和具体 ...

  9. MyBatis从入门到精通(第5章):MyBatis代码生成器

    jdk1.8.MyBatis3.4.6.MySQL数据库5.6.45.Eclipse Version: 2019-12 M2 (4.14.0) MyBatis从入门到精通(第5章):MyBatis代码 ...

  10. MyBatis从入门到精通(一):MyBatis入门

    最近在读刘增辉老师所著的<MyBatis从入门到精通>一书,很有收获,于是将自己学习的过程以博客形式输出,如有错误,欢迎指正,如帮助到你,不胜荣幸! 1. MyBatis简介 ​ 2001 ...

随机推荐

  1. 零元学Expression Blend 4 - Chapter 33 简单轻松的学会如何使用Visual States(下)

    原文:零元学Expression Blend 4 - Chapter 33 简单轻松的学会如何使用Visual States(下) 上篇提到了Visual State Manager中文翻译为视觉状态 ...

  2. acl_cpp 的编译与使用

    注:因为现在 acl_cpp 已经合并进 acl 项目中,本文仅是介绍了老版本的 acl_cpp 的编译过程,新版本的介绍及编译请参考:acl 框架库简介. acl_cpp 是基于 acl 为基础开发 ...

  3. 利用批处理自动创建schtasks系统任务

    通过批处理自动创建schtasks系统任务,把下列代码保存成bat文件,放到要执行的文件的同级目录即可. @echo on set curpath=%cd%c:cd %systemroot%schta ...

  4. x64系统的判断和x64下文件和注册表访问的重定向(举例了GetProcAddress后转成函数指针的用法)

    判断一个32位应用程序是否运行在x64系统下,可以使用下面的代码: BOOL IsX64System() { BOOL bIsWow64 = FALSE; typedef BOOL (WINAPI * ...

  5. asp.net core系列 66 Dapper介绍--Micro-ORM

    一.概述 目前对于.net的数据访问ORM工具很多,EF和EF Core是一个重量级的框架.最近在搭建新的项目架构,来学习一下轻量级的数据访问ORM工具Dapper.Dapper支持SQL Serve ...

  6. Spring_One

    Spring_01 Spring概述 Spring是分层的Java2E应用full-stack轻量级开源框架,,以IoC(Inverse Of Control:反转控制)和AOP(Aspect Ori ...

  7. Docker安装MySql-挂载外部数据和配置

    环境 CentOS:7 Docker:1.31.1 MySql:5.7   拷贝mysql配置文件 1.首先创建mysql容器 -p : -e MYSQL\_ROOT\_PASSWORD= -d my ...

  8. Java 自定义异常(转载)

    1.异常的分类 1. 非运行时异常(Checked Exception) Java中凡是继承自Exception但不是继承自RuntimeException的类都是非运行时异常. 2. 运行时异常(R ...

  9. 了解Kubernetes主体架构(二十八)

    前言 Kubernetes的教程一直在编写,目前已经初步完成了以下内容: 1)基础理论 2)使用Minikube部署本地Kubernetes集群 3)使用Kubeadm创建集群 接下来还会逐步完善本教 ...

  10. 怎么用Hostwinds搭建Wordpress博客网站(超详细图文教程)

    Hostwinds 成立于 2010 年,在主机托管行业算是一个比较新的品牌,但是,凭借丰富的产品线.卓越的服务器性能.良好的客户支持,以及低廉实惠的价格,他们受到了广大客户的喜爱,并多次获得行业重要 ...