说明:用到的就是这些文件(格式),需要的时候,复制粘贴过去修改即可。
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:." />
- < property name = "JDBC.Username" value = "sa" />
- < property name = "JDBC.Password" value = "sa" />
- </ dataSource >
- </ transactionManager >
- <!-- List the SQL Map XML files. They can be loaded from the
- classpath, as they are here (com.domain.data...) -- >
- < sqlMap resource = "com/mydomain/data/Account.xml" />
- <!-- List more here...
- < sqlMap resource = "com/mydomain/data/Order.xml" />
- < sqlMap resource = "com/mydomain/data/Documents.xml" />
- -- >
- </ sqlMapConfig >
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.mydomain.domain.Account" />
- <!-- 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 >
- <!-- 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 >
- </ sqlMap >
SimpleExample.java
- package com.mydomain.data;
- import com.ibatis.sqlmap.client.SqlMapClient;
- import com.ibatis.sqlmap.client.SqlMapClientBuilder;
- import com.ibatis.common.resources.Resources;
- import com.mydomain.domain.Account;
- import java.io.Reader;
- import java.io.IOException;
- import java.util.List;
- import java.sql.SQLException;
- /**
- * This is not a best practices class. It's just an example
- * to give you an idea of how iBATIS works. For a more complete
- * example, see JPetStore 5.0 at http://www.ibatis.com.
- */
- public class SimpleExample {
- /**
- * SqlMapClient instances are thread safe, so you only need one.
- * In this case, we'll use a static singleton. So sue me. ;-)
- */
- private static SqlMapClient sqlMapper;
- /**
- * It's not a good idea to put code that can fail in a class initializer,
- * but for sake of argument, here's how you configure an SQL Map.
- */
- static {
- try {
- Reader reader = Resources.getResourceAsReader( "com/mydomain/data/SqlMapConfig.xml" );
- sqlMapper = SqlMapClientBuilder.buildSqlMapClient(reader);
- reader.close();
- } catch (IOException e) {
- // Fail fast.
- throw new RuntimeException( "Something bad happened while building the SqlMapClient instance." + e, e);
- }
- }
- public static List selectAllAccounts () throws SQLException {
- return sqlMapper.queryForList( "selectAllAccounts" );
- }
- public static Account selectAccountById ( int id) throws SQLException {
- return (Account) sqlMapper.queryForObject( "selectAccountById" , id);
- }
- public static void insertAccount (Account account) throws SQLException {
- sqlMapper.insert( "insertAccount" , account);
- }
- public static void updateAccount (Account account) throws SQLException {
- sqlMapper.update( "updateAccount" , account);
- }
- public static void deleteAccount ( int id) throws SQLException {
- sqlMapper.delete( "deleteAccount" , id);
- }
- }
Account.java
- package com.mydomain.domain;
- 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;
- }
- }