`
qys2010
  • 浏览: 126900 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

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

阅读更多
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-sqlmap_2.3.4_2.jar两个版本的jar包

    总结,Ibatis-SqlMap作为一个强大的持久层框架,通过XML映射文件实现了SQL与Java代码的解耦,提供了灵活的SQL支持和良好的缓存机制。对于开发者而言,理解其核心概念和使用流程,以及关注不同版本之间的差异,有助于...

    iBATIS-DAO-2.3.4.726.rar_com.ibatis.dao_iBATIS dao 2_iBatis DAO_

    总的来说,iBATIS DAO 2.3.4.726版的源码分析对于学习和理解Java中的持久层设计有极大的帮助。通过阅读和理解源码,开发者不仅能掌握iBATIS DAO的基本使用,还能深入了解其内部实现,提升数据库操作的技巧和优化能力...

    ibatis-缓存使用示例

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

    ibatis-sqlmap-2.3.4.741-sources.zip_4 3 2 1_ibatis-sqlm_ibatis-s

    标题 "ibatis-sqlmap-2.3.4.741-sources.zip_4 3 2 1_ibatis-sqlm_ibatis-s" 暗示了这是一个关于iBATIS SQLMap的源码包,版本号为2.3.4.741,可能是一个增强或修改后的版本,具有特定的优化和改进。描述中提到了针对...

    ibatis-sqlMap相关参考

    在IT领域,Ibatis是一个广泛使用的轻量级持久层框架,它提供了一种将SQL语句与Java代码分离的方式,从而简化了数据库操作。SQLMap是Ibatis的核心组件,它定义了如何执行SQL查询、处理结果集以及映射数据到Java对象。...

    iBATIS-SqlMaps-中文教程

    《iBATIS-SqlMaps-中文教程》是一个深入解析iBATIS框架的资源,适合对Java Web开发感兴趣的初学者和进阶者。iBATIS是一个持久层框架,它允许开发者将SQL语句直接写在XML配置文件中,实现了SQL与Java代码的分离,简化...

    ibatis-2.3.4.726-src-源代码

    《深入解析iBatis 2.3.4.726源码》 iBatis,作为一款轻量级的Java持久层框架,以其灵活、高效的特点,在许多项目中得到了广泛应用。本文将针对iBatis 2.3.4.726版本的源代码进行详尽解读,帮助开发者深入了解其内部...

    ibatis-2.3.3.720.jar

    Ibatis,全称为MyBatis,是一个优秀的Java持久层框架,它主要负责简化数据库操作,使得开发者能够将注意力集中在编写SQL语句上,而无需关注底层的JDBC代码。Ibatis 2.3.3.720.jar是该框架的一个特定版本,包含了...

    ibatis-2.3.0.677.jar

    iBATIS 是一个开源的 Java 框架,主要用于简化数据库与应用程序之间的交互。它在早期广泛应用于企业级应用开发,尤其是在那些需要深度集成 SQL 查询的项目中。 描述 "ibatis jar src ibatis 2 3 0 677" 暗示这个...

    整合后的ibatis-2.3.0.677.jar

    总的来说,Ibatis-2.3.0.677.jar是一个集成了Ibatis框架所有功能的版本,提供了动态SQL、参数映射、结果映射、缓存和映射文件外部化等强大特性,旨在帮助Java开发者更高效、更灵活地进行数据库操作。结合提供的...

    ibatis-2-mybatis-2.3.5.zip

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

    ibatis--dao的应用

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

    ibatis-2.3.0.677

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

    ibatis-2.3.0.677.zip

    iBATIS的核心理念是“SQL Maps”,它提供了一种映射SQL查询和Java对象的方法,避免了传统的JDBC代码中繁琐的参数设置和结果集处理。通过XML配置文件或注解,开发者可以定义SQL语句、参数映射以及结果映射,使得SQL与...

    ibatis源码

    标题"ibatis源码"指出我们关注的是开源的Java持久层框架iBATIS的源代码。这个框架在Java开发中广泛使用,尤其在处理数据库交互时,它提供了一种灵活的方式,将SQL语句与Java代码解耦合。描述中的"ibatis框架源码剖析...

    ibatis2.3-src

    iBatis是一个基于Java的SQL映射框架,它消除了几乎所有的JDBC代码和手动设置参数以及获取结果集的工作。iBatis提供了一个动态的SQL、存储过程以及一个可以将简单的XML或注解配置和强大的映射API完美结合在一起的...

    iBATIS_DAO-2.2.0.638

    5. **缓存机制**:为了提高性能,iBATIS内置了缓存机制,可以在内存中缓存查询结果,减少不必要的数据库访问。 6. **数据源配置**:支持多种数据源,可以根据需求选择不同的数据库连接方式,如单例、连接池等。 7....

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

    源码中`org.apache.ibatis.cache.Cache`接口定义了缓存的基本操作,而具体的缓存实现如`org.apache.ibatis.cache.impl.PerpetualCache`则实现了缓存的存储和读取。 通过阅读和理解iBatis的源码,我们可以更深入地...

Global site tag (gtag.js) - Google Analytics