`
ysen
  • 浏览: 122193 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

ibatis使用介绍02

阅读更多

SqlMapClient对象

这个对象是iBatis操作数据库的接口(执行CRUD等操作),它也可以执行事务管理等操作。这个类是我们使用iBATIS的最主要的类。它是线程安全的。通常,将它定义为单例。(与hibernatesessionFactory的定义类似)。如:

 

mport java.io.Reader;
import com.ibatis.common.resources.Resources;
import com.ibatis.sqlmap.client.SqlMapClient;
import com.ibatis.sqlmap.client.SqlMapClientBuilder;

public class IbatisSQLMapConfig {

    private static final SqlMapClient sqlMap;

    //在静态区块中初试化返回
    static {
        try {
            //声明配置文件的名称(映射文件被定义在其中)
            String resource = "sql_map_config.xml";

            //利用工具类Resources来读取到配置文件
            Reader reader = Resources.getResourceAsReader(resource);

            //创建SqlMapClient接口的变量实例
            sqlMap = SqlMapClientBuilder.buildSqlMapClient(reader);

        } catch (Exception e) {
            e.printStackTrace();
            throw new RuntimeException(
                    "Error initializing MyAppSqlConfig class. Cause: " + e);
        }
    }
    public static SqlMapClient getSqlMapInstance() {
        //提供静态方法返回静态区块中得到的SqlMapClient
        return sqlMap;
    }
}

 

 

 

如何获得刚插入记录的自增长ID值?

 

<insert id="insertUser" parameterClass="User">

    insert into t_user values (

        null,#username#,#password#

    )

    <selectKey resultClass="int" keyProperty="id">

        SELECT @@IDENTITY AS ID

    </selectKey>  

  </insert>

 

 

 

 

 

 

 

 

 

User user = new User();
		user.setUsername("张三");
		user.setPassword("张三密码");
		
		//如果主键是自动生成的,则其返回值可以通过<selectKey>标签来设置
		//如果不通过<selectKey>标签来设置,则返回值为空!
		//<selectKey >中的keyProperty,是指定User中的id属性,当调用结束之后,
		//user对象的id值和insert方法的返回值都是这条记录的ID值!
		Object obj  = sqlMapper.insert("insertUser", user);

 

 

 

 

 

 

 

 

 

parameterClass的使用

 <insert id="insertUser" parameterClass="User">
  	insert into t_user values (
  		null,#username#,#password#
  	)
  	<selectKey resultClass="int" keyProperty="id">
  		SELECT @@IDENTITY AS ID
  	</selectKey>  	
  </insert>
  
  <insert id="insertUser2">
  	insert into t_user values (
  		null,#username#,#password#
  	)
  	<selectKey resultClass="int" keyProperty="id">
  		SELECT @@IDENTITY AS ID
  	</selectKey>  	
  </insert>

 

 

insertUser使用了parameterClass,所以必需传入User类型的对象

 

 

User user = new User();
		user.setUsername("张三");
		user.setPassword("张三密码");
		
		//传递进去的对象,必须是User类型
		Object obj  = sqlMapper.insert("insertUser", user);

 

 

insertUser2没有使用parameterClass,所以可以传入任意具有相应属性值的对象

 

 

JustAnObject anobj = new JustAnObject();

       anobj.setUsername("用户名");

       anobj.setPassword("用户密码");

       

       //如果没有指定parameterClass属性,则任何一个具有相应属性值

       //的对象都可以被传递进去

       Object obj  = sqlMapper.insert("insertUser2", anobj);

 

 

 

 

 

 

 

 

parameterMap的使用

 

<parameterMap class="User" id="insertUser-param">
  	<parameter property="username"/>
  	<parameter property="password"/>
  </parameterMap>

  <insert id="insertUser" parameterMap="insertUser-param">
  	insert into t_user values (
  		null,?,?
  	)
  	<selectKey resultClass="int" keyProperty="id">
  		SELECT @@IDENTITY AS ID
  	</selectKey>  	
  </insert>

 

parameterMap用于传入参数,以便匹配SQL语句中的?

 

User user = new User();
		user.setUsername("张三dd");
		user.setPassword("张三密码dd");
		
		Object obj  = sqlMapper.insert("insertUser", user);

 

利用parameterMap,可以定义参数对象的属性如何映射到SQL查询语句的动态参数上,注意parameterMap<parameter/>标签的先后顺序不能颠倒!

 

 

 

 

 

 

 

0
0
分享到:
评论

相关推荐

    ibatis 使用手册

    此外,还会介绍如何处理结果集、执行批量操作、使用缓存机制等高级特性。 **iBatis SQL Maps** - **Select**: 用于查询数据,可以返回单个对象、列表或者Map。 - **Insert**: 插入数据,支持自动获取自增主键值。 ...

    ibatis的使用教程

    要开始使用 Ibatis,首先需要从官方网站下载最新版本的 ibatis jar 包,以及 log4j 日志框架的 jar 包。然后,在Java项目中添加这些库,配置log4j.properties以开启SQL日志输出。接着,新建主配置文件sqlMapConfig....

    ibatis系列 详细介绍

    1. **iBATIS概述**:介绍iBATIS的基本概念、设计理念和核心组件,包括SqlMapConfig.xml配置文件、SqlMap接口和SqlMapClient对象等。 2. **映射文件**:详述了SqlMap映射文件的结构和元素,如sql、select、insert、...

    iBATIS缓存介绍

    ### iBATIS缓存介绍 #### 一、缓存介绍 **1.1 缓存对象** 理论上,Web分层设计的各个层都可以有缓存,Web中的任何对象都可以成为缓存的对象。例如: - **HTTP请求结果的缓存**:如页面数据或API响应。 - **...

    ibatis 相关使用文档及安装包ibatis 相关使用文档及安装包

    《iBATIS-SqlMaps-2.pdf》可能是关于iBATIS SQL映射器的详细指南,它会介绍如何编写SQL Map配置文件,这些文件定义了数据库查询和事务处理。SQL Maps是iBATIS的核心部分,它们将数据库查询与Java对象绑定,使得...

    IBatis使用

    使用Ibatis对数据库的访问,实现增删改查的操作 ;

    ibatis使用手册

    【Ibatis 使用手册】 Ibatis 是一款优秀的对象关系映射(ORM)框架,它使得开发者能够在不脱离 SQL 的强大功能的同时,享受面向对象编程的便利。Ibatis.Net 是其针对 .NET 平台的移植版本,它简化了数据访问层(DAL...

    ibatis缓存介绍 - 勇泽 - 博客园.mht

    ibatis缓存介绍 - 勇泽 - 博客园ibatis缓存介绍 - 勇泽 - 博客园ibatis缓存介绍 - 勇泽 - 博客园ibatis缓存介绍 - 勇泽 - 博客园

    ibatis使用及环境搭建文档

    **Ibatis简介** Ibatis,又称为SQL Map,是一个优秀的持久层框架,它允许开发者将SQL语句直接写在配置文件中,与Java代码进行分离,使得...了解并熟练掌握Ibatis的使用,对于提升Java开发效率和代码质量具有重要意义。

    iBatis技术框架介绍

    iBatis技术框架介绍。ibatis2.x教程。

    ibatis总结 ibatis ibatis ibatis ibatis

    Ibatis 是一款轻量级的Java持久层框架,它允许开发者将SQL语句与Java代码分离,从而使得数据库访问更加灵活、易于维护。本篇文章将深入探讨Ibatis的核心概念、最佳实践以及与其他框架如Struts和Spring的整合。 1. ...

    ibatis3资料-介绍

    3. **结果映射改进**:iBATIS3对结果映射进行了优化,支持更复杂的数据结构映射,包括嵌套对象、集合以及使用构造函数进行结果集映射,这极大地增强了框架处理复杂数据的能力。 4. **缓存机制增强**:iBATIS3引入了...

    详细介绍Ibatis的用法

    ### 详细介绍Ibatis的用法 #### Ibatis概述与特点 ...以上是对Ibatis核心特性的详细介绍,通过这些内容,读者可以了解到如何使用Ibatis进行数据库操作,以及如何配置Ibatis来满足不同场景的需求。

    ibatis简易使用 ibatis简易使用 ibatis简易使用

    以下是对iBATIS简易使用的详细解释: 1. **环境准备**: - **jar文件**:iBATIS框架运行需要依赖一些库文件,包括`log4j`用于日志记录,`ibatis`核心库,以及`jdbc`驱动,这些都需要添加到项目的类路径中。 - **...

    ibatis demo,ibatis例子,ibatis示例

    例如,使用`@Param`注解可以指定参数名,或者在XML中使用`#{paramName}`来引用参数。 6. **结果映射**:结果映射允许我们将查询结果自动映射到Java对象。Ibatis提供了多种方式来实现映射,如自动类型匹配、自定义...

    ibatis使用备注

    标题 "ibatis使用备注" 暗示了我们即将探讨的是如何在Java应用程序中使用iBatis这个持久层框架。iBatis是一个轻量级的框架,它允许开发者将SQL语句与Java代码分离,提高了代码的可读性和可维护性。 首先,我们需要...

    ibatis和hibernate的简单介绍

    ### ibatis和Hibernate的简单介绍 #### 一、ibatis简介 ibatis是Apache软件基金会的一个开源项目,它提供了一种轻量级的Java持久层框架。ibatis的核心功能是将SQL语句与Java代码分离,使开发人员可以更加专注于...

    .net中使用iBATIS的小例子

    下面我们将详细探讨iBATIS在.NET中的使用方法,以及如何利用提供的文件进行实践。 首先,了解iBATIS的基本概念。iBATIS是一个轻量级框架,它的核心功能是动态SQL映射,允许开发者编写SQL语句并将其封装到XML配置...

Global site tag (gtag.js) - Google Analytics