最近复习一下spring和ibatis的相关知识,做个简单的项目实践一下
准备工作:
myeclipse7.5+tomcat 6.0+MySQL
所需要的jar包:
下面是项目的实现:
MySQL:
数据库名:xxx,表名:user
列名和字段类型:
项目结构:
web.xml配置:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<!-- 初始化参数 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>
<!-- spring的启动 -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!-- struts的启动 -->
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
applicationContext.xml的配置:
<?xml version="1.0" encoding="UTF-8"?>
<beans default-autowire="byName"
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/xxx" />
<property name="username" value="root" />
<property name="password" value="kyo" />
</bean>
<bean id="client" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
<property name="dataSource">
<ref local="dataSource"/>
</property>
<property name="configLocation" value="classpath:com/kyo/resources/sqlmap-config.xml">
</property>
</bean>
<bean id="userDAO" class="com.kyo.DAO.IbatisUserDAO">
<property name="client" ref="client"></property>
</bean>
<bean id="userService" class="com.kyo.service.UserService">
<property name="userDAO" ref="userDAO"></property>
</bean>
<bean id="LoginAction" class="com.kyo.actions.Login">
<property name="userService" ref="userService"></property>
</bean>
</beans>
sqlmap-config.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>
<sqlMap resource="com/kyo/resources/user.xml"/>
</sqlMapConfig>
action中Login类的设置:
package com.kyo.actions;
import java.util.List;
import com.kyo.model.User;
import com.kyo.service.IUserService;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;
import com.opensymphony.xwork2.Preparable;
public class Login extends ActionSupport implements ModelDriven<User>,
Preparable {
private String id;
private User user;
private List<User> users;
private IUserService userService;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
public List<User> getUsers() {
return users;
}
public void setUsers(List<User> users) {
this.users = users;
}
public void setUserService(IUserService userService) {
this.userService = userService;
}
public void prepare() throws Exception {
if (id == null || id.length() == 0)
user = new User();
else
user = userService.getUserById(Integer.parseInt(id));
}
public User getModel() {
return user;
}
public String execute() {
if (userService.isLogin(user))
return SUCCESS;
return INPUT;
}
public String findAllUsers() {
users = userService.getAllUsers();
if (users.size() != 0)
{
return SUCCESS;
}
else
return ERROR;
}
}
struts.xml的配置:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<constant name="struts.objectFactory.spring.autoWire" value="type" />
<constant name="struts.objectFactory" value="spring" />
<include file="struts-default.xml"/>
<package name="struts2" extends="struts-default">
<default-interceptor-ref name="paramsPrepareParamsStack" />
<!-- aciton的class为applicationContext.xml中的注册名 -->
<action name="login" class="LoginAction" method="execute">
<result name="success">/success.jsp</result>
<result name="input">/index.jsp</result>
</action>
<action name="show" class="LoginAction" method="findAllUsers">
<result name="success">/list.jsp</result>
<result name="error">/error.jsp</result>
</action>
</package>
</struts>
其它的诸如model层、DAO层、service层大同小异,不一一赘述。
页面很简单,
登录页面:
展示数据页面:
评论:这次实践中碰到很多异常,查阅资料中,也碰到很多相关性的问题。
比如:
1.Ibatis中的配置文件sqlmap-config.xml和user.xml头部很容易出错,需注意
sqlmap-config.xml
<!DOCTYPE sqlMapConfig
PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN"
"http://ibatis.apache.org/dtd/sql-map-config-2.dtd">
user.xml
<!DOCTYPE sqlMap
PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"
"http://ibatis.apache.org/dtd/sql-map-2.dtd">
如果出错,会报出
引用
Caused by: org.xml.sax.SAXParseException: Document root element "sqlMap", must match DOCTYPE root "sqlMapConfig".
2.Ibatis中client配置属性路径问题
<property name="configLocation" value="classpath:com/kyo/resources/sqlmap-config.xml">
</property>
3.Ibatis关键点,必须配置
org.springframework.orm.ibatis.SqlMapClientFactoryBean,否则会出现空指针错误,ibatis不能起作用
4.另外很多问题都是由于jar包引用冲突,缺失jar包等问题,碰到这些问题需要小心排查,实在不行,百度知道,你就知道。
- 大小: 51.9 KB
- 大小: 25.4 KB
- 大小: 41.4 KB
- 大小: 25.1 KB
- 大小: 24.6 KB
分享到:
相关推荐
目标:WEB项目-集成Flex3+BlazeDS3.2+Spring2.5.6+iBatis2.3.4+Struts2.1.8,重在整合Spring与Struts2,并采用托管的方式,即Struts2 action托管于Spring 优点:这是一种保守的混合开发模式,既充分利用了原有的...
用struts2+spring+ibatis实现了 增删查改翻页功能,使用的数据库是mysql, web服务器是tomcat
flex+spring+struts2+ibatis 整合的eclipse工程,可以导入eclipse环境下直接使用,因为加入开发的jar大于了上传的最大限制,只能把jar另外打包上传,下载可以从我上传资源的lib1,lib2下载,这个工程的搭建花费了我两...
基于spring+struts+ibatis的java web框架
开发环境说明 ...本示例完整地结合Struts2+Spring2+iBatis2+MySQL5,演示了一个用户表的增、删、改、查。 想完整学习Struts2+Spring+iBatis的同仁,可以在这个例子中学习或模仿最基本也是最核心的技术要点。
此资源是一个完成的Web Project,采用ssi框架(struts+spring+ibatis),mysql数据库
struts2+ibatis+spring+Hessian 整合项目 web项目整合,服务端用hessian协议远程调用服务端的方法,hessian是用spring代理整合,struts2+ibatis+spring的整合项目,用作学习和开发基础平台构建很有用处,工程导入...
spring iBATIS struts1集成例子,详细源码
这个是自己在刚开始接触java时写的一个Spring+Struts+ibatis结构的web工程,实现了对一张表的增删查改
Struts 1+Struts 2+Spring+Hibernate+iBATIS知识
自己写的一个maven管理的spring+struts2+ibatis+velocity实例。项目已经打包好了,直接导入部署即可。
Struts+Spring+ibatis开发的Jpetstore宠物商店的开源程序,在SourceForce上下载的,学JAVA WEB开发的人研究的热门开源程序。有需要的同学分享吧!这里提供的是一个下载地址,因为有点大,所以就提供了一个地址,大家...
这是本人从实际项目开发中总结出来的,具有很强的实用性,有关Struts,Spring,Ibatis,web 四个文件的详细配置。值得初学者,以及想实际搭建框架者学习。
提供ssi ssh项目所需的所有jar包,只需解压放到你的web项目的lib包下即可发布运行。你下载的web项目是不是缺包报错呢?下载--解压--放到web的lib下--发布--启动tomcat即可,帮到你点个赞,缺数据库驱动的,请下载我的...
WEB项目-集成Flex3_BlazeDS3[1].2_Spring2.5.6_iBatis2.3.4_Struts2.1.8
很详细,已经搭通,功能有注册和登陆,简单的实例,集成了spring3.2.6和struts2.3.15以及ibatis2.3.4
以Java EE主流框架整合应用及项目开发为主线,通过Java Web开发中最常见的19个典型模块和5个完整的项目案例,详细介绍了Struts 2.x、Spring、Guice、Hibernate、iBATIS、JPA、JSF和AJAX等热门开源技术及JSP +Java ...
以Java EE主流框架整合应用及项目开发为主线,通过Java Web开发中最常见的19个典型模块和5个完整的项目案例,详细介绍了Struts 2.x、Spring、Guice、Hibernate、iBATIS、JPA、JSF和AJAX等热门开源技术及JSP +Java ...
以Java EE主流框架整合应用及项目开发为主线,通过Java Web开发中最常见的19个典型模块和5个完整的项目案例,详细介绍了Struts 2.x、Spring、Guice、Hibernate、iBATIS、JPA、JSF和AJAX等热门开源技术及JSP +Java ...
3.如果您不是采用MyEclipse5.1开发,可能无法部署项目,或者提示什么一个文件上锁什么的,请不要使用导入项目,您可以自己建立一个 web工程,名字叫做bmsh(一定要bmsh,因为我页面中的图片和js引用的时候写了绝对...