映射语句之INSERT语句
1.一个 INSERT SQL 语句可以在<insert>元素在映射器 XML 配置文件中配置
<insert id="insertStudentWithId" parameterType="Student">INSERT INTO Student(id,name,sex,birthday,height,weight,score,address,email,hobby) values(#{id},#{name},#{sex},#{birthday},#{height},#{weight},#{score},#{address},#{email},#{hobby})</insert>
useGeneratedKeys 和 keyProperty 属性让数据库生成 auto_increment 列的值,并将生成的值设置到其中一个
输入对象属性内:
<insertid="insertStudentWithoutId"parameterType="Student"useGeneratedKeys="true"keyProperty="id" >INSERT INTO Student (name,sex,birthday,height,weight,score,address,email,hobby) values(#{name},#{sex},#{birthday},#{height},#{weight},#{score},#{address},#{email},#{hobby})</insert>
@Testpublicvoid testInsertWithoutId(){SqlSession sqlSession =MyBatisSqlSessionFactory.openSession();try{StudentMapper studentMapper = sqlSession.getMapper(StudentMapper.class);Student student =newStudent();student.setName("小2");student.setAddress("江苏南通");student.setBirthday(newDate());student.setEmail("xiao2@live.com");student.setHeight(177);student.setHobby("打篮球");student.setScore(99);student.setSex("男");student.setWeight(120);studentMapper.insertStudentWithoutId(student);sqlSession.commit();System.out.println(student);}finally{sqlSession.close();}}
假设我们有一个名为 STUD_ID_SEQ 的序列来生成 SUTD_ID 主键值。使用如下代码来生成主键:
<insertid="insertStudent"parameterType="Student"><selectKeykeyProperty="id"resultType="int"order="BEFORE">SELECT ELEARNING.STUD_ID_SEQ.NEXTVAL FROM DUAL</selectKey>INSERT INTO STUDENTS(id,name,email, address)VALUES(#{id},#{name},#{email},#{address})</insert>
order=“before”表示 MyBatis 将取得序列的下一个值作为主键值,并且在执行 INSERT SQL 语句之前将值设置到
id 属性上
前将值设置到主键列上。 如果你采取这样的方式,则对应的 INSERT 映射语句如下所示:
<insert id="insertStudent" parameterType="Student">INSERT INTO STUDENTS(name,email, address) VALUES(#{name},#{email},#{address})<selectKey keyProperty="studId" resultType="int" order="AFTER">SELECT ELEARNING.STUD_ID_SEQ.CURRVAL FROM DUAL</selectKey></insert>
<update id="setIdentityInsert" parameterType="java.lang.String">SET IDENTITY_INSERT Student ${_parameter}</update>
映射语句之INSERT语句的更多相关文章
- PHP执行insert语句报错“Data too long for column”解决办法
PHP执行mysql 插入语句, insert语句在Navicat for mysql(或任意的mysql管理工具) 中可以正确执行,但是用mysql_query()函数执行却报错. 错误 : “Da ...
- 第四章 数据更新 4-1 数据的插入(INSERT 语句的使用方法)
一.什么是INSERT 用来插入数据的SQL就是INSERT语句. 二.INSERT 语句的基本语法. 列清单 值清单 列清单和值清单的列数必须保持一致,如果不一致会出错. 原则上,执行一次I ...
- sql INSERT语句
当我们需要向数据库表中插入一条新记录时,就必须使用INSERT语句. INSERT语句的基本语法是: INSERT INTO <表名> (字段1, 字段2, ...) VALUES (值1 ...
- SQL基础语法—insert语句
1 insert语句 insert语句用于插入数据到表中,其基本语法有以下三种: Syntax: INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IG ...
- shell随机生成身份证,姓名,电话,日期,分数,等级和insert语句
#!/bin/bash#生成随机身份证号,性别,年龄,电话,姓名,日期,分数和对应等级,并生成insert语句#作者AiYS,2018-02-06,转载请注明http://www.cnblogs.co ...
- mybatis源码专题(2)--------一起来看下使用mybatis框架的insert语句的源码执行流程吧
本文是作者原创,版权归作者所有.若要转载,请注明出处.本文以简单的insert语句为例 1.mybatis的底层是jdbc操作,我们先来回顾一下insert语句的执行流程,如下 执行完后,我们看下数据 ...
- 使用JDBC(Dbutils工具包)来从数据库拿取map类型数据来动态生成insert语句
前言: 大家在使用JDBC来连接数据库时,我们通过Dbutils工具来拿取数据库中的数据,可以使用new BeanListHandler<>(所映射的实体类.class),这样得到的数据, ...
- 将表里的数据批量生成INSERT语句的存储过程 增强版
将表里的数据批量生成INSERT语句的存储过程 增强版 有时候,我们需要将某个表里的数据全部或者根据查询条件导出来,迁移到另一个相同结构的库中 目前SQL Server里面是没有相关的工具根据查询条件 ...
- PL/SQL客户端中执行insert语句,插入中文乱码
问题描述:在PL/SQL客户端中执行insert语句,插入中文乱码 解决方案: 1.执行脚本 select userenv('language') from dual; 结果为AMERICAN_ ...
随机推荐
- Android系统--输入系统(十二)Dispatch线程_总体框架
Android系统--输入系统(十二)Dispatch线程_总体框架 1. Dispatch线程框架 我们知道Dispatch线程是分发之意,那么便可以引入两个问题:1. 发什么;2. 发给谁.这两个 ...
- js 检测浏览器
首先还是IE浏览器的检测,一般我们在写代码的时候,出现的兼容性bug几乎都来自IE.从IE10以后,IE还算有点良心,支持了大部门的CSS3及H5的新特性.那么在IE10之前呢,就要才去别的手段来代替 ...
- ③jQuery生成html元素
动态生成HTML元素 绑定事件
- Linux安装jdk7开发环境
1.官网 下载jdk7版本 地址: http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-jav ...
- Android Studio 首坑 Gradle sync failed: Cause: error in opening zip file 的错误
前言 今天安装Android studio 2.3.1时发生了一个错误,安装完成后创建第一个Hello World项目是报错.经过这个百度后,结果没有一个靠谱的.将拆解经过记录一下. 环境: 操作系统 ...
- CAS单点登录服务器搭建
关于cas单点登录的原理及介绍这里不做说明了,直接开始: 1.war包下载 去官网(https://www.apereo.org/projects/cas/download-cas)下载cas_ser ...
- GPIO控制LED
一.LED灯的亮灭控制的配置步骤(GPIO4_D3): 1.GPIO4的CRU_CLKGATE_CON31时钟使能配置(用来保证GPIO4可写): io -4 0xff76037c 0xffff019 ...
- 【JAVAWEB学习笔记】01_HTML
案例一:网站信息显示页面1.什么是HTML?(Hyper Text Markup Language:超文本标记语言) 超文本:功能比普通文本更加强大 标记语言:使用一组标签对内容进行描述的一门语言(它 ...
- Vulkan Tutorial 02 编写Vulkan应用程序框架原型
操作系统:Windows8.1 显卡:Nivida GTX965M 开发工具:Visual Studio 2017 General structure 在上一节中,我们创建了一个正确配置.可运行的的V ...
- 用app.net Core搞点多国语言网站
Asp.net Core 中文文档很少,你可以看英文的,不过英文的也是说的有点乱.这篇文章是干货. 1. 配置好你的WebApplication,使他可以支持国际化语言,修改文档Startup.cs ...