`
ychda
  • 浏览: 2008 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

iBatis示例程序

阅读更多
纯粹是为了感受一下JavaEye非常好的代码格式化功能。
这样格式化得太漂亮了。

根据iBatis包中的示例程序修改。
com.mydomain.domain包中
1. 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;
    }

    @Override
    public String toString() {
        return "id: " + this.getId() + "\nfirstName: " + this.getFirstName()
                + "\nlastName: " + this.getLastName() + "\nemailAddress: "
                + this.getEmailAddress() + "\n";
    }
}


com.mydomain.data包中
2. 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="com.mydomain.domain.Account" />
	<resultMap class="Account" id="AccountResult">
		<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 id="selectAllAccounts" resultMap="AccountResult">
		select * from ACCOUNT
	</select>
	<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 id="insertAccount" parameterClass="Account">
		insert into ACCOUNT (
			ACC_ID,
			ACC_FIRST_NAME,
			ACC_LAST_NAME,
			ACC_EMAIL
		) values (
			#id#,#firstName#,#lastName#,#emailAddress#
		)
	</insert>
	<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 id="deleteAccountById" parameterClass="int">
		delete from ACCOUNT where ACC_ID = #id#
	</delete>
</sqlMap>

3. 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>
	<transactionManager type="JDBC" commitRequired="false">
		<dataSource type="SIMPLE">
			<property name="JDBC.Driver" value="com.mysql.jdbc.Driver" />
			<property name="JDBC.ConnectionURL" value="jdbc:mysql://localhost:3306/javaee" />
			<property name="JDBC.Username" value="root" />
			<property name="JDBC.Password" value="admin888" />
		</dataSource>
	</transactionManager>
	<sqlMap resource="com/mydomain/data/Account.xml" />
</sqlMapConfig>

4. Service.java
package com.mydomain.data;

import java.io.IOException;
import java.io.Reader;
import java.sql.SQLException;
import java.util.List;

import com.ibatis.common.resources.Resources;
import com.ibatis.sqlmap.client.SqlMapClient;
import com.ibatis.sqlmap.client.SqlMapClientBuilder;
import com.mydomain.domain.Account;

public class Service {
    private static SqlMapClient sqlMapper;

    static {
        try {
            Reader reader = Resources
                    .getResourceAsReader("com/mydomain/data/SqlMapConfig.xml");
            sqlMapper = SqlMapClientBuilder.buildSqlMapClient(reader);
            reader.close();
        } catch (IOException e) {
            throw new RuntimeException("Something bad happend while "
                    + "building the SqlMapClient instance." + e, e);
        }
    }

    @SuppressWarnings("unchecked")
    public List<Account> selectAllAccount() throws SQLException {
        return sqlMapper.queryForList("selectAllAccounts");
    }

    public Account selectAccountById(int id) throws SQLException {
        return (Account) sqlMapper.queryForObject("selectAccountById", id);
    }

    public void insertAccount(Account account) throws SQLException {
        sqlMapper.insert("insertAccount", account);
    }

    public void updateAccount(Account account) throws SQLException {
        sqlMapper.update("updateAccount", account);
    }

    public void deleteAccount(int id) throws SQLException {
        sqlMapper.delete("deleteAccountById", id);
    }
}


5. Test.java
package com.mydomain.data;

import java.util.Iterator;
import java.util.List;

import com.mydomain.domain.Account;

public class Test {
    private static Service service = new Service();

    public static void main(String[] args) throws Exception {
        Test test = new Test();
        // test.testSelectAccountById(2);
        // test.testInsertAccount(44, "aaa", "bbb", "ccc@ddd.com");
        // test.testUpdateAccount(34, "Hu", "Jintao", "hujintao@gov.cn");
        test.testDeleteAccount(44);
        test.testSelectAllAccount();

    }

    public void testSelectAllAccount() throws Exception {
        List<Account> accounts = service.selectAllAccount();
        Iterator<Account> it = accounts.iterator();
        while (it.hasNext()) {
            Account account = (Account) it.next();
            System.out.println(account.toString());
        }
    }

    public void testSelectAccountById(int id) throws Exception {
        Account account = service.selectAccountById(id);
        System.out.println(account.toString());
    }

    public void testInsertAccount(int id, String firstName, String lastName,
            String emailAddress) throws Exception {
        Account account = new Account();
        account.setId(id);
        account.setFirstName(firstName);
        account.setLastName(lastName);
        account.setEmailAddress(emailAddress);
        service.insertAccount(account);
    }

    /**
     * 根据id进行查询,修改其他几个属性,不修改id
     * @param id
     * @param firstName
     * @param lastName
     * @param emailAddress
     * @throws Exception
     */
    public void testUpdateAccount(int id, String firstName, String lastName,
            String emailAddress) throws Exception {
        Account account = service.selectAccountById(id);
        account.setFirstName(firstName);
        account.setLastName(lastName);
        account.setEmailAddress(emailAddress);
        service.updateAccount(account);
    }

    public void testDeleteAccount(int id) throws Exception {
        service.deleteAccount(id);
    }
}



6. createDB.sql - MySQL
create table(
	ACC_ID bigint,
	ACC_FIRST_NAME varchar(20),
	ACC_LAST_NAME varchar(20),
	ACC_EMAIL varchar(30)
);

分享到:
评论
2 楼 leiqing2002 2013-05-02  
create table Account (
acc_id int,
acc_first_name varchar(20),
acc_last_name varchar(20),
acc_email varchar(30)
);
应该添加创建的表名吧
1 楼 gmingsoft04 2008-09-11  
不错,增删改查都有了,麻雀虽小,五脏具全

相关推荐

    Struts+Spring+Ibatis示例

    这个"Struts+Spring+Ibatis示例"提供了一个基础的整合应用,帮助开发者理解这三者如何协同工作。 **Struts** 是一个基于 Model-View-Controller (MVC) 设计模式的Java web框架,主要负责处理用户请求,控制应用程序...

    ibatis doc

    iBatis示例程序.rar iBATIS-SqlMaps-入门.pdf iBATIS-开发指南.pdf iBatis依赖包说明.png iBATIS_DAO-2.2.0.638.zip iBatis示例程序.rar

    JSF+Spring+Ibatis示例

    "JSF+Spring+Ibatis示例"的项目整合了这三个强大的技术,旨在展示它们如何协同工作以构建一个完整的Web应用程序。以下是这个示例中可能涉及的关键知识点: 1. **JSF组件库**:JSF提供了一系列预定义的UI组件,如...

    struts + spring + ibatis 示例

    这个"Struts + Spring + iBatis 示例"项目Demo,旨在展示如何将这三个框架集成到一个应用中,实现高效且松耦合的开发模式。 **Struts框架**是MVC(Model-View-Controller)设计模式的一种实现,主要用于处理Web应用...

    Castle+ibatis代码示例

    在本示例中,Castle的IOC容器被用来管理应用程序中的对象实例,包括iBATIS的数据访问组件。 接下来是iBATIS,这是一个持久层框架,它简化了数据库操作,使得开发者可以将SQL语句直接写在XML配置文件中,而无需编写...

    spring集成ibatis示例-websphere5.1选型webservice

    在本示例中,我们将探讨如何在Spring框架中集成iBATIS,并且将这个集成应用部署到WebSphere 5.1服务器上,并提供一个基于Web服务的接口。首先,我们需要理解Spring和iBATIS的基本概念。 Spring是一个开源的Java企业...

    ibatis的程序例子代码

    总的来说,这个Ibatis示例项目是一个全面的学习资源,涵盖了数据库操作、SQL映射、事务管理和文件处理等多个方面。通过研究这个项目,开发者可以加深对Ibatis的理解,学习如何在实际开发中有效利用Ibatis,以及如何...

    重现经典的ibatis示例项目jpetstore,采用最新的springMVC+mybatis+mysql.zip

    该项目是基于经典的iBatis数据访问框架的JPetStore示例,通过现代的SpringMVC、MyBatis和MySQL数据库技术进行了重新实现。这为我们提供了一个深入理解如何在实际开发中整合这些技术的绝佳机会。以下是对这个项目涉及...

    ibatis-缓存使用示例

    在IT行业中,数据库操作是应用程序开发的核心部分,而iBATIS作为一个流行的持久层框架,它为Java开发者提供了方便的数据访问接口。本示例主要关注iBATIS的缓存功能,这是提升系统性能的重要机制。缓存可以减少对...

    iBATIS实战.pdf

    《iBATIS实战》的最后给出了一个设计优雅、层次清晰的示例程序JGameStore,该示例涵盖全书的大部分知识点,可以作为iBATIS学习和Web开发的经典案例,非常值得深入研究。 编辑推荐 《iBATIS实战》既可为广大的开发...

    ibatis入门开发指南pdf 程序代码示例 jar包

    通过阅读这份“ibatis入门开发指南pdf”和对应的程序代码示例,开发者不仅可以了解iBATIS的基本用法,还能深入理解其实现原理,从而在实际项目中更好地利用这一工具。同时,提供的jar包则包含了运行iBATIS所需的库...

    ibatis简单例子程序

    **示例程序步骤** 1. **初始化**:加载SqlMapConfig.xml,获取SqlSessionFactory。 2. **创建SqlSession**:通过SqlSessionFactory创建SqlSession实例。 3. **操作Mapper**:使用SqlSession的getMapper()方法,传入...

    struts+spring+ibatis整合示例 demo

    Struts、Spring和iBatis是Java开发中常用的三大框架,它们各自负责不同的职责:Struts主要用于MVC(模型-视图-控制器)架构的实现,Spring作为一个全面的后端解决方案,提供了依赖注入、事务管理等功能,而iBatis则...

    Ibatis2.0注解示例.docx

    【标题】:Ibatis2.0注解示例 【描述】:本教程将指导您如何构建一个基于注解的Spring 2.5、Struts2和Ibatis2的集成框架。 【标签】:java、ssi(Spring+Struts+Ibatis)、ibatis2 【部分内容】: 构建SSI...

    IBatis框架简单例子

    自己写的ibatis例子,可以用来入门,也可以学习一下配置文件的配置方法,程序中对可以Student表进行增删改查,自己也可以根据需要添加新的方法,里面有源码和数据库脚本。有需要的,可以下过来看看。

    C# IBatis IBatis基础 完整项目

    该项目由作者亲自编写,旨在弥补网上C#与IBatis结合示例的稀缺,提供一个供学习者实践的平台。 【标签】:“C#”,“Asp.Net”,“IBatis”,“Sql”,“Mvc”分别代表了这个项目涉及的关键技术领域: 1. **C#**:...

    ibatis入门案例程序

    【标题】"ibatis入门案例程序"涉及到的核心知识点是MyBatis框架的使用,这是一个流行的Java持久层框架,用于简化数据库操作。MyBatis通过将SQL语句与Java代码分离,提高了开发效率,并提供了灵活的映射机制,使得...

    ibatis3__发布_入门示例

    iBatis 3是一个持久层框架,它允许开发者通过XML配置文件或注解来映射SQL语句,从而简化了Java应用程序与数据库之间的交互。 ### 1. iBatis 3核心包的导入 要开始使用iBatis 3,首先需要下载其核心包,并将其导入...

    Ibatis3手册 Ibatis3参考手册

    Ibatis3是一款开源的持久层框架,它通过将SQL语句从程序代码中分离出来,并以XML配置文件的形式进行管理,从而实现了数据库访问的灵活控制。与完全面向对象的ORM框架(如Hibernate)不同,Ibatis3提供了一种更加轻量...

    freemark与ibatis动态运用与说明,程序,源代码,文档

    4. 源代码与文档:这个压缩包可能包含示例程序,展示了如何在项目中集成并使用Freemarker和iBatis。源代码通常会包含配置文件、Freemarker模板、iBatis的Mapper接口和XML配置等。文档则可能详细解释了如何配置、使用...

Global site tag (gtag.js) - Google Analytics