ibatis测试

官方的例子稍作小改:
package com.test.pojos;

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;
  }

}
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">

  <!-- Use type aliases to avoid typing the full classname every time. -->
  <typeAlias alias="Account" type="com.test.pojos.Account"/>
  <typeAlias alias="PageUtil" type="com.test.ibatis.sqlutil.PageUtil"/>

  <!-- Result maps describe the mapping between the columns returned
       from a query, and the class properties.  A result map isn't
       necessary if the columns (or aliases) match to the properties 
       exactly. -->
  <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 with no parameters using the result map for Account class. -->
  <select id="selectAllAccounts" resultMap="AccountResult">
    select * from ACCOUNT 
  </select>

  <!-- A simpler select example without the result map.  Note the 
       aliases to match the properties of the target result class. -->
  <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>
  
   <sql id="selectSql">
      select * from ACCOUNT
   </sql>
   
    <!-- 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>

  <!-- Update example, using the Account parameter class -->
  <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 example, using an integer as the parameter class -->
  <delete id="deleteAccountById" parameterClass="int">
    delete from ACCOUNT where ACC_ID = #id#
  </delete>
  
  <select id="getList" parameterClass="com.test.pojos.Account" resultMap="AccountResult">
        select * from ACCOUNT
        <dynamic prepend="where">
            <isNotNull prepend="and" property="firstName">
                ACC_FIRST_NAME = #firstName#
            </isNotNull>
            <isNotNull prepend="and" property="lastName">
                ACC_LAST_NAME = #lastName#
            </isNotNull>
        </dynamic>
        order by ACC_ID
    </select>

</sqlMap>

AccountDAO.java

      void saveAccount(Account account);
      List<Account> queryAll();
      public List<Account> getAuthorList(Account criteria, int pageNo, int pageSize);

AccountDAOImpl.java
      public void saveAccount(Account account) {
	super.getSqlMapClientTemplate().insert("insertAccount", account);
      }
	
      public List<Account> queryAll() {
	return super.getSqlMapClientTemplate().queryForList("selectAllAccounts");
      }

      public List<Account> getAuthorList(Account criteria, int pageNo,int pageSize) {
        return getSqlMapClientTemplate().queryForList("getList", criteria, pageNo, pageSize);
      }

测试类:
package com.test.dao.test;

import java.util.List;

import com.test.dao.AccountDAO;
import com.test.pojos.Account;

public class AccountDAOTest extends BaseDaoTestCase {
	private AccountDAO accountDao;

	public void setAccountDao(AccountDAO accountDao) {
		this.accountDao = accountDao;
	}
	
	public void testSaveAccount(){
		Account account = new Account();
		account.setEmailAddress("test2");
		account.setFirstName("first3");
		account.setLastName("62");
		accountDao.saveAccount(account);
		super.assertNotNull(account);
	}
	
	public void testQueryAll(){
		List<Account> all = accountDao.queryAll();
		System.out.println(all.size());
		super.assertNotNull(all);
	}
	
	public void testQueryList(){
		Account criteria = new Account();
		criteria.setFirstName("first3");
		int pageNo = 0;
		int pageSize = 10;
		List<Account> list = accountDao.getAuthorList(criteria, pageNo, pageSize);
		System.out.println("list.size():"+list.size());
		super.assertNotNull(list);
	}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值