映射文件:
<insert id="insertStudentBySequence" parameterType="Student">
<selectKey resultType="int" keyProperty="s_id" order="BEFORE">
select studentPKSequence.nextVal
from dual
</selectKey>
insert into student(s_id,s_name,s_age)
values (#{s_id},#{s_name},#{s_age})
</insert>
-----------------------------------------------------------
resultType="int" 返回的是一个int类型
keyProperty 把返回值,赋值给:parameterType中对象的对象的属性,也就是Student类中的s_id属性
order属性,在mybatis-3.1.0要加上该属性,表示先执行此步骤
-----------------------------------------------------------
DAO:
public void addStudentBySequence(Student stu) {
SqlSession sqlSession = null;
try{
sqlSession = sf.openSession();
sqlSession.insert("insertStudentBySequence", stu);
System.out.println("s_id: "+stu.getS_id());
sqlSession.commit();//这里一定要提交,不然数据进不去数据库中
}finally{
sqlSession.close();
}
}
----------------------------------------------------
测试:
@Test
public void addStudentBySequenceTest(){
IStudentDAO sDAO = new IStudentDAOIbatisImpl();
Student student = new Student();
//student.setS_id(500);
student.setS_age(18);
student.setS_name("yyy");
sDAO.addStudentBySequence(student);
System.out.println("add ok!");
}
分享到:
相关推荐
通过以上步骤,你已经成功地使用MyBatis Generator进行了反向工程,生成了带有序列化功能的POJO类和Mapper接口。这不仅减少了手动编写代码的工作量,也确保了代码与数据库表的一致性。记得在实际项目中根据需求调整...
在Oracle中,有两种方式使用序列插入数据: 1. 先查询序列的下一个值,然后在`INSERT`语句中使用这个值。如上面的`<selectKey>`所示,先获取`SEQ_TABLE.NEXTVAL`,然后插入。 2. 直接在`INSERT`语句中使用`sequence....
这种情况下,如何使用MyBatis进行动态SQL的编写以实现批量插入呢?本文将详细介绍一种在Oracle数据库环境下,利用MyBatis动态SQL解决此问题的方法。 首先,我们看到一个关键的MyBatis XML映射文件中的`<insert>`...
在了解MyBatis-Plus之前,我们先要理解MyBatis,它是一个优秀的持久层框架,提供了灵活的SQL映射和Java对象之间的映射,使得开发者能够更专注于业务逻辑,而不是数据库的底层细节。 MyBatis-Plus(简称MP)是对...
在使用MyBatis框架进行Java开发时,我们经常会遇到数据类型错误的问题,这些错误主要源自于数据库字段类型与Java对象属性类型不匹配、SQL语句中的类型转换不当或MyBatis配置文件中的设置错误。本篇文章将深入探讨...
Mybatis Generator是一款强大的Java代码生成工具,它能够帮助开发者自动生成Mybatis框架所需的实体类(Entity)、数据访问对象(DAO)、映射器接口(Mapper)以及XML配置文件,极大地提高了开发效率,减轻了手动编写...
本篇文章将详细探讨“mybatis代码生成工具”,特别是其添加的example对象序列化和批量插入功能。 1. **Mybatis代码生成器** Mybatis代码生成器是Mybatis框架的一个强大辅助工具,它能够根据数据库表自动生成对应...
这里,我们先通过Oracle的序列`seq_LA_T_CONTACT_RECORD`获取自增ID,然后通过遍历集合,将每个元素转化为单独的INSERT语句,用UNION ALL连接起来。 2. **利用存储过程**: 另一种方法是编写Oracle的存储过程,...
总结来说,MyBatis通过自定义TypeHandler实现了对MySQL JSON字段的映射,利用Jackson库进行JSON数据的序列化和反序列化,确保Java对象和数据库中的JSON数据能顺利地进行转换和交互。在处理复杂的数据结构时,这样的...
内置了分页插件,可以方便地实现分页查询,支持多种数据库的分页方式,如 MySQL、Oracle 等,使用 `Page` 对象进行分页参数设置和结果接收。 6. **主键生成策略**: 提供了多种主键生成策略,包括 Identity(自动...
在尝试批量插入数据时,常见的做法是创建一个包含待插入对象的List,然后通过MyBatis的`<foreach>`标签将这些对象插入到数据库中。例如,以下是一个错误的示例: ```xml <![CDATA[SELECT SEQ_OCL_SUPCITY....
9. **TypeHandler**:处理Java类型和数据库类型之间的转换,确保数据正确地在数据库和Java对象间进行序列化和反序列化。 10. **配置文件**:`mybatis-config.xml`是MyBatis的全局配置文件,包含了数据源、事务管理...
同时,为了实现主键自增,我们使用了Oracle数据库的序列(sequence)和触发器(trigger)机制。序列`pda2_user_sequence`用于生成主键值,触发器`id_auto_increment_triger`则在插入新记录时自动填充ID字段。 接着...
- 插入用户,可以选择返回主键值,如果是自增主键,MyBatis可以自动获取;对于非自增主键,如UUID或Oracle序列,也需要特殊处理。 - 更新用户信息,MyBatis允许开发者根据需要更新特定字段。 - 删除用户,可以通过ID...
MyBatis逆向工程是一种强大的工具,它可以帮助开发者自动生成数据访问对象(DAO)和JavaBean类,从而简化了数据库模型层的编码工作。在Java Web开发中,MyBatis作为一个优秀的持久层框架,提供了灵活的SQL映射机制,...
Mybatis-Plus是一款基于Mybatis框架的扩展工具,旨在简化常见的CRUD操作,提供更便捷的数据库表字段映射到Java对象的方式。在"auto-mybatis-new.zip"这个压缩包中,我们很可能是找到了Mybatis-Plus的新版代码或者一...
尚硅谷的Mybatis Plus笔记和源码资源,对于学习和理解这个框架的内部实现以及如何在项目中有效使用它,是非常宝贵的资料。 1. **Mybatis Plus概述** Mybatis Plus是对Mybatis的增强工具,它在Mybatis的基础上做了...
在本文中,我们将深入探讨"Mybatis-Plus入门第二天讲义1"所涵盖的知识点,主要涉及ActiveRecord模式、Mybatis-Plus的基本操作以及如何在Java中使用这些概念。 首先,我们来理解什么是ActiveRecord。ActiveRecord是...
MyBatis提供了两种分页方式:使用RowBounds对象和使用分页插件。RowBounds可以直接在查询时传入,实现简单的分页。分页插件则是通过拦截SQL语句,重写SQL以实现分页效果。例如,原本的SQL是`SELECT * FROM student`...