`
starbhhc
  • 浏览: 660792 次
  • 性别: Icon_minigender_2
  • 来自: 深圳
社区版块
存档分类
最新评论

iBatis-设置缓存模式-

阅读更多
File: Account.xml   
  
<?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="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>   
  
  
  <cacheModel id="categoryCache" type="LRU">   
    <flushInterval hours="24"/>   
    <property name="size" value="100"/>   
  </cacheModel>   
  
  <select id="getByLike" resultClass="Account" parameterClass="Account" cacheModel="categoryCache">   
      select ACC_ID as id,   
      ACC_FIRST_NAME as firstName,   
      ACC_LAST_NAME as lastName,   
      ACC_EMAIL as emailAddress   
      from ACCOUNT   
  where ACC_EMAIL  = #emailAddress# and  ACC_LAST_NAME = #lastName#   
  </select>   
  
  
  
  <!-- Insert example, using the Account parameter class -->   
  <insert id="insertAccount" parameterClass="Account">   
    insert into ACCOUNT (   
      ACC_ID,   
      ACC_FIRST_NAME,   
      ACC_LAST_NAME,   
      ACC_EMAIL   
    )values (   
      #id#, #firstName#, #lastName#, #emailAddress#   
    )   
  </insert>   
</sqlMap>   
  
  
File: Main.java   
  
import java.util.List;   
  
import com.ibatis.sqlmap.client.SqlMapClient;   
  
public class Main {   
  
  public static void main(String[] a) throws Exception {   
    Util util = new Util();   
    util   
        .executeSQLCommand("create table ACCOUNT(ACC_ID int, ACC_FIRST_NAME varchar,ACC_LAST_NAME varchar,ACC_EMAIL varchar);");   
    util.executeSQLCommand("create table Message(Message_ID int, content varchar);");   
  
    SqlMapClient sqlMapper = util.getSqlMapClient();   
  
    Account account = new Account();   
    account.setId(1);   
    account.setEmailAddress("e");   
    account.setFirstName("first");   
    account.setLastName("last");   
  
    sqlMapper.insert("insertAccount", account);   
    util.checkData("select * from account");   
  
    List list = sqlMapper.queryForList("getByLike", account);   
       
    System.out.println(((Account)list.get(0)).getLastName());   
  
  }   
  
}   
  
  
File: SqlMapConfig.xml   
  
<?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>   
  
  <!-- Configure a built-in transaction manager.  If you're using an    
       app server, you probably want to use its transaction manager    
       and a managed datasource -->   
  <transactionManager type="JDBC" commitRequired="false">   
    <dataSource type="SIMPLE">   
      <property name="JDBC.Driver" value="org.hsqldb.jdbcDriver"/>   
      <property name="JDBC.ConnectionURL" value="jdbc:hsqldb:data/tutorial"/>   
      <property name="JDBC.Username" value="sa"/>   
      <property name="JDBC.Password" value=""/>   
    </dataSource>   
  </transactionManager>   
  
  <!-- List the SQL Map XML files. They can be loaded from the    
       classpath, as they are here (com.domain.data...) -->   
  <sqlMap resource="Account.xml"/>   
  <!-- List more here...   
  <sqlMap resource="com/mydomain/data/Order.xml"/>   
  <sqlMap resource="com/mydomain/data/Documents.xml"/>   
  -->   
  
</sqlMapConfig>   
  
  
File: Util.java   
  
import java.io.Reader;   
import java.sql.Connection;   
import java.sql.DriverManager;   
import java.sql.ResultSet;   
import java.sql.ResultSetMetaData;   
import java.sql.Statement;   
  
import com.ibatis.common.resources.Resources;   
import com.ibatis.sqlmap.client.SqlMapClient;   
import com.ibatis.sqlmap.client.SqlMapClientBuilder;   
  
public class Util {   
  Statement st;   
     
  public Util() throws Exception{   
    // Load the JDBC driver.   
    Class.forName("org.hsqldb.jdbcDriver");   
    System.out.println("Driver Loaded.");   
    // Establish the connection to the database.   
    String url = "jdbc:hsqldb:data/tutorial";   
  
    Connection conn = DriverManager.getConnection(url, "sa", "");   
    System.out.println("Got Connection.");   
    st = conn.createStatement();   
  }   
  public SqlMapClient getSqlMapClient() throws Exception{   
    Reader reader = Resources.getResourceAsReader("SqlMapConfig.xml");   
    SqlMapClient sqlMapper = SqlMapClientBuilder.buildSqlMapClient(reader);   
    reader.close();    
    return sqlMapper;   
  }   
  public void executeSQLCommand(String sql) throws Exception {   
    st.executeUpdate(sql);   
  }   
  public void checkData(String sql) throws Exception {   
    ResultSet rs = st.executeQuery(sql);   
    ResultSetMetaData metadata = rs.getMetaData();   
  
    for (int i = 0; i < metadata.getColumnCount(); i++) {   
      System.out.print("\t"+ metadata.getColumnLabel(i + 1));    
    }   
    System.out.println("\n----------------------------------");   
  
    while (rs.next()) {   
      for (int i = 0; i < metadata.getColumnCount(); i++) {   
        Object value = rs.getObject(i + 1);   
        if (value == null) {   
          System.out.print("\t       ");   
        } else {   
          System.out.print("\t"+value.toString().trim());   
        }   
      }   
      System.out.println("");   
    }   
  }   
  
  
}   
  
  
File: Account.java   
  
  
public class Account {   
  
  private int id;   
  private String firstName;   
  private String lastName;   
  private String emailAddress;   
  
  public int getId() {   
    return id;   
  }   
  
  public void setId(int id) {   
    this.id = id;   
  }   
  
  public String getFirstName() {   
    return firstName;   
  }   
  
  public void setFirstName(String firstName) {   
    this.firstName = firstName;   
  }   
  
  public String getLastName() {   
    return lastName;   
  }   
  
  public void setLastName(String lastName) {   
    this.lastName = lastName;   
  }   
  
  public String getEmailAddress() {   
    return emailAddress;   
  }   
  
  public void setEmailAddress(String emailAddress) {   
    this.emailAddress = emailAddress;   
  }   
  
}   
分享到:
评论

相关推荐

    iBatis-设置缓存模式-Java源码(下载)

    PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-2.dtd"&gt; &lt;sqlMap namespace="Account"&gt; &lt;typeAlias alias="Account" type="Account"/&gt; ...

    ibatis-common.jar包

    通过SqlMapConfig,开发者可以全局配置Ibatis的行为,如数据库连接信息、SQL语句的缓存策略等。 2. **TypeHandler**:TypeHandler是Ibatis处理Java类型和数据库类型之间转换的关键接口。每个数据库字段类型都可能...

    ibatis-缓存使用示例

    总之,iBATIS缓存是提升系统效率的关键技术之一,理解其工作机制并恰当运用,对于构建高效、稳定的应用至关重要。通过"ibatis-缓存使用示例"的学习,开发者能更好地掌握这一技巧,从而在实际项目中发挥出更大的价值...

    ibatis-2.3.3.720.jar

    4. **事务管理**:Ibatis支持手动和自动两种事务管理模式,可以根据业务需求灵活控制事务的边界。 5. **缓存机制**:内置了本地缓存和二级缓存机制,可以有效提升数据读取速度,降低数据库负载。 6. **插件支持**...

    ibatis-2.3.2.715.jar

    8. 支持多种数据库:Ibatis并不依赖特定的数据库,它提供了适配器模式,支持Oracle、MySQL、PostgreSQL等多种数据库。 总结起来,`ibatis-2.3.2.715.jar`作为Ibatis框架的一个版本,具备了完善的数据库操作功能,...

    ibatis-2.3.4.726-src-源代码

    iBatis提供了一级缓存(SqlSession级别)和二级缓存(Mapper级别),可以提高数据读取速度,减少数据库压力。 8. **异常处理** iBatis的异常体系主要由SqlException和DataAccessException组成,方便捕获和处理...

    ibatis-in-action

    - **缓存机制**:介绍iBATIS中的缓存机制,包括一级缓存和二级缓存的区别及使用方法。 - **调优技巧**:提供一系列性能优化建议,如合理使用缓存、优化SQL语句等。 #### 3.2 数据访问对象 - **DAO模式**:阐述DAO...

    hibernate3.jar、ibatis-dao-2.jar、spring.jar、struts.jar、log4j-1.2.9.jar

    Hibernate3版本包含了实体管理、会话管理、缓存机制、查询语言HQL等特性,极大地简化了数据库操作,提高了开发效率。 3. **Struts.jar**:这是Struts 1框架的库,一个基于MVC(Model-View-Controller)设计模式的...

    ibatis-sqlMap

    Read/Write**:读取模式和读写模式下的缓存行为。 - **Serializable Read/Write Caches**:支持序列化的读写缓存。 - **Cache Types**:不同类型的缓存机制,如LRU缓存、FIFO缓存等。 - **Dynamic Mapped ...

    iBATIS-DAO-2

    ### iBATIS Data Access Objects (DAO):一种强大的持久层抽象技术 在深入探讨iBATIS Data Access Objects(DAO)的细节之前,我们先来理解一下这个概念的重要性以及它如何改变Java应用程序的开发方式。 #### 引言...

    iBATIS-SqlMaps-2_cn.rar

    7. **缓存机制**:了解 iBATIS 的缓存模型,以及如何使用缓存提高数据访问性能。 8. **DAO设计模式**:学习如何结合iBATIS构建数据访问对象,以实现与业务逻辑的松耦合。 9. **案例分析**:可能包含实际的项目案例...

    ibatis--dao的应用

    标题 "ibatis--dao的应用" 暗示...总结起来,"ibatis--dao的应用"主要涉及iBatis框架的使用,包括其核心组件、DAO模式的实现、SQL映射以及事务、缓存等特性。掌握这些知识点,可以有效地进行Java应用程序的数据库操作。

    iBATIS-SqlMaps-2_en

    - `&lt;settings&gt;`:允许调整iBATIS的行为,例如设置缓存策略、日志级别等。 - `&lt;resultObjectFactory&gt;`:指定结果对象工厂类,用于创建查询结果的对象实例。 - `&lt;typeAlias&gt;`:为复杂类型提供别名,简化XML中的类型...

    iBATIS-SqlMaps-2_cn.pdf 中文

    6. **事务管理**:iBATIS支持手动和自动两种事务管理模式,可以根据应用场景选择合适的事务边界,确保数据的一致性。 7. **缓存机制**:iBATIS提供了一级和二级缓存,可以提高数据访问速度,减少对数据库的压力。...

    ibatis-2-mybatis-2.3.5.zip

    3. 缓存机制:iBatis内置了本地缓存和二级缓存,有助于减少对数据库的访问频率,提升系统性能。 总结,iBatis 2.3.5以其简洁的设计和强大的功能,在Java世界中占据了一席之地。通过深入学习其源码,不仅可以提升对...

    ibatis-2.3.0.677

    4. **Executor**:执行器接口,负责SQL语句的真正执行,它根据不同的策略实现如简单执行、批处理执行、缓存等不同模式。 5. **ParameterHandler**:参数处理器,将Java对象的参数转换为SQL语句所需的参数值。 6. *...

    iBATIS缓存的使用方法

    ### iBATIS缓存的使用方法 在数据库访问框架iBATIS中,缓存机制是一项重要的功能,它能够显著提高应用程序的性能。本文将详细介绍iBATIS中的缓存使用方法,包括缓存模型的配置、不同类型的缓存控制器以及如何在SQL...

    iBATIS-DAO-2_en

    在IT领域,尤其是在Java开发中,iBATIS与DAO(Data Access Object)模式的结合为开发者提供了一种高效、灵活且可扩展的数据访问方案。本文将深入探讨iBATIS实现DAO的相关知识点,包括其背景、原理、优势以及具体实现...

    iBATIS缓存介绍

    **3.4 设置高速缓存模式实现的特性** 不同的缓存模式具有不同的特性,如只读、序列化等。 **3.5 常见问题** - **3.5.1 如何选择iBATIS高速缓存模型类型** - 选择合适的缓存类型需根据具体的应用场景和需求。 - *...

Global site tag (gtag.js) - Google Analytics