`

ibatis简单使用

    博客分类:
  • J2EE
 
阅读更多

 

 

      iBATIS与和hibernate不同,它不是直接把类映射为数据库表或者说把类的字段映射为数据库列,而是把SQL语句的参数与结果(也即输入和输出)映射为类

 

一、

 

SqlMapConfig.xml是ibatis最重要的配置文件,主要定义数据源和映射文件的相关信息,如下所示:

 

<?xml version="1.0" encoding="UTF-8" ?>

 

<!DOCTYPE sqlMapConfig      

    PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN"      

    "http://ibatis.apache.org/dtd/sql-map-config-2.dtd">

 

<sqlMapConfig>

 

  <transactionManager type="JDBC" commitRequired="true">

<dataSource type="DBCP">    

<property name="JDBC.Driver"

value="oracle.jdbc.driver.OracleDriver" />

<property name="JDBC.ConnectionURL"

value="jdbc:oracle:thin:@localhost:1521:test" />

<property name="JDBC.Username" value="scott" />

<property name="JDBC.Password" value="tiger" />

<property   name ="Pool.MaximumActiveConnections"   value ="30" /> 

  <property   name ="Pool.MaximumIdleConnections"   value ="10" /> 

<property   name ="Pool.MaximumCheckoutTime"   value ="120000" /> 

<property   name ="Pool.TimeToWait"   value ="500" /> 

<property   name ="Pool.PingQuery"   value ="select 1 from ACCOUNT" /> 

<property   name ="Pool.PingEnabled"   value ="false" /> 

<property   name ="Pool.PingConnectionsOlderThan"   value ="1" /> 

<property   name ="Pool.PingConnectionsNotUsedFor"   value ="1" /> 

</dataSource>

</transactionManager>

 

  <sqlMap resource="com/mydomain/data/Account.xml"/>

 

</sqlMapConfig>

 

transactionManager元素用于配置数据源的相关信息,sqlMap用于配置POJO类的映射文件,要放到resource属性指定的目录下,如下

 

所示:

 

<?xml version="1.0" encoding="UTF-8" ?>

 

<!DOCTYPE sqlMap      

    PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"      

    "http://ibatis.apache.org/dtd/sql-map-2.dtd">

 

<sqlMap namespace="Account">

 

  <typeAlias alias="Account" type="com.mydomain.domain.Account"/>

 

 

  <resultMap id="AccountResult" class="Account">

    <result property="id" column="ACC_ID"/>

    <result property="firstName" column="ACC_FIRST_NAME"/>

    <result property="lastName" column="ACC_LAST_NAME"/>

    <result property="emailAddress" column="ACC_EMAIL"/>

  </resultMap>

 

  <select id="selectAllAccounts" resultMap="AccountResult">

    select * from ACCOUNT

  </select>

 

  <select id="selectAccountById" parameterClass="int" resultClass="Account">

    select

      ACC_ID as id,

      ACC_FIRST_NAME as firstName,

      ACC_LAST_NAME as lastName,

      ACC_EMAIL as emailAddress

    from ACCOUNT

    where ACC_ID = #id#

  </select>

 

注意:在使用查询语句的时候要注意,查询的列一定要与声明resultClass和resultMap中的项一一对应,否则会报invalid column name错误,插入的时候不需要,因为没有result属性。

 

  <insert id="insertAccount" parameterClass="Account">

    insert into ACCOUNT

    values (

      #id#, #firstName#, #lastName#, #emailAddress#

    )

  </insert>

 

 

  <update id="updateAccount" parameterClass="Account">

    update ACCOUNT set

      ACC_FIRST_NAME = #firstName#,

      ACC_LAST_NAME = #lastName#,

      ACC_EMAIL = #emailAddress#

    where

      ACC_ID = #id#

  </update>

 

  <delete id="deleteAccountById" parameterClass="int">

    delete from ACCOUNT where ACC_ID = #id#

  </delete>

 

</sqlMap>

 

resultMap用于定义表字段和类属性直接的映射关系,下面就是sql语句的定义

 

 

二、

 

配置文件编写完成后,就可以通过SqlMapClient类去操作数据库了,如下所示:

 

 

public class SimpleExample {

 

  private static SqlMapClient sqlMapper;

 

  static {

    try {

      Reader reader = Resources.getResourceAsReader("com/mydomain/data/SqlMapConfig.xml");

      sqlMapper = SqlMapClientBuilder.buildSqlMapClient(reader);

      reader.close(); 

    } catch (IOException e) {

      throw new RuntimeException("Something bad happened while building the SqlMapClient instance." + e, e);

    }

  }

 

  public static List<Account> selectAllAccounts () throws SQLException {

    return sqlMapper.queryForList("selectAllAccounts");

  }

 

  public static Account selectAccountById  (int id) throws SQLException {

    return (Account) sqlMapper.queryForObject("selectAccountById", id);

  }

 

  public static void insertAccount (Account account) throws SQLException {

    sqlMapper.insert("insertAccount", account);

  }

 

  public static void updateAccount (Account account) throws SQLException {

    sqlMapper.update("updateAccount", account);

  }

 

  public static void deleteAccount (int id) throws SQLException {

    sqlMapper.delete("deleteAccount", id);

  }

 

  public static void main(String args[]){

 System.out.println("==start==");

 try {

Account ac=new Account();

ac.setId(1);

ac.setFirstName("ss");

ac.setLastName("hhaha");

ac.setEmailAddress("ss@163.com");

SimpleExample.insertAccount(ac);

List list=SimpleExample.selectAllAccounts();

if(list != null){

System.out.println(list.size());

}

} catch (SQLException e) {

e.printStackTrace();

}

  }

 

}


分享到:
评论

相关推荐

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

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

    ibatis简单使用的想法

    ibatis简单使用的想法 ibatis 是一个成熟的框架,现在已经是改名字叫mybatis了,框架的配置比较烦,如xml,dao的书写,还有每个表还要对应于javabean,没有的话,map 也成,这里希望对其进行简单的简化。

    IBatis简单使用

    4. **事务管理**: IBatis提供了简单的事务控制,可以通过编程方式或者配置方式来管理事务的提交、回滚等操作。 5. **缓存机制**: 内置的缓存机制可以提高数据访问效率,减少对数据库的频繁访问。 **使用步骤** 1....

    ibatis的使用教程

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

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

    SQL Maps是iBATIS的核心部分,它们将数据库查询与Java对象绑定,使得数据库操作变得简单直观。 《iBATIS-DAO-2.pdf》可能涉及到了Data Access Object(DAO)模式的实现和iBATIS的结合。DAO模式是一种设计模式,用于...

    使用的iBatis 简单例子

    在这个“使用的iBatis简单例子”中,我们将深入探讨如何配置和使用iBatis进行数据库交互。 首先,iBatis的核心组件包括XML配置文件、SQL映射文件以及SqlSessionFactory。XML配置文件用于定义数据源、事务管理器等...

    ibatis 使用手册

    入门教程通常从简单的Hello World示例开始,逐步引导读者了解如何创建和配置iBatis项目,编写第一条SQL,处理查询结果,以及如何进行异常处理。同时,还会讲解如何在实际项目中结合Spring等框架进行集成使用。 **...

    ibatis简单CRUD例子

    Ibatis可以使用简单的XML或注解进行配置和原始映射,将接口和Java的POJOs(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。 **Ibatis的主要特点** 1. **简洁的API设计**:Ibatis提供了简单易用的...

    ibatis使用手册

    通过 DAO,开发者可以使用简单的接口来操作数据,而无需关心底层的 SQL 实现。 **二、Ibatis 的使用准备** 在开始使用 Ibatis.Net 之前,你需要进行以下步骤: 1. **下载软件包**:从官方网站...

    ibatis使用及环境搭建文档

    一个简单的Ibatis查询操作示例: 1. 定义Mapper XML文件,包含一个查询所有用户信息的SQL语句: ```xml SELECT * FROM users ``` 2. 创建对应的DAO接口: ```java public interface UserMapper { List&lt;User&gt; ...

    ibatis简单例子

    这个"ibatis简单例子"旨在帮助初学者理解Ibatis的基本用法,包括配置文件的设置、SQL映射文件的编写以及如何在Java代码中调用这些映射的SQL。通过实践这两个小例子,可以深入理解Ibatis如何将数据库操作与业务逻辑...

    ibatis 使用简单配置

    ### ibatis 使用简单配置 #### 一、简介 在本文档中,我们将详细介绍如何通过简单的配置来使用ibatis(现在通常被称为MyBatis),并提供一个具体的示例来帮助理解整个配置过程及其应用场景。 #### 二、ibatis简介...

    iBATIS缓存的使用方法

    - 这是最简单的缓存实现方式,使用引用计数来管理缓存项。当一个缓存项的引用计数为零时,该项就会被移除。 - MEMORY缓存不支持统一的失效策略,适合对内存使用没有严格限制的场景。 2. **LRU ...

    maven整合ibatis的简单例子

    下面我们将详细探讨如何将Maven与iBatis整合,以实现一个简单的例子。 首先,我们需要创建一个新的Maven项目。在Maven的`pom.xml`文件中,我们需要添加iBatis和其依赖的数据库驱动(如MySQL驱动)作为项目的依赖。...

    Ibatis简易教程

    在iBatis的简易教程中,我们将通过三个例子来逐步理解如何配置和使用iBatis。首先,我们需要创建数据库和对应的表。在本例中,我们使用MySQL 5.0,并创建了一个名为`contact`的表,包含`contactid`、`firstName`、`...

    Ibatis入门例子,Ibatis教程

    以上就是一个简单的Ibatis入门例子,展示了如何使用Ibatis进行数据库查询。实际上,Ibatis还支持动态SQL、结果映射、参数映射等多种高级特性,可以实现更复杂的业务逻辑。例如,你可以通过使用`&lt;if&gt;`、`&lt;choose&gt;`等...

    ibatis简单实例

    **Ibatis简单实例** 在"IbatisTest"这个简单实例中,我们通常会经历以下步骤: 1. **引入依赖**: 在项目中引入Ibatis的jar包,包括核心库mybatis-x.x.x.jar和相关数据库驱动。 2. **配置SqlMapConfig.xml**: 配置...

    ibatis源码,ibatis源码 ibatis源码 ibatis源码

    ResultMap不仅支持简单的列名映射,还能处理复杂的一对多、一对一关系映射。 六、ParameterHandler ParameterHandler负责设置PreparedStatement的参数。`org.apache.ibatis.executor.parameter.ParameterHandler`...

    Ibatis 入门经典 实例

    Ibatis 是一款著名的轻量级 Java 持久层框架,它提供了一种映射 SQL 和 Java 对象的简单方式,从而减轻了开发人员在数据库操作中的工作负担。这篇实例教程将带你深入理解 Ibatis 的核心概念和常用功能,帮助你快速...

Global site tag (gtag.js) - Google Analytics