insert,返回值是:新插入行的主键(primary key);需要包含<selectKey>语句,才会返回主键,否则返回值为null。
update/delete,返回值是:更新或删除的行数;无需指明resultClass;但如果有约束异常而删除失败,只能去捕捉异常。
queryForObject,返回的是:一个实例对象或null;需要包含<select>语句,并且指明resultMap;
queryForList,返回的是:实例对象的列表;需要包含<select>语句,并且指明resultMap;
我的配置文件如下(desktop_common_sqlMap.xml):
[html] view plaincopy在CODE上查看代码片派生到我的代码片
<typeAlias alias="UnlockTagInfo" type="com.desktop.common.bean.UnlockTagInfo" />
<resultMap class="UnlockTagInfo" id="UnlockTagInfoResult">
<result column="id" property="id" jdbcType="INTEGER" />
<result column="name" property="name" jdbcType="VARCHAR" />
<result column="description" property="description" jdbcType="VARCHAR" />
<result column="priority" property="priority" jdbcType="INTEGER" />
</resultMap>
<insert id="insertUnlockTagInfo" parameterClass="map">
<selectKey resultClass="int" keyProperty="id">
select
nextval('desktop_unlock_tag_id_seq') as id
</selectKey>
insert into
desktop_unlock_tag(id,name,description,priority)
values(#id:INTEGER#,#name:VARCHAR#,#description:VARCHAR#,#priority:INTEGER#)
</insert>
<update id="updateUnlockTagInfo" parameterClass="map">
update
desktop_unlock_tag
set modify_time=now(),priority=#priority:INTEGER#,
name=#name:VARCHAR#,description=#description:VARCHAR#
where
id=#id:INTEGER#
</update>
<delete id="deleteUnlockTagInfo" parameterClass="int">
delete from
desktop_unlock_tag
where id=#value:INTEGER#
</delete>
<select id="countUnlockTagInfo" resultClass="int">
select count(*)
from
desktop_unlock_tag
</select>
<sql id="selectUnlockTagInfo">
select
id,name,description,priority
from
desktop_unlock_tag
</sql>
<select id="findUnlockTagInfoById" parameterClass="int"
resultMap="UnlockTagInfoResult">
<include refid="selectUnlockTagInfo" />
where id=#id:INTEGER#
</select>
<select id="listUnlockTagInfo" parameterClass="map"
resultMap="UnlockTagInfoResult">
<include refid="selectUnlockTagInfo" />
order by
modify_time desc limit #size:INTEGER#
offset #start:INTEGER#
</select>
我的DAO源码如下:
[java] view plaincopy在CODE上查看代码片派生到我的代码片
public class UnlockTagDaoImpl extends SqlMapClientDaoSupport implements
UnlockTagDao {
@Override
public Integer addItem(String name, String desc, Integer priority) {
SqlMapClientTemplate template = this.getSqlMapClientTemplate();
Map<String, Object> args = new HashMap<String, Object>();
args.put("name", name);
args.put("description", desc);
args.put("priority", priority);
Object key = template.insert("DesktopCommon.insertUnlockTagInfo", args);
return (Integer) key;
}
@Override
public boolean updateItem(Integer id, String name, String description,
Integer priority) {
SqlMapClientTemplate template = this.getSqlMapClientTemplate();
Map<String, Object> args = new HashMap<String, Object>();
args.put("id", id);
args.put("name", name);
args.put("description", description);
args.put("priority", priority);
try {
int c = template.update("DesktopCommon.updateUnlockTagInfo", args);
if (c > 0) {
return true;
}
return false;
} catch (Exception e) {
return false;
}
}
@Override
public boolean deleteItem(Integer id) {
SqlMapClientTemplate template = this.getSqlMapClientTemplate();
try {
int c = template.delete("DesktopCommon.deleteUnlockTagInfo", id);
if (c > 0) {
return true;
}
return false;
} catch (Exception e) {
return false;
}
}
@Override
public UnlockTagInfo findItemById(Integer id) {
SqlMapClientTemplate template = this.getSqlMapClientTemplate();
UnlockTagInfo item = (UnlockTagInfo) template.queryForObject(
"DesktopCommon.findUnlockTagInfoById", id);
return item;
}
@Override
public PagedList<UnlockTagInfo> listAll(Integer nStart, Integer nSize,
boolean bCountTotal) {
SqlMapClientTemplate template = this.getSqlMapClientTemplate();
PagedList<UnlockTagInfo> result = new PagedList<UnlockTagInfo>();
if (bCountTotal) {
int total = (Integer) template
.queryForObject("DesktopCommon.countUnlockTagInfo");
result.setTotal(total);
}
Map<String, Integer> args = new HashMap<String, Integer>();
args.put("start", nStart);
args.put("size", nSize);
@SuppressWarnings("unchecked")
List<UnlockTagInfo> items = template.queryForList(
"DesktopCommon.listUnlockTagInfo", args);
result.setData(items);
return result;
}
}
分享到:
相关推荐
1.Configuration.xml 是 mybatis 用来建立 sessionFactory 用的,里面主要包含了数据库连接相关东西,还有 java 类所对应的别名,比如 <typeAlias alias="User" type="com.yihaomen.mybatis.model.User"/> 这个别名...
MyBatis 3.4.1 是一个流行的Java持久层框架,它简化了数据库操作,提供了灵活的SQL映射和对象关系映射(ORM)功能。这个版本包含了JAR源码文档,帮助开发者深入理解其内部工作原理。 1. **MyBatis 概述** MyBatis ...
2. **工具** - 可能会提到除了IBatis之外,与数据库操作相关的其他工具或库,如MyBatis Generator用于自动生成Mapper代码,或者是数据库连接池工具如Druid或HikariCP。 **内容预期:** 在文章中,作者可能会首先...
当我们使用 MyBatis 进行数据库查询时,查询结果为空时,MyBatis 的返回值是如何处理的?这是本文要讨论的主要内容。 MyBatis 中 resultType 的定义是非常重要的,它决定了查询结果的返回类型。不同的 resultType ...
在实际应用中,使用iBatis进行数据库操作主要包括以下步骤: 1. 加载配置:通过SqlSessionFactoryBuilder创建SqlSessionFactory,然后通过SqlSessionFactory获取SqlSession对象。 2. 执行SQL:使用SqlSession的`...
Spring提供了一种管理业务对象和数据访问对象(DAO)的方式,而MyBatis则专注于SQL映射,两者结合能够实现灵活且高效的数据库操作。 ### MyBatis简介 MyBatis是一个优秀的持久层框架,它支持定制化SQL、存储过程...
ibatIS调用存储过程是数据库操作中常见的一种技术,特别是在复杂的业务逻辑处理或数据批量操作时,存储过程能够提供更高的效率和更好的性能。本文将深入探讨如何在ibatIS框架中调用存储过程,以及涉及到的相关知识点...
MyBatis作为一个成熟且广泛使用的Java持久层框架,通过简化数据库交互、提供灵活的SQL控制和对象映射,帮助开发者更高效地进行数据库操作。无论是企业级应用程序还是中小型项目,MyBatis都能够提供强大的支持和优良...
3. **MyBatis与Jackson集成**:虽然MyBatis主要处理数据库操作,但如果你需要将查询结果直接转换为JSON,可以在MyBatis的配置中指定使用Jackson。在`mybatis-config.xml`中添加`ObjectMapper`的配置: ```xml ...
MyBatis 可以非常简单地将接口及 POJOs(Plain Old Java Objects,普通的 Java 对象)映射成数据库中的记录。 **历史背景:** - **起源:** MyBatis 起源于 Apache 的 iBatis 项目。 - **迁移与更名:** 2010 年,该...
在IT行业中,数据库操作是应用程序不可或缺的一部分,而Ibatis作为一款优秀的持久层框架,极大地简化了Java应用与数据库之间的交互。本主题将深入探讨如何在Ibatis中使用存储过程,特别是涉及带有输出参数的存储过程...
综上所述,MyBatis作为一款强大的持久层框架,不仅极大地简化了JDBC操作数据库的过程,而且还提供了丰富的功能来支持动态SQL、关联查询以及与Spring的整合等高级特性。此外,IDE的改进也进一步提升了开发效率和代码...
Ibatis,全称为MyBatis,是一个优秀的Java持久层框架,它主要负责SQL映射,使得开发者能够将注意力集中在编写可复用的Java代码上,而不是处理繁琐的JDBC代码和手动参数设置。Ibatis API是这个框架的核心,提供了丰富...
本文将深入探讨如何使用Ibatis框架来调用Oracle数据库中的存储过程,并实现返回自定义类型的处理方法。 #### Oracle自定义类型简介 Oracle支持用户自定义数据类型,这为复杂数据结构的应用提供了极大的便利。...
Ibatis,全称为MyBatis,是一个优秀的Java持久层框架,它主要负责SQL映射,使得开发者能够将注意力集中在编写SQL语句上,而无需关注JDBC代码的编写。Ibatis消除了几乎所有的JDBC代码和手动设置参数以及获取结果集的...
### MyBatis 入门与基础配置 ...通过以上详细介绍,我们可以看到MyBatis提供了一种非常灵活的方式来处理数据库操作,尤其适合需要对SQL语句有精细控制的场景。同时,它还提供了丰富的配置选项来满足不同的应用场景。
SQL Maps是iBATIS的核心,它是XML配置文件,用于定义数据库操作的映射规则。在SQL Maps中,你可以定义SQL查询、存储过程以及它们的参数和返回值。这些映射文件将SQL语句与Java对象直接关联,使得在代码中无需手动...
MyBatis由SQL Map和iBATIS发展而来,是一个优秀的轻量级ORM(Object-Relational Mapping,对象关系映射)框架,它简化了数据库操作,使得开发者可以直接用Java代码来编写SQL语句,从而避免了JDBC的繁琐工作。...
Ibatis提供了事务管理、结果映射等功能,使得数据库操作变得更加简单。 2. **Spring**: Spring框架是一个全方位的后端解决方案,它包括依赖注入(DI)、面向切面编程(AOP)、数据访问、Web应用、事务管理等多个...
Ibatis,全称为MyBatis,是一个优秀的Java持久层框架,它主要负责简化数据库操作,使得开发者无需编写大量的SQL代码,而是将SQL语句与Java代码分离,通过XML或注解方式配置和映射原生信息,从而将接口和Java的POJOs...