最近复习一下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
分享到:
相关推荐
"Struts2+Spring+Ibatis+MySQL" 是一个经典的Java Web开发框架组合,用于构建高效、可扩展的企业级应用程序。这个组合集成了强大的MVC(Model-View-Controller)框架Struts2、依赖注入与面向切面编程的Spring框架、...
Struts2、Spring和iBatis是Java Web开发中三个非常重要的开源框架,它们共同构建了一个灵活、可扩展且高效的应用程序开发环境。这个“struts2+spring+iBatis框架包”集成了这三个框架,使得开发者能够快速构建基于...
Struts2+Spring+Hibernate和Struts2+Spring+Ibatis是两种常见的Java Web应用程序集成框架,它们分别基于ORM框架Hibernate和轻量级数据访问框架Ibatis。这两种框架结合Spring,旨在提供一个强大的、可扩展的、易于...
Struts2、Spring3和iBATIS是Java Web开发中常用的三大框架,它们各自负责不同的职责,协同工作可以构建出高效、松耦合的Web应用。在这个“struts2+spring3+ibatis项目整合案例”中,我们将深入探讨这三个框架如何...
在Java Web开发中,Spring、Struts2和iBatis是三个非常重要的框架,它们各自在不同的层面上提供了强大的功能。Spring是一个全面的后端应用框架,提供了依赖注入(DI)、面向切面编程(AOP)、事务管理等功能;Struts...
Struts2、Spring和iBatis是Java Web开发中常用的三个开源框架,它们各自负责不同的职责,协同工作可以构建出高效、松耦合的Web应用。这个整合项目实例旨在展示如何将这三个框架集成到一起,以实现更强大的功能。 1....
在Spring+Struts+ibatis这种经典的Java Web开发框架组合中,主要涉及到三层架构:表现层(Action)、业务逻辑层(Service)和数据访问层(DAO)。这些组件协同工作,实现了应用程序的功能。以下是对各部分的详细解释...
Struts、Spring 和 iBATIS 是Java开发领域中三大经典的开源框架,它们组合起来可以构建出高效、可维护的企业级Web应用。这个例子是利用这三个框架实现了一个基础的增删改查(CRUD)功能,涵盖了数据库操作、业务逻辑...
通过研究这个Demo,开发者可以学习到如何在实际项目中运用Struts 2进行控制器层的设计,利用Spring进行服务层和持久层的管理,以及如何通过iBatis进行数据库操作。这有助于提高Java Web开发的效率和代码质量。
总的来说,"struts2+spring+ibatis"项目实例展示了如何利用这三大框架来构建一个完整的Web应用程序。通过Struts2处理请求,Spring进行依赖管理和事务控制,以及iBatis处理数据库操作,我们可以构建出高效、模块化且...
Struts、Spring 和 iBatis 是 Java Web 开发中三个非常重要的开源框架,它们共同构建了一个灵活、可扩展且易于维护的系统架构。这个"Struts+Spring+Ibatis示例"提供了一个基础的整合应用,帮助开发者理解这三者如何...
Struts、Spring和iBatis是Java开发中常用的三大开源框架,它们各自负责应用程序的不同层面,共同构建了一个灵活且强大的企业级应用开发解决方案。这里,我们深入探讨这三个框架以及它们如何协同工作。 **Struts框架...
标题中的"spring+struts+ibatis"是指一种经典的Java Web开发架构,也被称为SSM框架。这个架构结合了Spring框架、Struts2框架和iBatis(现在称为MyBatis)来构建高效且可维护的Web应用。下面将详细阐述这三个框架以及...
Struts2、Spring和iBatis是Java Web开发中经典的三大框架组合,它们协同工作能够构建出高效、灵活的企业级应用程序。在这个“struts2+spring+ibatis增删查改翻页代码示例”中,我们将深入探讨这三个框架如何协同实现...
Struts2、Spring和iBatis是Java Web开发中常用的三大框架,它们分别负责MVC模式中的Action层、业务逻辑层和服务数据访问层。本文将详细介绍这三个框架如何整合,以及在实际项目中如何运用。 首先,Struts2作为表现...
Struts2、Spring和iBatis是Java Web开发中经典的三大框架,它们组合起来可以构建出高效、可维护的企业级应用程序。在这个“struts2+spring+ibatis”的小demo中,我们将深入探讨这三个框架的核心功能以及它们如何协同...
Struts2、Spring、iBatis以及Oracle是Java Web开发中的四大核心组件,它们共同构建了一个强大且灵活的后端架构。在这个实例中,我们将会深入探讨这些技术如何协同工作,实现分页搜索功能和上传附件操作。 1. **...
这个项目"spring+ibatis+struts2+dwr反转"整合了四个关键的Java Web开发组件,它们分别是Spring、iBatis、Struts2和Direct Web Remoting (DWR)。下面将详细介绍这些技术及其在项目中的作用。 1. **Spring框架**:...
Struts、Spring与Ibatis(现称MyBatis)作为三个功能互补的Java框架,它们的联合使用能够显著提升Web应用程序的性能与稳定性。本文将详细阐述如何搭建并配置Struts+Spring+Ibatis整合框架,旨在为开发者提供一个清晰...
1. 创建Web项目,并将所有必要的框架库(包括Struts2、Spring、iBatis、JSON插件、数据库驱动和DBCP等)添加到项目的类路径。 2. 配置web.xml,设置Struts2、Spring和iBatis的初始化参数,如Filter配置、Spring的...