- 浏览: 115246 次
- 性别:
- 来自: 合肥
最新评论
ibatis+spring+struts 环境配置
ibatis+spring+struts环境配置
步骤:
一、新建工程,添加ibatis、spring和struts的jars;
二、数据库设计.
三、POJO类.
四、pojo类配置文件编写
五、ibatis主配置文件编写【主配置文件只剩下sqlMap了】
六、dao接口和接口实现
七、service接口和接口实现
八、struts action实现及struts-config.xml配置
九、spring配置文件的内容【牵扯到ibatis和struts的整合】
十、测试
二、数据库设计.
三、POJO类.
四、pojo类配置文件编写
五、ibatis主配置文件编写【主配置文件只剩下sqlMap了】
六、dao接口和接口实现
七、service接口和接口实现
八、struts action实现及struts-config.xml配置
九、spring配置文件的内容【牵扯到ibatis和struts的整合】
十、测试
一、新建工程,添加ibatis、spring和struts的jars;
二、数据库设计.
mysql数据库:
- useibatis;
- droptableifexistsuser;
- createtableifnotexistsuser(
- IDtinyintauto_increment,
- LOGIN_NAMEvarchar(10)notnull,
- PASS_WORDvarchar(15)notnull,
- QXvarchar(10)default'guest'notnull,
- MEMOtext,
- primarykey(ID)
- )
- type=innodb
- comment="userinfo";
- insertintouser(LOGIN_NAME,PASS_WORD,QX)values('leh','888','admin');
- insertintouser(LOGIN_NAME,PASS_WORD)values('lek','888');
- commit;
use ibatis; drop table if exists user; create table if not exists user( ID tinyint auto_increment, LOGIN_NAME varchar(10) not null, PASS_WORD varchar(15) not null, QX varchar(10) default 'guest' not null , MEMO text, primary key (ID) ) type=innodb comment="user info"; insert into user(LOGIN_NAME,PASS_WORD,QX) values('leh','888','admin'); insert into user(LOGIN_NAME,PASS_WORD) values('lek','888'); commit;
数据源的配置
1)、配置文件db.properties (位置:resources/properties/db.properties,这里resources和src是一类文件)
- driver=com.mysql.jdbc.Driver
- url=jdbc\:mysql\://localhost\:3306/ibatis
- username=root
- password=54321
driver=com.mysql.jdbc.Driver url=jdbc\:mysql\://localhost\:3306/ibatis username=root password=54321
2)、注册数据源到spring
- !--springloaddataSourceconfigurationpropertyfile-->
- <beanid="propertyConfigurer"class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
- <propertyname="locations">
- <list>
- <value>properties/database.properties</value>
- </list>
- </property>
- </bean>
- <!--dataSource-->
- <beanid="dataSource"class="org.apache.commons.dbcp.BasicDataSource"destroy-method="close">
- <propertyname="driverClassName"value="${driver}"/>
- <propertyname="url"value="${url}"/>
- <propertyname="username"value="${username}"/>
- <propertyname="password"value="${password}"/>
- </bean>
!-- spring load dataSource configuration property file --> <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="locations"> <list> <value>properties/database.properties</value> </list> </property> </bean> <!-- dataSource --> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="${driver}" /> <property name="url" value="${url}" /> <property name="username" value="${username}" /> <property name="password" value="${password}" /> </bean>
三、POJO类.
本例是User实例类:
- packagecom.leadtone.ibatis.domain;
- importjava.io.Serializable;
- publicclassUserimplementsSerializable{
- privateintid;
- privateStringname;
- privateStringpassword;
- privateStringqx;
- privateStringmemo;
- publicintgetId(){
- returnid;
- }
- /**
- *setter和getter方法省略
- */
package com.leadtone.ibatis.domain; import java.io.Serializable; public class User implements Serializable{ private int id; private String name; private String password; private String qx; private String memo; public int getId() { return id; } /** *setter和getter方法省略 */
四、pojo类配置文件编写
本例是User.xml:(位置:com.leadtone.sqlmap.User.xml)
- <?xmlversion="1.0"encoding="UTF-8"?>
- <!DOCTYPEsqlMap
- PUBLIC"-//ibatis.apache.org//DTDSQLMap2.0//EN"
- "http://ibatis.apache.org/dtd/sql-map-2.dtd">
- <sqlMapnamespace="User">
- <typeAliasalias="user"type="com.leadtone.ibatis.domain.User"/>
- <resultMapclass="user"id="UserResult">
- <resultproperty="id"column="ID"/>
- <resultproperty="name"column="LOGIN_NAME"/>
- <resultproperty="password"column="PASS_WORD"/>
- <resultproperty="qx"column="QX"/>
- <resultproperty="memo"column="MEMO"/>
- </resultMap>
- <!--queryallUsers-->
- <selectid="selectAllUsers"resultMap="UserResult">
- select*fromuser
- </select>
- <!--queryuserbyid-->
- <selectid="selectUserById"parameterClass="int"resultMap="UserResult">
- selectID,LOGIN_NAME,PASS_WORD,QX,MEMOfromuserwhereID=#id#
- </select>
- <!--queryuserbyuser-->
- <selectid="selectUserByUser2"parameterClass="map"resultMap="UserResult">
- selectID,LOGIN_NAME,PASS_WORD,QX,MEMOfromuserwhereLOGIN_NAME=#name#andPASS_WORD=#password#
- </select>
- <selectid="selectUserByUser"parameterClass="user"resultMap="UserResult">
- selectID,LOGIN_NAME,PASS_WORD,QX,MEMOfromuserwhereLOGIN_NAME=#name#andPASS_WORD=#password#
- </select>
- <selectid="selectUsersByName"parameterClass="String"resultMap="UserResult">
- selectID,LOGIN_NAME,PASS_WORD,QX,MEMOfromuserwheresnamelike'%$name$%'
- </select>
- <!--
- <insertid="addUser"parameterClass="User">
- insertintouser(ID,LOGIN_NAME,PASS_WORD,QX,MEMO)values(#id#,#name#,#birth#,#score#)
- </insert>
- -->
- <updateid="updateUser"parameterClass="User">
- updateusersetLOGIN_NAME=#name#,PASS_WORD=#password#,QX=#qx#,memo=#memo#whereID=#id#
- </update>
- <deleteid="deleteUser"parameterClass="int">
- deletefromuserwhereID=#id#
- </delete>
- </sqlMap>
<?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="User"> <typeAlias alias="user" type="com.leadtone.ibatis.domain.User"/> <resultMap class="user" id="UserResult"> <result property="id" column="ID"/> <result property="name" column="LOGIN_NAME"/> <result property="password" column="PASS_WORD"/> <result property="qx" column="QX"/> <result property="memo" column="MEMO"/> </resultMap> <!-- query all Users --> <select id="selectAllUsers" resultMap="UserResult"> select * from user </select> <!-- query user by id --> <select id="selectUserById" parameterClass="int" resultMap="UserResult"> select ID,LOGIN_NAME,PASS_WORD,QX,MEMO from user where ID=#id# </select> <!-- query user by user --> <select id="selectUserByUser2" parameterClass="map" resultMap="UserResult"> select ID,LOGIN_NAME,PASS_WORD,QX,MEMO from user where LOGIN_NAME=#name# and PASS_WORD=#password# </select> <select id="selectUserByUser" parameterClass="user" resultMap="UserResult"> select ID,LOGIN_NAME,PASS_WORD,QX,MEMO from user where LOGIN_NAME=#name# and PASS_WORD=#password# </select> <select id="selectUsersByName" parameterClass="String" resultMap="UserResult"> select ID,LOGIN_NAME,PASS_WORD,QX,MEMO from user where sname like '%$name$%' </select> <!-- <insert id="addUser" parameterClass="User"> insert into user(ID,LOGIN_NAME,PASS_WORD,QX,MEMO ) values(#id#,#name#,#birth#,#score#) </insert> --> <update id="updateUser" parameterClass="User"> update user set LOGIN_NAME=#name#,PASS_WORD=#password#,QX=#qx#,memo=#memo# where ID=#id# </update> <delete id="deleteUser" parameterClass="int"> delete from user where ID=#id# </delete> </sqlMap>
五、ibatis主配置文件编写【主配置文件只剩下sqlMap了,事务和数据源都交给spring进行配置和管理】
本例为sql-map-config.xml:(位置:)
- <?xmlversion="1.0"encoding="UTF-8"?>
- <!DOCTYPEsqlMapConfig
- PUBLIC"-//ibatis.apache.org//DTDSQLMapConfig2.0//EN"
- "http://ibatis.apache.org/dtd/sql-map-config-2.dtd">
- <sqlMapConfig>
- <sqlMapresource="com/leadtone/ibatis/sqlmap/User.xml"/>
- </sqlMapConfig>
<?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> <sqlMap resource="com/leadtone/ibatis/sqlmap/User.xml"/> </sqlMapConfig>
六、dao接口和接口实现
1)、本例为UserDao:
- packagecom.leadtone.ibatis.dao;
- importjava.util.List;
- importcom.leadtone.ibatis.domain.User;
- publicinterfaceIUserDao{
- publicList<User>queryAllUsers();
- publicUserqueryUserById(intid);
- publicUserqueryUserByUser(Useruser);
- publicList<User>queryUserByName(Stringname);
- publicvoidaddUser(Useruser);
- publicvoidaddUserBySequence(Useruser);
- publicvoidupdateUser(Useruser);
- publicvoiddeleteUser(intid);
- }
package com.leadtone.ibatis.dao; import java.util.List; import com.leadtone.ibatis.domain.User; public interface IUserDao { public List<User> queryAllUsers(); public User queryUserById(int id); public User queryUserByUser(User user); public List<User> queryUserByName(String name); public void addUser(User user); public void addUserBySequence(User user); public void updateUser(User user); public void deleteUser(int id); }
2)、实现类UserDaoImpl:
- packagecom.leadtone.ibatis.dao.ibatis;
- importjava.util.List;
- importorg.springframework.orm.ibatis.support.SqlMapClientDaoSupport;
- importcom.leadtone.ibatis.dao.IUserDao;
- importcom.leadtone.ibatis.domain.User;
- publicclassUserDaoImplextendsSqlMapClientDaoSupportimplementsIUserDao{
- //注意这里的SqlMapClient接口的声明和下面的static静态代码都不需要了,
- //因为这里继承了spring提供的ibatis模板template类SqlMapClientDaoSupport,不是用原生的SqlMapClient
- //privatestaticSqlMapClientsqlMapClient=null;
- /*
- static{
- Readerreader=null;
- try{
- reader=Resources.getResourceAsReader("com/leadtone/ibatis/sqlmap/SqlMapConfig.xml");
- sqlMapClient=SqlMapClientBuilder.buildSqlMapClient(reader);
- reader.close();
- }catch(IOExceptione){
- e.printStackTrace();
- }
- }
- */
- publicvoidaddUser(Useruser){
- getSqlMapClientTemplate().insert("addUser",user);
- }
- publicUserqueryUserByUser(Useruser){
- System.out.println("---UserDaoImpl---");
- return(User)this.getSqlMapClientTemplate().queryForObject("selectUserByUser",user);
- }
- /*
- *这里主要演示一个模拟用户登录系统验证的操作,主要用了queryUserByUser(Useruser)方法
- */
- }
package com.leadtone.ibatis.dao.ibatis; import java.util.List; import org.springframework.orm.ibatis.support.SqlMapClientDaoSupport; import com.leadtone.ibatis.dao.IUserDao; import com.leadtone.ibatis.domain.User; public class UserDaoImpl extends SqlMapClientDaoSupport implements IUserDao { //注意这里的SqlMapClient接口的声明和下面的static静态代码都不需要了, // 因为这里继承了spring提供的ibatis模板template类SqlMapClientDaoSupport,不是用原生的SqlMapClient //private static SqlMapClient sqlMapClient=null; /* static{ Reader reader=null; try { reader=Resources.getResourceAsReader("com/leadtone/ibatis/sqlmap/SqlMapConfig.xml"); sqlMapClient=SqlMapClientBuilder.buildSqlMapClient(reader); reader.close(); } catch (IOException e) { e.printStackTrace(); } } */ public void addUser(User user) { getSqlMapClientTemplate().insert("addUser", user); } public User queryUserByUser(User user) { System.out.println("---UserDaoImpl---"); return (User) this.getSqlMapClientTemplate().queryForObject("selectUserByUser", user); } /* * 这里主要演示一个模拟用户登录系统验证的操作,主要用了queryUserByUser(User user)方法 */ }
3)、在spring配置文件中配置这个bean
- <!--sqlMapClient-->
- <beanid="<SPANstyle="COLOR:#000000">sqlMapClient</SPAN>"class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
- <propertyname="configLocation"value="sqlmap/sql-map-config.xml"/>
- <propertyname="dataSource"ref="dataSource"/>
- </bean>
- <!--validateloginUser-->
- <!--dao-->
- <beanid="userDao"class="com.leadtone.ibatis.dao.ibatis.UserDaoImpl">
- <propertyname="sqlMapClient"ref="<SPANstyle="COLOR:#000000">sqlMapClient</SPAN>"></property>
- </bean>
<!--sqlMapClient --> <bean id="sqlMapClient " class="org.springframework.orm.ibatis.SqlMapClientFactoryBean"> <property name="configLocation" value="sqlmap/sql-map-config.xml"/> <property name="dataSource" ref="dataSource" /> </bean> <!-- validate loginUser --> <!-- dao --> <bean id="userDao" class="com.leadtone.ibatis.dao.ibatis.UserDaoImpl"> <property name="sqlMapClient" ref="sqlMapClient "></property> </bean>
七、service接口和接口实现
1)IUserLoginService接口
- packagecom.leadtone.ibatis.service;
- importcom.leadtone.ibatis.domain.User;
- publicinterfaceIUserLoginService{
- publicbooleanisLoginUser(Useruser);
- }
package com.leadtone.ibatis.service; import com.leadtone.ibatis.domain.User; public interface IUserLoginService { public boolean isLoginUser(User user); }
2)UserLoginSerivceImpl实现类
- packagecom.leadtone.ibatis.service.impl;
- importcom.leadtone.ibatis.dao.IUserDao;
- importcom.leadtone.ibatis.domain.User;
- importcom.leadtone.ibatis.service.IUserLoginService;
- publicclassUserLoginServiceImplimplementsIUserLoginService{
- privateIUserDaouserDao;
- publicIUserDaogetUserDao(){
- returnuserDao;
- }
- publicvoidsetUserDao(IUserDaouserDao){
- this.userDao=userDao;
- }
- publicbooleanisLoginUser(Useruser){
- returnnull!=userDao.queryUserByUser(user)?true:false;
- }
- }
package com.leadtone.ibatis.service.impl; import com.leadtone.ibatis.dao.IUserDao; import com.leadtone.ibatis.domain.User; import com.leadtone.ibatis.service.IUserLoginService; public class UserLoginServiceImpl implements IUserLoginService { private IUserDao userDao; public IUserDao getUserDao() { return userDao; } public void setUserDao(IUserDao userDao) { this.userDao = userDao; } public boolean isLoginUser(User user) { return null!=userDao.queryUserByUser(user)?true:false; } }
3)在spring中注册这个bean
- <!--service-->
- <beanid="userLoginService"class="com.leadtone.ibatis.service.impl.UserLoginServiceImpl">
- <propertyname="userDao"ref="userDao"></property>
- </bean>
<!-- service --> <bean id="userLoginService" class="com.leadtone.ibatis.service.impl.UserLoginServiceImpl"> <property name="userDao" ref="userDao"></property> </bean>
八、struts action实现及struts-config.xml配置(牵扯到struts和spring的整合)
1)action:
- packagecom.leadtone.web.struts.action;
- importjavax.servlet.http.HttpServletRequest;
- importjavax.servlet.http.HttpServletResponse;
- importorg.apache.struts.action.Action;
- importorg.apache.struts.action.ActionForm;
- importorg.apache.struts.action.ActionForward;
- importorg.apache.struts.action.ActionMapping;
- importcom.leadtone.ibatis.
- 上一篇servlet分页
- 下一篇myEclipse 中常用快捷键
我的同类文章
ibatis(2)
Struts(4)
Spring(2)
<script src="http://csdnimg.cn/jobreco/job_reco.js" type="text/javascript"></script><script type="text/javascript">
csdn.position.showEdu({
sourceType: "blog",
searchType: "detail",
searchKey: "50491857",
username: "",
recordcount: "5",
containerId: "adCollege" //容器DIV的id。
});
</script>
<script type="text/javascript">
$(function () {
setTimeout(function () {
var searchtitletags = 'ibatis+spring+struts 环境配置' + ',' + $("#tags").html();
searchService({
index: 'blog',
query: searchtitletags,
from: 5,
size: 5,
appendTo: '#res',
url: 'recommend',
his: 2,
client: "blog_cf_enhance",
tmpl: '<dd style="background:url(http://static.blog.csdn.net/skin/default/images/blog-dot-red3.gif) no-repeat 0 10px;"><a href="#{ url }" title="#{ title }" strategy="#{ strategy }">#{ title }</a></dd>'
});
}, 500);
});
</script>
<!--AdForward Begin:-->
<script type="text/javascript" src="http://csdnim.qtmojo.com/main/s?user=csdn%7Cblog%7Cbanner2&db=csdnim&border=0&local=yes&js=ie" charset="gbk"></script><!--AdForward End-->
<script type="text/javascript">
var fileName = '50491857';
var commentscount = 0;
var islock = false
</script><script type="text/javascript" src="http://static.blog.csdn.net/scripts/comment.js"></script>
相关推荐
1. **环境配置**: 首先,确保安装了JDK、Tomcat服务器以及相关的IDE。然后,为项目添加所需的库,包括Ibatis、Spring、Struts1的jar包,以及相关的数据库驱动。 2. **创建项目结构**: 创建标准的Web项目目录...
Struts2、Spring和iBatis是Java Web开发中三个非常重要的开源框架,它们共同构建了一个灵活、可扩展且高效的应用程序开发环境。这个“struts2+spring+iBatis框架包”集成了这三个框架,使得开发者能够快速构建基于...
1. **配置环境**:设置项目的构建工具(如Maven或Gradle)、引入相关库,并配置Web.xml文件以启用Struts2和Spring的DispatcherServlet。 2. **搭建Struts2**:创建Action类,定义Action的执行逻辑,配置struts.xml...
标题 "ibatis+struts2.0+spring" 指的是一个集成开发环境,它结合了三个重要的Java企业级框架:iBatis、Struts2.0和Spring。这个项目可能是为了帮助开发者理解如何在实际应用中整合这三个组件,以便构建更高效、可...
Struts+Spring+Ibatis环境配置(一) - zwjxf的专栏 - 博
**SSI+EXT(Struts2+Spring+Ibatis+Ext)**是一个常见的Java Web开发框架组合,用于构建高效、可扩展的企业级应用。这个框架集合了Struts2作为MVC框架,Spring作为依赖注入和事务管理工具,Ibatis作为持久层解决方案...
1. **Spring** 配置:首先,需要配置Spring的ApplicationContext,声明Struts2和iBatis的相关bean,如Action类、DAO接口及其实现、SqlSessionFactory等。Spring的DI特性使得这些组件之间的依赖关系可以通过配置文件...
首先,你需要设置项目环境,包括导入相应的jar包,配置web.xml文件,以启动Struts2和Spring。接着,创建Action类,定义业务逻辑,这些Action类可以通过Spring的依赖注入获得必要的服务。然后,配置iBatis的...
SSI整合,即Struts2、Spring和iBatis的集成,为开发者提供了一个强大的、灵活的和可扩展的开发环境。下面我们将深入探讨这三个框架的核心功能、整合过程以及如何在实际项目中利用它们实现log4j日志记录和文件上传...
Struts、Spring 和 iBatis 是 Java Web 开发中三个非常重要的开源框架,它们共同构建了一个灵活、可扩展且易于维护的系统架构。这个"Struts+Spring+Ibatis示例"提供了一个基础的整合应用,帮助开发者理解这三者如何...
在"spring+ibatis+struts2+dwr反转"项目中,你将找到这些组件的配置文件、源代码、以及可能的测试用例和运行脚本。通过理解和学习这个项目,你可以深入理解这些技术的协同工作方式,从而提升你在Java Web开发中的...
这个"struts2_iBATIS_spring"压缩包文件包含了整合这三个框架所需的源代码和配置文件,开发者可以通过学习和实践这些示例,加深对Struts2、iBATIS和Spring整合的理解,并运用到实际项目中。这种整合方式在Java Web...
Struts2、Spring和iBatis是Java Web开发中常用的三大框架,它们分别负责MVC模式中的视图、控制和数据访问层。Oracle则是一种广泛使用的大型关系型数据库管理系统。这个"struts2+spring+ibatis+oracle整合的登陆系统...
Struts2、iBatis、Spring以及AjaxAnywhere是四个在Java Web开发中广泛使用的开源框架。这个框架组合提供了从模型到视图的完整解决方案,强调了分层架构和松耦合,使得开发者能够构建高效、可维护的Web应用程序。 1....
在Struts+Spring+iBatis的组合中,Spring 主要负责管理对象的生命周期,包括DAO(数据访问对象)和Service层对象,以及事务管理和应用程序上下文的创建。 3. **iBatis(现为MyBatis)**: iBatis 是一个SQL映射...
Struts、iBatis和Spring是Java开发中的三个重要框架,它们在构建Web应用程序时各自承担着不同的职责。本项目“网上宠物店”利用这些框架的集成,提供了一个完整的、可运行的示例,让我们来深入了解一下它们的核心...
5. 如何将Struts2、Spring和iBatis整合在一起,包括配置文件的设置和依赖注入。 通过深入研究这个例子,你可以学习到SSI框架整合的实际应用,这对于提升Java Web开发技能和理解企业级应用的架构设计非常有帮助。...
Struts2、Spring和iBatis是Java Web开发中经典的三大框架组合,它们协同工作能够构建出高效、灵活的企业级应用程序。在这个“struts2+spring+ibatis增删查改翻页代码示例”中,我们将深入探讨这三个框架如何协同实现...
综上所述,搭建Struts2+Spring+Ibatis环境需要安装相应的jar包,并配置Struts2的`struts.xml`文件,以及可能涉及到的其他如Spring的配置文件。对于初学者来说,这个教程会指导他们如何整合这三个框架,创建一个完整...
【标题】"spring+ibatis+struts2+dwr反转部分架包"涉及的是一个经典的Java Web开发技术栈,这个组合被广泛应用于构建基于服务端的动态Web应用程序。以下是这四个关键技术的详细介绍: 1. **Spring框架**:Spring是...