首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 编程语言 > Java > 在Spring下装配iBATIS的简单例子
【标  题】:在Spring下装配iBATIS的简单例子
【关键字】:Spring,iBATIS
【来  源】:http://blog.csdn.net/Garriot/archive/2006/06/08/779988.aspx

在Spring下装配iBATIS的简单例子

  
为了方便与安全,需要用Spring+iBATIS进行DAO操作。看代码很容易理解,自己的实验却始终不能运行,不是出现创建beanstackflow错误,就是can not create connection,莫名其妙。人和机器同时~~~~崩溃~~~~~。今天又莫名其妙的搞好了~~~~赶紧写个小例子把装配过程记下来。(例子内容:实现读取本机mysql test库中的state表)
 
(一)首先,先配置好jndi数据源:在{server.dir}\deploy目录下创建dataSource的配置文件。我使用的是mysql文件名必须是mysql-ds.xml,内容大致如下:
<?xml version="1.0" encoding="UTF-8"?>
<datasources>
 <local-tx-datasource>
    <jndi-name>jdbc/StateDS</jndi-name>
<connection-url>jdbc:mysql://localhost:3306/test?useUnicode=true&amp;characterEncoding=GBK</connection-url>
    <driver-class>com.mysql.jdbc.Driver</driver-class>
    <user-name>root</user-name>
    <password>root</password>
 </local-tx-datasource>
</datasources>
说明:jndi-name指定数据源的名字,剩下的数据源配置和平时差不多。
(二)配置web.xmljboss-web.xml
需要在web.xml下添加如下元素用于指定对dataSource的引用:
    <resource-ref>
       <res-ref-name>jdbc/StateDS</res-ref-name>
       <res-type>javax.sql.DataSource</res-type>
       <res-auth>Container</res-auth>
    </resource-ref>  
相应的需要在jboss-web.xml下添加如下内容:
   <resource-ref>
       <res-ref-name>jdbc/StateDS</res-ref-name>
       <jndi-name>java:jdbc/StateDS</jndi-name>
    </resource-ref>
(三)现在开始写一个试验用的javabean(对应表结构)并配置和它相对应sqlmap文件:
/*state.java*/
package state.beans;
 
public class state {
    private int id;
    private String name;
    private String code;
   
    public String getCode() {
       return code;
    }
    public void setCode(String code) {
       this.code = code;
    }
    public int getId() {
       return id;
    }
    public void setId(int id) {
       this.id = id;
    }
    public String getName() {
       return name;
    }
    public void setName(String name) {
       this.name = name;
    }
   
}
然后写一个位于state/maps/目录下的sqlmap文件:state.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE sqlMap
    PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN"
    "http://www.ibatis.com/dtd/sql-map-2.dtd">
 
<sqlMap namespace="state">
    <resultMap id="state" class="state.beans.state">
        <result property="id" column="ID"/>
       <result property="name" column="NAME"/>
       <result property="code" column="CODE"/>
    </resultMap>
    <select id="getAllState" resultMap="state">
       select * from state
    </select>
</sqlMap>
(四)在/WEB-INF/下编写sqlmapconfig配置文件:SqlMapConfig.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMapConfig PUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0//EN"
    "http://www.ibatis.com/dtd/sql-map-config-2.dtd">
 
<sqlMapConfig>
    <settings cacheModelsEnabled="true" enhancementEnabled="true" lazyLoadingEnabled="true" errorTracingEnabled="false" maxRequests="32" maxSessions="10" maxTransactions="5" useStatementNamespaces="false" />
    <transactionManager type="JDBC">
       <dataSource type="JNDI">
           <property name="dataSource" value="java:jdbc/StateDS"/>
       </dataSource>
    </transactionManager>
    <sqlMap    resource="state/maps/state.xml" />
</sqlMapConfig>
 
(五)编写数据库操作的模版类:stateDAO.java
package state.dao;
 
import java.util.List;
import org.springframework.orm.ibatis.support.SqlMapClientDaoSupport;
 
public class stateDAO extends SqlMapClientDaoSupport{
    public List getAllState(){
       return getSqlMapClientTemplate().queryForList("getAllState","0");
    }
}
关键说明:这个类继承自org.springframework.orm.ibatis.support.SqlMapClientDaoSupport。这是SpringiBATIS的操作提供的操作支持。它有一个方法getSqlMapClientTemplate()用于获取操作模版(Spring 为各种数据库操作提供了模版类,用这些模版类处理数据操作更方便更明了也更安全)。queryForList这个方法是由SqlMapClientTemplate类提供的处理ibatis sqlmap映射的方法。
 
(六)设置SpringSpring配置,进行bean映射,实现bean的自动处理:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
 
<beans>
    <bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
       <property name="jndiName">
           <value>java:jdbc/StateDS</value>
       </property>
    </bean>
    <bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean" >
       <property name="configLocation">
           <value>/WEB-INF/sqlMapConfig.xml</value>
       </property>
       <property name="dataSource">
           <ref bean="dataSource" />
       </property>
    </bean>
    <bean id="stateDAO" class="state.dao.stateDAO">
       <property name="sqlMapClient">
           <ref local="sqlMapClient" />
       </property>
    </bean>
</beans>
关键说明:bean dataSource部分用于初始化dataSource作为数据源bean
bean SqlMapClient用于初始化SqlMapClient作为iBATIS的操作对象,需要指定configLocationdataSource属性。
Bean stateDAO就是我们的数据库操作bean,它需要设置sqlMapClient属性(这个属性是由他的超类SqlMapClientDaoSupport指定的)。
 
 
OK!到现在为止工作就基本完成了。Deloy一下,运行,祈祷~~~~~Bingo~~~~~!!!
(在我的机器上还有一个小问题:第一次访问应用的时候总是出错(在访问就没问题了),显示不能创建连接,到现在也不知道为什么,不知道是不是因为机器太烂,难道是人品问题?!)
Hibernate如何配置操作多个数据库:【上一篇】
在java中用JDialog实现弹出窗口:【下一篇】
【相关文章】
  • Ibatis资料
  • 使用 Hibernate 和 Spring AOP 构建泛型类型安全的 DAO
  • 实战Struts+Spring+Hibernate
  • Spring概念
  • Spring带来的“循序方法”
  • iBATIS for .Net 快速入门
  • O/R Mapping解决方案--iBatis
  • 使用Spring的Hello World(基于JBOSS)
  • 结合SPRING 2.0使用JAVA PERSISTENCE API[转载]
  • 深入挖掘IOC、AOP以及Spring中的实现
  • 【随机文章】
  • Linux大观
  • 关于汉字方面的处理
  • 初学ASP编程易犯的一个致命程序问题及解决办法
  • Spring MVC framework深入分析二--ApplicationContext之谜
  • 关于ASP.NET调用JavaScript的实现
  • svchost.exe 进程详解
  • VRV2000 9.E版破解全攻略.
  • VC用ADO访问数据库全攻略
  • 一步一步教你开发《松鼠推箱子》手机游戏
  • TCP/IP基础----为Linux做准备(1)
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 软讯网络 All Rigths Reserved.