官方的例子稍作小改:
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); } }