Mybatis操作数据库实现主键自增长

(一)oracle中没有主键自增长,所有可以通过创建序列或使用触发器实现

1.先创建表

CREATE
    TABLE USER1
    (
        ID NUMBER(10),
        NAME VARCHAR2(20),
        SEX VARCHAR2(5),
        ADDRESS VARCHAR2(30),
        BIRTHDAY DATE
    )

2.创建序列:

CREATE SEQUENCE user1_sequence
INCREMENT BY 1
NOMAXVALUE
NOCYCLE
CACHE 10;

3.在配置文件中配制

<insert id="insertUser" parameterType="com.dbzhand.pojo.User">
  <selectKey keyProperty="id" resultType="int" order="BEFORE">
      select user1_sequence.nextval from dual
    </selectKey>
     insert into user1(id,name,age) values(#{id},#{name},#{age})
</insert>

(二)在mysql中实现主键自增长:mysql和sql server中能自动实现主键自增长

可以参看该博客园:https://www.cnblogs.com/panie2015/p/5807683.html

原文地址:https://www.cnblogs.com/zdb292034/p/8677694.html

时间: 2024-08-07 17:30:30

Mybatis操作数据库实现主键自增长的相关文章

mybatis配置oracle的主键自增长

引用自:https://hacpai.com/article/1405392025960 mysql.sqlserver等数据库本身带有主键自增长像auto_increment的功能可以直接使用 useGeneratedKeys=”true”来实现,比如下面的配置 <insert id=”add” useGeneratedKeys=”true” keyProperty=”id” parameterType=”Auth”> insert into s_user_auth (id,user_id,

关于mybatis插入数据库返回主键id

关于Sequence主键的数据库来说,如: <insert id="add" parameterType="vo.Category"> <selectKey resultType="java.lang.Short" order="BEFORE" keyProperty="id"> SELECT SEQ_TEST.NEXTVAL FROM DUAL </selectKey>

MyBatis对不同数据库的主键生成策略

本文转自:http://289972458.iteye.com/blog/1001851  http://hi.baidu.com/zim_it/blog/item/8a2bd11205f5b56ecb80c4b7.html 在使用MyBatis做持久层时,insert语句默认是不返回记录的主键值,而是返回插入的记录条数:如果业务层需要得到记录的主键时,可以通过配置的方式来完成这个功能 针对Sequence主键而言,在执行insert sql前必须指定一个主键值给要插入的记录,如Oracle.D

表主键自增长Mybatis插入数据报错

在使用MyBatis进行开发的过程中,当你遇到向某张数据库表中插入一条记录时,出现数据插入不正确,如果自己确定是因为主键的原因,类似如下错误提示: 而你的本意是主键自动增长,那么,可参考如下方法尝试解决: 第一步:在配置中设置主键为自增长(数据库我使用的是MySql) 如果你是使用MyBatis自动生成的插入语句,除了设置上面给出的useGeneratedKeys="true"之外,还需要将如下图所示红色部分去掉,这是查询主键最大值的一段代码. 如果还未解决,这时你应该检查一下你的数据

oracle,mybatis主键自增长

<insert id="insert" parameterType="resource"> <selectKey resultType="long" order="BEFORE" keyProperty="id"> SELECT sys_resource_id_SEQ.NEXTVAL AS id FROM DUAL </selectKey> INSERT INTO <

[数据库]关于主键与外键

本文参考自:http://blog.csdn.net/bingqingsuimeng/article/details/51595560 一.什么是主键.外键: 关系型数据库中的一条记录中有若干个属性,若其中某一个属性组(注意是组)能唯一标识一条记录,该属性组就可以成为一个主键 比如  学生表(学号,姓名,性别,班级) 其中每个学生的学号是唯一的,学号就是一个主键 课程表(课程编号,课程名,学分) 其中课程编号是唯一的,课程编号就是一个主键 成绩表(学号,课程号,成绩) 成绩表中单一一个属性无法唯

数据库中主键与外键

在关系型数据库中,数据结构有逻辑结构和物理结构.物理结构指存储在物理介质上的数据文件的结构.逻辑结构即关系,也就是一张张的二维表.表中的一列即为一个字段(属性),代表的是实体的一个属性.表中的一行即为一条记录. 如:学生表中(学号,姓名,年龄,性别),在该表中有4个字段,代表学生实体的4个属性.表中的一行数据(001,张三,男,20),即一条记录,表示的是张三这个学生的信息.    在表中,用来唯一标识一条记录的字段集,叫做主关键字或者主关键码,简称主键(主码),而主键包含的属性(字段)叫做主属

Oracle实现主键自增长

MySql中在字段定义后面使用 AUTO_INCREMENT 属性实现自增长,Oracle如何实现主键自增长? 建表: create table users(   userId number(10) not null,   username varchar2(30) not null,   birthday date default null,   sex char(1) default 1 check (sex in (0, 1)),   address varchar2(200) not n

Mysql,SqlServer,Oracle主键自动增长的设置

1.把主键定义为自动增长标识符类型 MySql 在mysql中,如果把表的主键设为auto_increment类型,数据库就会自动为主键赋值.例如:   customers(id  auto_increment    , name (  customers(name)  id  customers; 以上sql语句先创建了customers表,然后插入两条记录,在插入时仅仅设定了name字段的值.最后查询表中id字段,查询结果为: 由此可见,一旦把id设为auto_increment类型,mys