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

iBatis-定义Result类

阅读更多
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;   
  }   
  
}   
  
  
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="myResult" class="AccountResult">   
    <result property="id" column="ACC_ID"/>   
    <result property="firstName" column="ACC_FIRST_NAME"/>   
  
  </resultMap>   
  
  <select id="getByLike" resultClass="AccountResult" parameterClass="Account">   
      select ACC_ID as id,   
      ACC_FIRST_NAME as firstName   
      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: AccountResult.java   
  
  
public class AccountResult {   
  
  
  
  private int id;   
  private String firstName;   
  
  
  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;   
  }   
}   
  
  
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(((AccountResult)list.get(0)).getFirstName());   
  
  }   
  
}   
  
  
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"/>   
  
</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("");   
    }   
  }   
  
  
}   
分享到:
评论

相关推荐

    ibatis-sqlmap_2.3.4_2.jar两个版本的jar包

    4. Result Maps:定义了查询结果如何映射到Java对象,包括字段与属性的对应关系,以及复杂的关联映射。 四、主要功能 1. 动态SQL:Ibatis-SqlMap支持在XML映射文件中编写动态SQL,使得SQL生成更加灵活。 2. 缓存...

    ibatis-sqlmap-2.jar.zip

    3. 结果映射:`&lt;resultMap&gt;`元素是iBatis中非常关键的部分,它定义了如何将数据库查询结果映射到Java对象。例如,可以使用`&lt;id&gt;`, `&lt;result&gt;`, `&lt;association&gt;`和`&lt;collection&gt;`等子元素来指定主键、普通字段、关联...

    ibatis-2.3.

    1. **SQL Maps**: iBATIS 的核心是 SQL Maps,它们是 XML 文件,用于定义 SQL 查询和结果映射。开发者可以在这些文件中编写动态 SQL,使得 SQL 语句可以根据传入的参数灵活变化。 2. **Data Mapper API**: 这是 ...

    iBATIS-SqlMaps-2_ja.pdf

    - **Result Maps**:定义结果集映射规则,用于将查询结果转换为 Java 对象。 #### 动态 SQL 支持 iBATIS 支持动态 SQL,即根据运行时的条件动态构建 SQL 语句。这包括: - **二进制条件元素**:例如 `&lt;if&gt;` 和 `...

    iBATIS-SqlMaps-2_cn.pdf

    在XML描述文件中,SQL Maps定义了Java Bean、Map实现以及基本数据类型的包装类如何与数据库中的表和记录对应。这些映射文件通常包含SQL查询、存储过程以及事务管理等元素,使得开发者无需编写大量JDBC代码就能完成...

    ibatis-sqlMap

    - **Result Maps**:定义了如何将数据库查询结果映射到Java对象的规则。 - **Implicit Result Maps**:隐式的结果映射,适用于简单的情况。 - **Primitive Results**:处理基本数据类型的查询结果。 - **Complex ...

    ibatis-2.3.4.726.jar

    5. Result Maps:Result Maps定义了如何将数据库查询结果映射到Java对象,包括处理一对一、一对多、多对多的关系。 6. Parameter Maps:Parameter Maps负责将Java对象的属性值绑定到SQL语句的参数,支持预编译参数...

    iBATIS-3-User-Guide.pdf

    - **探索映射的 SQL 语句**:iBATIS 通过在 XML 配置文件中定义 SQL 语句的方式来进行 SQL 映射,这些 SQL 语句可以通过 `SqlSession` 执行。 ```java List&lt;User&gt; users = sqlSession.selectList("namespace....

    iBATIS-3-User-Guide

    - iBATIS 支持通过 XML 配置文件来定义 SQL 语句及其结果映射。 - **选择查询** (`select`):定义如何从数据库中查询数据。 - **插入、更新、删除操作** (`insert`, `update`, `delete`):定义对数据库表的操作。 ...

    iBATIS-3用户手册(英文版)

    - **id**, **result**:定义列到属性的基本映射。 - **association**:用于处理一对多关系。 - **collection**:用于处理多对多关系。 - **discriminator**:用于判断不同类型的子结果集。 #### 七、缓存机制 ...

    ibatis-缓存使用示例

    2. 映射缓存:在具体的SQL映射语句(如`&lt;select&gt;`, `&lt;insert&gt;`, `&lt;update&gt;`, `&lt;delete&gt;`)中,通过`@CacheResult`或`@CacheEvict`注解来声明哪些操作需要缓存,哪些操作会导致缓存失效。 3. 使用缓存:在Java代码中...

    ibatis-2.3.4 开发包 及 官方权威文档(开发指南+入门教程)

    7. **src**:源代码目录,可能包含了 Ibatis 框架的核心类和接口,可供学习和参考。 8. **doc**:文档目录,包含官方的开发指南和入门教程,是学习 Ibatis 必不可少的资料。 9. **lib**:库文件夹,可能包含了 ...

    ibatis-2.3.0.677.jar.zip

    4. **结果映射(Result Maps)**:Ibatis提供了结果映射机制,可以将查询结果自动映射到Java对象。在XML映射文件中定义ResultMap元素,指定列名与Java字段的对应关系,以及处理复杂关联关系的方法。 5. **参数映射...

    ibatis-2.3

    3. **参数映射**:Ibatis通过`@Param`注解和`@Results`、`@Result`注解处理输入参数和输出结果,实现Java对象与数据库字段之间的映射。在2.3版本中,还可以使用`&lt;parameterMap&gt;`和`&lt;resultMap&gt;`标签进行配置。 4. *...

    iBatis_SqlMap的配置总结[1]

    SqlMap是iBatis的核心配置文件,用于定义数据库交互的各种操作。以下是关于iBatis_SqlMap配置的一些关键知识点: 1. **命名空间(Namespace)**: 命名空间是SqlMap配置中的一个重要概念,用于区分不同的SqlMap...

    记一次Ibatis的意外发生.docx

    在application-context.xml文件中配置SqlMapClient,需要使用org.springframework.orm.ibatis.SqlMapClientFactoryBean类。这个类中import了多个包,包括com.ibatis.common.xml.NodeletException、...

    ibatis的一个CRUD

    通过以上步骤,我们成功地使用IBatis实现了基本的CRUD操作,包括创建数据库表、配置数据库连接、定义SQL映射规则等。IBatis的优势在于其灵活性和对SQL的直接控制能力,这使得开发者能够更高效地处理复杂的数据访问...

    ibatis入门,Ibatis开发指南,JPetStore-5.0

    - SQL Map:SQL Map是iBatis的主要配置文件,其中包含了SQL查询、存储过程和其他数据库交互的定义。 - Mapper:Mapper接口是Java代码中与SQL Map对应的接口,通过MyBatis的注解或XML配置文件将SQL与接口方法绑定。...

    入门完整ibatis教程集锦

    - 创建 Service 接口和实现类,如 UserService 和 UserServiceImpl,定义业务逻辑方法。 - 在 Service 实现类中,通过 SqlSession 执行 Mapper 方法。 7. **DAO 层封装**: - 可选地,可以创建 DAO 接口和实现类...

    ibatis 一个简单的项目详解

    - **其他工具类**:classes12.jar、ognl-2.6.11.jar ##### 3. 编写实体Bean 实体Bean是ibatis与数据库交互的核心对象,用于封装数据。例如,这里定义了`Student`、`User`和`Page`三个实体Bean。 - **Student.java...

Global site tag (gtag.js) - Google Analytics