关于com.ibatis.sqlmap.client.SqlMapExecutor下 的insert (java.lang.String id, java.lang.Object parameterObject) 方法:
它的意思是说返回值是新插入记录的主键,类型为Object主要是因为主键类型可以是int也可以是String类型。
然而,如果我们使用下列的配置文件进行插入的话,返回的值为null
- <insert id="insertPrdcategory" parameterClass="Prdcategory">
- insert into Prdcategory ( name,pid,deep ) values ( #name#,
- #pid#, #deep# )
- </insert>
那我们要怎样解决这个问题,让它返回插入行的主键呢,这时我们就是使用到<selectKey>,下面仅以MSSQL数据库为例,改写 上述配置文件,具体如下:
- <insert id="insertPrdcategory" parameterClass="Prdcategory">
- insert into Prdcategory ( name,pid,deep ) values ( #name#,
- #pid#, #deep# )
- <selectKey resultClass="int" keyProperty="id">
- select max(id) from Prdcategory
- </selectKey>
- </insert>
DAO的实现类方法里面就应该这样写了(注意整型转换用Integer类名)
- public int insertPrdcategory(Prdcategory product) throws Exception {
- return (Integer)IbatisUtil.getSqlMapper().insert("insertPrdcategory", product);
- }
分享到:
相关推荐
标题 "ibatis UPDATE 动态XML与insert" 涉及到的是MyBatis框架中对数据库数据进行更新(UPDATE)和插入(INSERT)操作的动态XML配置方式。MyBatis是一个优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射,...
通过Ibatis3xml文件配置+Mysql实现数据批量插入,原先在网上找很多,都是关于批量更新,批量插入的很少,而且其写法又完全不同,所以自己研究了一下。可供参考。另外插入时如出现内容报错,请参照my.cnf修改书库配置...
iBatis工程的简单例子,在eclipse上实现的,数据库是mysql数据库,里面的字段为CREATE DATABASE MYDB; use MYDB; Drop TABLE IF EXISTS `MYDB`.`student`; Create TABLE `MYDB`.`student` ( `name` varchar(40) NOT...
码2 Ibatis 的核心接口和实现类在使用 Ibatis 之前,我们需要了解其核心的接口和实现类。Ibatis 的核心接口主要包括 SqlSession 和 SqlSessionFactory。SqlSession 接口是执行 SQL 语句的主要接口,提供了 CRUD...
例如,当遇到数据类型转换错误、空指针异常或SQL执行效率低下等问题时,iBATIS提供了解决策略。比如使用`nullValue`属性处理空值,或者通过优化SQL语句来提高查询速度。同时,对于复杂的业务场景,iBATIS支持动态SQL...
iBatis 16个常用SQL语句 iBatis是一个基于Java的持久层框架,提供了一个简洁的方式来访问和操作数据库。在iBatis中,SQL语句是通过XML文件来配置的。下面是16个常用的iBatis SQL语句,涵盖了基本的CRUD(Create、...
根据给定的文件信息,以下是对“Ibatis常用...Ibatis通过其动态SQL标签如`iterate`, `isNotNull`, `dynamic`等提供了极高的灵活性,能够有效应对复杂多变的业务需求。掌握这些基本用法对于提升Ibatis开发效率至关重要。
INSERT INTO ibatis VALUES('1', '1'); INSERT INTO ibatis VALUES('2', '2'); ``` ##### 2.2 DAO接口定义 定义一个通用的数据访问层接口`IDAO`,用于处理基本的CRUD操作: ```java package ch10.SpringAndIbatis...
这是一个用iBator生成iBatis有关代码的例子。 特别说明: Eclipse应该是3.4.1以上版本, 并且安装了iBator插件。否则可用iBator的命令行版本或ant工具。 测试用数据是: CREATE TABLE PERSON( id INTEGER NOT NULL,...
# iBatis经典示例详解 iBatis是一款优秀的持久层框架,它允许开发者将SQL语句与Java代码分离,从而提高开发效率和代码可维护性。本篇将通过一个典型的iBatis示例,深入解析其核心概念、配置及使用方法。 ## 一、...
其中,`id`属性定义了SQL语句的唯一标识符,`parameterType`指定了传入参数的类型,而`resultType`则定义了返回结果的类型。 ##### 3.2 插入(INSERT) 插入操作用于向数据库表中添加新的记录。 ```xml <insert ...
Ibatis 是一款轻量级的Java持久层框架,它与Hibernate和JPA等ORM框架不同,Ibatis 更注重SQL的自由度,允许开发者直接编写SQL语句,将SQL与Java代码解耦,提供了更高的灵活性。在本文中,我们将深入探讨如何使用...
同时,为了避免数组为空或为null时引发的SQL语法错误,iBATIS还提供了`<isNotNull>`和`<dynamic>`标签进行条件判断,确保了代码的健壮性和安全性。 ### 传递参数只含有一个数组 最后,当参数只包含一个数组时,...
在IT行业中,数据库操作是应用程序开发中的重要环节,而Ibatis作为一款轻量级的Java持久层框架,为开发者提供了方便的数据...同时,对于源码的研究也能帮助我们更好地理解Ibatis的工作原理,进一步优化代码和解决问题。
这通常涉及创建一个`insert`映射,然后在Java代码中调用`insert`方法。类似地,第三个例子会介绍如何删除数据,通过创建`delete`映射并调用`delete`方法。 总的来说,iBatis提供了一种灵活的方式来处理数据库操作,...
本工程用于研究Ibatis和MySQL结合使用的方法 本工程编码方式:UTF-8 须执行的SQL语句: CREATE DATABASE `test`; USE `test`; DROP TABLE IF EXISTS `student`; CREATE TABLE `student` ( `id` char(36) NOT NULL...
Ibatis,全称为MyBatis,是一个优秀的Java持久层框架,它主要负责SQL映射,使得开发者能够将注意力集中在编写SQL语句上,而无需关注JDBC代码的编写。Ibatis消除了几乎所有的JDBC代码和手动设置参数以及获取结果集的...
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, userName varchar(50), password varchar(50) ) insert into users(userName,password) value('hj','123'); insert into users(userName,password) value('wtt','123...
return null; } }); } } ``` 这种方式下,Spring框架会自动管理事务的开启、提交或回滚,无需显式调用事务相关的API。这种方式更简洁、易于维护,并且遵循了“单一职责原则”。 ### 总结 iBatis的批量处理...
在Ibatis中,插入数据通常通过`<insert>`标签实现。开发者需要定义一个SQL映射,指定SQL语句和参数,例如: ```xml <insert id="insertStudent" parameterType="com.example.Student"> INSERT INTO students(name,...