1. 创建项目

2. 添加Spring能力

使用MyEclipse自动加载Struts2和Spring的jar包和配置文件,并在web.xml文件中添加上下文和监听器

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">
<!-- 上下文 -->
<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>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<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>

3. 添加mybatis.jar、mybatis-spring-1.2.0.jar和mysql-connector-java-5.1.26-bin.jar

4. 编写mybatis和spring配置文件

创建mybatis的配置和实体类的映射文件

在spring配置文件中添加数据源和sqlSessionFactory,spring可以管理实体bean的映射文件,自动创建别名,这样子就可以省略mybatis.xml配置文件

实体java代码:

package com.it.entity;

import java.sql.Date;

public class Stu {
private int sid;
private String sname;
private String ssex;
private Date sbirth; public Stu() {
super();
// TODO Auto-generated constructor stub
} public Stu(int sid, String sname, String ssex, Date sbirth) {
super();
this.sid = sid;
this.sname = sname;
this.ssex = ssex;
this.sbirth = sbirth;
} public int getSid() {
return sid;
} public void setSid(int sid) {
this.sid = sid;
} public String getSname() {
return sname;
} public void setSname(String sname) {
this.sname = sname;
} public String getSsex() {
return ssex;
} public void setSsex(String ssex) {
this.ssex = ssex;
} public Date getSbirth() {
return sbirth;
} public void setSbirth(Date sbirth) {
this.sbirth = sbirth;
} }

实体映射文件Stu.xml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "mybatis-3-mapper.dtd" >
<mapper namespace="stu">
<select id="findAll" resultType="Stu">
<!-- CDATA节 -->
<![CDATA[select * from stu]]>
</select>
</mapper>

application.xml文件如下:

<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd"> <!-- 数据源 -->
<bean id="ds" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/mydb"/>
<property name="username" value="root"/>
<property name="password" value="ok"/>
</bean>
<!-- session工厂 -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="ds"/>
<!-- spring管理实体bean的映射文件 -->
<property name="mapperLocations">
<list>
<value>classpath:com/it/entity/Stu.xml</value>
</list>
</property>
<!-- 自动创建别名 -->
<property name="typeAliasesPackage" value="com.it.entity"/>
</bean>
<!-- Dao -->
<bean id="stuDao" class="com.it.dao.impl.StuDaoImpl">
<property name="sqlSessionFactory" ref="sqlSessionFactory"/>
</bean>
<!-- Biz -->
<bean id="stuBiz" class="com.it.biz.impl.StuBizImpl">
<property name="stuDao" ref="stuDao"/>
</bean>
<!-- Action -->
<bean id="stuAction" class="com.it.action.StuAction">
<property name="stuBiz" ref="stuBiz"/>
</bean>
</beans>

5. 编写代码

DaoImple继承SqlSessionDaoSupport,自动获取sqlSession,不需要人为的去创建和关闭

代码依次为entity、Dao、DaoImpl、Biz、BizImpl、Action和Test,最后创建jsp文件和配置struts.xml

DaoImpl.java文件如下:

package com.it.dao.impl;

import java.util.List;

import org.mybatis.spring.support.SqlSessionDaoSupport;

import com.it.dao.StuDao;
import com.it.entity.Stu; public class StuDaoImpl extends SqlSessionDaoSupport implements StuDao { public List<Stu> findAll() {
return this.getSqlSession().selectList("stu.findAll");
} }

struts.xml文件如下:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
<package name="xx" namespace="/" extends="struts-default">
<action name="doList" class="stuAction" method="doList">
<result>list.jsp</result>
</action>
</package>
</struts>

Spring+Struts2+Mybatis整合的更多相关文章

  1. 手动配置三大框架整合:Spring+Struts2+mybatis

    如今主流的项目框架中,数据库持久层有可能不是hibernate,而是mybatis或者ibatis,事实上它们都是一样的,以下我来把环境搭建一下: [导入相关jar包]新建web项目projectms ...

  2. Spring+springmvc+Mybatis整合案例 annotation版(myeclipse)详细版

    Spring+springmvc+Mybatis整合案例 Version:annotation版 文档结构图: 从底层开始做起: 01.配置web.xml文件 <?xml version=&qu ...

  3. Spring+springmvc+Mybatis整合案例 xml配置版(myeclipse)详细版

    Spring+springmvc+Mybatis整合案例 Version:xml版(myeclipse) 文档结构图: 从底层开始做起: 01.配置web.xml文件 <?xml version ...

  4. Spring与Mybatis整合的MapperScannerConfigurer处理过程源码分析

    前言 本文将分析mybatis与spring整合的MapperScannerConfigurer的底层原理,之前已经分析过java中实现动态,可以使用jdk自带api和cglib第三方库生成动态代理. ...

  5. Mybatis学习--spring和Mybatis整合

    简介 在前面写测试代码的时候,不管是基于原始dao还是Mapper接口开发都有许多的重复代码,将spring和mybatis整合可以减少这个重复代码,通过spring的模板方法模式,将这些重复的代码进 ...

  6. 九 spring和mybatis整合

    1       spring和mybatis整合 1.1     整合思路 需要spring通过单例方式管理SqlSessionFactory. spring和mybatis整合生成代理对象,使用Sq ...

  7. Mybatis学习(7)spring和mybatis整合

    整合思路: 需要spring通过单例方式管理SqlSessionFactory. spring和mybatis整合生成代理对象,使用SqlSessionFactory创建SqlSession.(spr ...

  8. 框架篇:Spring+SpringMVC+Mybatis整合开发

    前言: 前面我已搭建过ssh框架(http://www.cnblogs.com/xrog/p/6359706.html),然而mybatis表示不服啊. Mybatis:"我抗议!" ...

  9. SpringMVC, Spring和Mybatis整合案例一

    一  准备工作 包括:spring(包括springmvc).mybatis.mybatis-spring整合包.数据库驱动.第三方连接池. 二  整合思路 Dao层: 1.SqlMapConfig. ...

随机推荐

  1. 《Docekr入门学习篇》——Docker实战

    基础环境 root@docker~]# cat /etc/redhat-release #查看版本号 CentOS Linux release (Core) [root@docker ~]# unam ...

  2. Python3中bytes和HexStr之间的转换

    1 Python3中bytes和HexStr之间的转换 ByteToHex的转换 def ByteToHex( bins ): """ Convert a byte st ...

  3. 吴裕雄--天生自然 PHP开发学习:数据库 ODBC

    <html> <body> <?php $conn=odbc_connect('northwind','',''); if (!$conn) { exit("连 ...

  4. day64-html-form表单

    <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8& ...

  5. PAT甲级——1146 Topological Order (25分)

    This is a problem given in the Graduate Entrance Exam in 2018: Which of the following is NOT a topol ...

  6. 【图论算法】Dijstra&BFS

    选择V-S中的点加入S时用了贪心思想,即求d[]中legth最小且未被标记(未加入加入S)的点. 一点都没优化的实现: import java.lang.reflect.Array; /** * Cr ...

  7. c++语法(1)

    #include<iostream> #include<windows.h> using namespace std; class Parents { public: ; // ...

  8. Python 学习笔记:Python 连接 SQL Server 报错(20009, b'DB-Lib error message 20009, severity 9)

    问题及场景: 最近需要使用 Python 将数据写到 SQL Server 数据库,但是在进行数据库连接操作时却报以下错误:(20009, b'DB-Lib error message 20009, ...

  9. Docker添加root用户

    0 环境 系统环境:centos7 服务器:阿里云 1 正文 1 进入rabbitmq容器中 docker exec -i -t 563 bin/bash 2 添加用户(用户名和密码) rabbitm ...

  10. 关于目录的操作|*|<>|opendir |readdir|unlink|find2perl|rename|readlink|oct()|utime

    #!/usr/bin/perl use strict; use warnings; foreach my $arg(@ARGV) { print "one is $arg\n"; ...