`
motiftear
  • 浏览: 38153 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

ibatis insert 返回null问题

 
阅读更多

   

关于com.ibatis.sqlmap.client.SqlMapExecutor下 的insert (java.lang.String id, java.lang.Object parameterObject) 方法:

 

 

它的意思是说返回值是新插入记录的主键,类型为Object主要是因为主键类型可以是int也可以是String类型。

然而,如果我们使用下列的配置文件进行插入的话,返回的值为null

  1. <insert id="insertPrdcategory" parameterClass="Prdcategory">
  2. insert into Prdcategory ( name,pid,deep ) values ( #name#,
  3. #pid#, #deep# )
  4. </insert>

那我们要怎样解决这个问题,让它返回插入行的主键呢,这时我们就是使用到<selectKey>,下面仅以MSSQL数据库为例,改写 上述配置文件,具体如下:

  1. <insert id="insertPrdcategory" parameterClass="Prdcategory">
  2. insert into Prdcategory ( name,pid,deep ) values ( #name#,
  3. #pid#, #deep# )
  4. <selectKey resultClass="int" keyProperty="id">
  5. select max(id) from Prdcategory
  6. </selectKey>
  7. </insert>

 

DAO的实现类方法里面就应该这样写了(注意整型转换用Integer类名)

  1. public int insertPrdcategory(Prdcategory product) throws Exception {
  2. return (Integer)IbatisUtil.getSqlMapper().insert("insertPrdcategory", product);
  3. }

 

 

分享到:
评论

相关推荐

    ibatis UPDATE 动态XML与insert

    标题 "ibatis UPDATE 动态XML与insert" 涉及到的是MyBatis框架中对数据库数据进行更新(UPDATE)和插入(INSERT)操作的动态XML配置方式。MyBatis是一个优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射,...

    ibatis3批量插入

    通过Ibatis3xml文件配置+Mysql实现数据批量插入,原先在网上找很多,都是关于批量更新,批量插入的很少,而且其写法又完全不同,所以自己研究了一下。可供参考。另外插入时如出现内容报错,请参照my.cnf修改书库配置...

    iBatis工程简单例子

    iBatis工程的简单例子,在eclipse上实现的,数据库是mysql数据库,里面的字段为CREATE DATABASE MYDB; use MYDB; Drop TABLE IF EXISTS `MYDB`.`student`; Create TABLE `MYDB`.`student` ( `name` varchar(40) NOT...

    Ibatis培训教程

    码2 Ibatis 的核心接口和实现类在使用 Ibatis 之前,我们需要了解其核心的接口和实现类。Ibatis 的核心接口主要包括 SqlSession 和 SqlSessionFactory。SqlSession 接口是执行 SQL 语句的主要接口,提供了 CRUD...

    ibatis2.0中文API

    例如,当遇到数据类型转换错误、空指针异常或SQL执行效率低下等问题时,iBATIS提供了解决策略。比如使用`nullValue`属性处理空值,或者通过优化SQL语句来提高查询速度。同时,对于复杂的业务场景,iBATIS支持动态SQL...

    ibatis16个常用sql语句

    iBatis 16个常用SQL语句 iBatis是一个基于Java的持久层框架,提供了一个简洁的方式来访问和操作数据库。在iBatis中,SQL语句是通过XML文件来配置的。下面是16个常用的iBatis SQL语句,涵盖了基本的CRUD(Create、...

    Ibatis常用sql语句

    根据给定的文件信息,以下是对“Ibatis常用...Ibatis通过其动态SQL标签如`iterate`, `isNotNull`, `dynamic`等提供了极高的灵活性,能够有效应对复杂多变的业务需求。掌握这些基本用法对于提升Ibatis开发效率至关重要。

    spring+ibatis集成文档

    INSERT INTO ibatis VALUES('1', '1'); INSERT INTO ibatis VALUES('2', '2'); ``` ##### 2.2 DAO接口定义 定义一个通用的数据访问层接口`IDAO`,用于处理基本的CRUD操作: ```java package ch10.SpringAndIbatis...

    ibatis的批量插入DAO实例

    在IT行业中,数据库操作是应用程序开发中的重要环节,而Ibatis作为一款轻量级的Java持久层框架,为开发者提供了方便的数据...同时,对于源码的研究也能帮助我们更好地理解Ibatis的工作原理,进一步优化代码和解决问题。

    原创的一个iBatis例子

    这是一个用iBator生成iBatis有关代码的例子。 特别说明: Eclipse应该是3.4.1以上版本, 并且安装了iBator插件。否则可用iBator的命令行版本或ant工具。 测试用数据是: CREATE TABLE PERSON( id INTEGER NOT NULL,...

    ibatis经典示例

    # iBatis经典示例详解 iBatis是一款优秀的持久层框架,它允许开发者将SQL语句与Java代码分离,从而提高开发效率和代码可维护性。本篇将通过一个典型的iBatis示例,深入解析其核心概念、配置及使用方法。 ## 一、...

    ibatis sql 语句的编写

    其中,`id`属性定义了SQL语句的唯一标识符,`parameterType`指定了传入参数的类型,而`resultType`则定义了返回结果的类型。 ##### 3.2 插入(INSERT) 插入操作用于向数据库表中添加新的记录。 ```xml &lt;insert ...

    Ibatis增删改查

    Ibatis 是一款轻量级的Java持久层框架,它与Hibernate和JPA等ORM框架不同,Ibatis 更注重SQL的自由度,允许开发者直接编写SQL语句,将SQL与Java代码解耦,提供了更高的灵活性。在本文中,我们将深入探讨如何使用...

    ibatis常用sql语句

    同时,为了避免数组为空或为null时引发的SQL语法错误,iBATIS还提供了`&lt;isNotNull&gt;`和`&lt;dynamic&gt;`标签进行条件判断,确保了代码的健壮性和安全性。 ### 传递参数只含有一个数组 最后,当参数只包含一个数组时,...

    Ibatis简易教程

    这通常涉及创建一个`insert`映射,然后在Java代码中调用`insert`方法。类似地,第三个例子会介绍如何删除数据,通过创建`delete`映射并调用`delete`方法。 总的来说,iBatis提供了一种灵活的方式来处理数据库操作,...

    Ibatis结合MySQL数据库的使用方法Demo

    本工程用于研究Ibatis和MySQL结合使用的方法 本工程编码方式:UTF-8 须执行的SQL语句: CREATE DATABASE `test`; USE `test`; DROP TABLE IF EXISTS `student`; CREATE TABLE `student` ( `id` char(36) NOT NULL...

    ibatis的增删改查功能

    Ibatis,全称为MyBatis,是一个优秀的Java持久层框架,它主要负责SQL映射,使得开发者能够将注意力集中在编写SQL语句上,而无需关注JDBC代码的编写。Ibatis消除了几乎所有的JDBC代码和手动设置参数以及获取结果集的...

    struts2_spring2.5_ibatis2.3_mysql架构

    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...

    ibatis批量处理

    return null; } }); } } ``` 这种方式下,Spring框架会自动管理事务的开启、提交或回滚,无需显式调用事务相关的API。这种方式更简洁、易于维护,并且遵循了“单一职责原则”。 ### 总结 iBatis的批量处理...

    Ibatis3.0 增删改查(三)

    在Ibatis中,插入数据通常通过`&lt;insert&gt;`标签实现。开发者需要定义一个SQL映射,指定SQL语句和参数,例如: ```xml &lt;insert id="insertStudent" parameterType="com.example.Student"&gt; INSERT INTO students(name,...

Global site tag (gtag.js) - Google Analytics