基于Struts_Spring_MyBatis项目基础搭建

一、整合步骤

基于Spring+Struts+MyBatis的SSM项目整合。

创建一个新的web项目
整合MyBatis
整合Spring
整合Struts
二、整合MyBatis

由于需要用到数据库,所以需要准备数据库对应的Jar包,如Mysql。
mysql-connector-java-5.1.26-bin.jar

导入MyBatis的Jar包。

创建测试数据库和表。
CREATE TABLE `t_user_2` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`username` varchar(32) DEFAULT NULL,

`password` varchar(32) DEFAULT NULL,

PRIMARY KEY (`id`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8;

加入一条数据:

连接数据库的配置信息,在类路径下创建resources/db.properties文件,内容容下
db_driver=com.mysql.jdbc.Driver

db_url=jdbc:mysql://localhost:3306/ssm

db_username=root

db_password=root

实体对象的创建。
代码清单1:

public class User {

private int id;

private String username;

private String password;

public int getId() {

return id;

}

public void setId(int id) {

this.id = id;

}

public String getUsername() {

return username;

}

public void setUsername(String username) {

this.username = username;

}

public String getPassword() {

return password;

}

public void setPassword(String password) {

this.password = password;

}

}

创建DAO接口和实现类
代码清单2:

public interface IUserDAO {

public boolean isExistUser(User user);

}

public class UserDAOImpl implements IUserDAO {

public boolean isExistUser(User user) {

return false;

}

}

核心配置文件,在类路径下创建resources/mybatis-config.xml。
代码清单3:

<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE configuration

PUBLIC "-//mybatis.org//DTD Config 3.0//EN"

"http://mybatis.org/dtd/mybatis-3-config.dtd">

<configuration>

<properties resource="db.properties"></properties>

<environments default="development">

<environment id="development">

<transactionManager type="JDBC"/>

<!-- 数据源 负责来连接数据库的配置信息 -->

<dataSource type="POOLED">

<property name="driver" value="${db_driver}"/>

<property name="url" value="${db_url}"/>

<property name="username" value="${db_username}"/>

<property name="password" value="${db_password}"/>

</dataSource>

</environment>

</environments>

<mappers>

<mapper resource="cn\itsource\domain\UserMapper.xml"/>

</mappers>

</configuration>

Mapper映射文件,cn/itsource/domain/UserMapper.xml
代码清单4:

<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE mapper

PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"

"http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="cn.itsource.domain.UserMapper">

<select id="isExist" parameterType="cn.itsource.domain.User" resultType="Integer">

select count(*) from t_user where username=#{username} and password=#{password}

</select>

</mapper>

工具类获取SqlSession,cn.itsource.util.MyBatisUtil
代码清单5:

/**

* MyBatis工具类

* @author Administrator

*

*/

public enum MyBatisUtil {

INSTANCE;

//静态代码块实现工厂的初始化

private static SqlSessionFactory factory;

static{

InputStream inputStream;

try {

inputStream = Resources.getResourceAsStream("mybatis-config.xml");

//得到对应的SqlSessionFactory对象

factory = new SqlSessionFactoryBuilder().build(inputStream);

} catch (IOException e) {

e.printStackTrace();

}

}

public SqlSession openSession(){

return factory.openSession();

}

}

完成DAO的实现类的实现
代码清单6:

public boolean isExistUser(User user) {

boolean isExist = false;

SqlSession session = MyBatisUtil.INSTANCE.openSession();

try{

int count = session.selectOne("cn.itsource.domain.UserMapper.isExist",user);

return count==0?isExist:true;

}catch(Exception e){

e.printStackTrace();

}finally{

session.close();

}

return isExist;

}

}

单元测试
导入单元测试JUnit4的Jar包,创建测试包,创建测试类。

代码清单7:

public class UserDAOTest extends TestCase {

IUserDAO dao = new UserDAOImpl();

public void testIsExistUser() {

boolean isExist = dao.isExistUser(new User("admin","123456"));

System.out.println(isExist);

}

}

如果测试通过说明MyBatis到目前为止已经整合完毕。

配置log4j,resources/log4j.properties
代码清单8:

log4j.rootLogger=ERROR, stdout

#log4j.rootLogger=NONE

log4j.logger.cn.itsource=TRACE

log4j.appender.stdout=org.apache.log4j.ConsoleAppender

log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n

三、整合Struts2

导入对应的Jar包

删除对应重复的Jar包,留版本高的包,删除版本低的包。

配置核心过滤器web.xml
代码清单9:

<?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">

<filter>

<filter-name>struts2</filter-name>

<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>

</filter>

<filter-mapping>

<filter-name>struts2</filter-name>

<url-pattern>/*</url-pattern>

</filter-mapping>

</web-app>

配置struts.xml
代码清单10:

<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE struts PUBLIC

"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"

"http://struts.apache.org/dtds/struts-2.3.dtd">

<struts>

<constant name="struts.enable.DynamicMethodInvocation" value="false" />

<constant name="struts.devMode" value="true" />

<package name="default" namespace="/" extends="struts-default">

</package>

</struts>

创建对应的登陆页面和Action,部署测试是否能正常登陆。
四、整合Spring

导入Spring的Jar包

注意:将MyBatis和Struts2集成需要导入两个核心的集成包

mybatis-spring-1.2.0.jar

struts2-spring-plugin-2.3.20.jar

spring的配置文件
resources/applicationContext.xml,利用Spring后那么核心对象都将交给Spring容器进行管理,原来在MyBatis中操作数据库的SqlSession现在交给Spring的org.mybatis.spring.SqlSessionTemplate利用IOC注入。实例化SqlSessionTemplate需要用到SqlSessionFactoryBean,在包mybatis-spring-1.2.0.jar中提供了对应类的封装。

代码清单11:

<?xml version="1.0" encoding="UTF-8"?>

<beans

xmlns="http://www.springframework.org/schema/beans"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-2.5.xsd">

<!--配置数据源属性文件  -->

<bean id="propertyConfigurer"

class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">

<property name="location">

<value>classpath:db.properties</value>

</property>

</bean>

<!--配置数据源  -->

<bean id="dataSource"

class="org.springframework.jdbc.datasource.DriverManagerDataSource">

<property name="driverClassName">

<value>${db_driver}</value>

</property>

<property name="url">

<value>${db_url}</value>

</property>

<property name="username">

<value>${db_username}</value>

</property>

<property name="password">

<value>${db_password}</value>

</property>

</bean>

<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">

<property name="configLocation" value="classpath:mybatis-config.xml" />

<property name="dataSource" ref="dataSource" />

</bean>

<!--SqlSessionTemplate-->

<bean id="session" class="org.mybatis.spring.SqlSessionTemplate">

<constructor-arg index="0" ref="sqlSessionFactory" />

</bean>

<bean id="userAction" class="cn.itsource.action.UserAction">

<property name="dao" ref="dao"></property>

</bean>

<bean id="dao" class="cn.itsource.dao.impl.UserDAOImpl">

<property name="session" ref="session"></property>

</bean>

</beans>

上面的配置中如果不希望用到原来的Mybatis的配置文件也可,直接关联Mapper映射文件即可。

配置web.xml配置启动Spring的监听器。
代码清单12:

<?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">

<filter>

<filter-name>struts2</filter-name>

<filter-class>

org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter

</filter-class>

</filter>

<filter-mapping>

<filter-name>struts2</filter-name>

<url-pattern>/*</url-pattern>

</filter-mapping>

<context-param>

<param-name>contextConfigLocation</param-name>

<param-value>classpath:applicationContext.xml</param-value>

</context-param>

<listener>

<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>

</listener>

</web-app>

调试,到此为止,如果能正常进行登录判断,那么就已经将Spring、Struts2和Mybatis集成好了。

感谢源码时代JAVA学科讲师提供

时间: 2024-07-28 21:57:06

基于Struts_Spring_MyBatis项目基础搭建的相关文章

仿制新浪微博iOS客户端之二-项目基础搭建及相关设置

上一次的文章主要提到了仿制新浪微博所用到的一些技术和知识点,那本文就开始进入正式的项目实施阶段了.首先要做的自然是项目的创建和相关的设置,以及基础框架的搭建了. 一.项目创建及相关设置 1.项目创建 现在越来越多的的公司开始使用Swift开发iOS和AppleWatch的项目,因此此次我们的开发也使用Swift语言来进行,新建项目,设置如下: 既然是仿制,自然可以当成是一个练习,项目名称:“WeiboTest”,编程语言选择“Swift”.然后“下一步”直到创建完成. 2.应用图标设置 将应用图

补习系列(1)-springboot项目基础搭建课

[TOC] 前言 springboot 最近火的不行,目前几乎已经是 spring 家族最耀眼的项目了.抛开微服务.技术社区这些推广因素不说,框架本身的确有非常多的优点.比如 更简化的配置,摒除了许多繁杂的xml配置(事实证明,越简单的东西越容易让人记住): 内置Servlet容器,不再依赖外部环境 大量的starter模块,随手拈来 支持热部署 作为一名老程序员来说,仍然需要保持一个积极学习的态度.哎,简单点说就是少点伤感,认清现实.你曾经引以为傲的某某EE 技术已经被颠覆了,赶紧换车道 ..

零基础搭建 spring mvc 4 项目(本文基于 Servlet 3.0)

作者各必备工具的版本如下: Tomcat:apache-tomcat-7.0.63 (下载链接) Java EE - Eclipse:Luna Service Release 1 v4.4.1 (下载链接) Spring:4.2.0.RELEASE (无须下载) JDK:1.7.0_67 (下载链接) 步骤 1 使用 Java EE - Eclipse 新建一 Dynamic Web Project. 步骤 2 输入项目名 bdp.Target Runtime 选 Apache Tomcat 7

基于Spring+IDEA+Maven搭建测试项目

一.背景介绍 1.1公司相关技术 Git:是一款免费的开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目,方便多人集成开发 Maven:是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具,同时还提供了高级项目管理工具 Jira:是Atlassian公司出品的项目与事务跟踪工具,被广泛应用于缺陷跟踪.客户服务.需求收集.流程审批.任务跟踪.项目跟踪和敏捷管理等工作领域 Dubbo:是阿里巴巴公司一个开源的分布式服务框架,致力于提供高性能和

spring+springMVC+mybatis的框架项目基础环境搭建

上一个项目在后台用到spring+springMVC+mybatis的框架,先新项目初步需求也已经下来,不出意外的话,应该也是用这个框架组合. 虽然在之前activiti相关的学习中所用到的框架也是这个,但是当时重点在于实现activiti的功能,因此在环境搭建上也只是以能用为前提,与真实项目中所用的还是差了不少. 因此为了给接下来的项目做准备,今天便抽空练习了一下这个框架组合的搭建.虽然之前的框架都不是我来搭,接下来这个可能也不是让我搭,但记录下来说不定以后能用上,也或者对其他人有用. 那么进

S2SH开发环境搭建、框架整合、项目基础环境搭建

S2SH开发环境搭建.框架整合.项目基础环境搭建 1.S2SH框架整合 新建项目s2sh: 1.1添加jar包 1.1.1添加Struts的jar包 添加如下的jar包: commons-fileupload-1.2.2.jar commons-io-2.0.1.jar freemarker-2.3.19.jar ognl-3.0.5.jar struts2-core-2.3.4.1.jar xwork-core-2.3.4.1.jar 疑惑:这些jar可以从哪里获得呢? 对于一个框架来说,别人

【原】Spring整合Shiro基础搭建[3]

1.前言 上个Shiro Demo基础搭建是基于官方的快速入门版本,没有集成其他框架,只是简单的通过Main方法来执行Shiro工作流程,并测试一下比较核心的函数:但在企业开发中一般都会集成Spring,因为被Spring管理后很多事情都交给了Spring框架进行了管理,而且Spring框架提供了丰富的支持类,不仅方便我们开发人员进行扩展,也利于维护,通过Spring管理我们能把更多的细节放在业务上,提高我们的开发效率. 2.搭建过程       首先是 新建一个web工程,引入Spring和S

基于OS X Server 搭建 Git 仓库

任务: # 配置可读取Git仓库 # 配置可写入Git仓库 # 配置 Gitweb 系统环境: # OS X 10.9.2,系统自带 Apache httpd , 版本 2.2.26 (Unix) # OS X Server 3.1.1,为了避免Server这个词跟其他语境产生混淆,要是提到了OS X Server就用Server( app)替代 # Xcode 5.1,有了Xcode就有了Git,版本 1.8.5.2 描(tu)述(cao): 为什么要本地搭建Git服务器呢?代码的版本管理.集

如何搭建maven项目和搭建ssm框架

1.基本概念 1.1.Spring Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design中阐述的部分理念和原型衍生而来.它是为了解决企业应用开发的复杂性而创建的.Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情.然而,Spring的用途不仅限于服务器端的开发.从简单性.可测试性和松耦合的角度而言,任何Java