Spring+Struts2+Mybatis整合
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整合的更多相关文章
- 手动配置三大框架整合:Spring+Struts2+mybatis
如今主流的项目框架中,数据库持久层有可能不是hibernate,而是mybatis或者ibatis,事实上它们都是一样的,以下我来把环境搭建一下: [导入相关jar包]新建web项目projectms ...
- Spring+springmvc+Mybatis整合案例 annotation版(myeclipse)详细版
Spring+springmvc+Mybatis整合案例 Version:annotation版 文档结构图: 从底层开始做起: 01.配置web.xml文件 <?xml version=&qu ...
- Spring+springmvc+Mybatis整合案例 xml配置版(myeclipse)详细版
Spring+springmvc+Mybatis整合案例 Version:xml版(myeclipse) 文档结构图: 从底层开始做起: 01.配置web.xml文件 <?xml version ...
- Spring与Mybatis整合的MapperScannerConfigurer处理过程源码分析
前言 本文将分析mybatis与spring整合的MapperScannerConfigurer的底层原理,之前已经分析过java中实现动态,可以使用jdk自带api和cglib第三方库生成动态代理. ...
- Mybatis学习--spring和Mybatis整合
简介 在前面写测试代码的时候,不管是基于原始dao还是Mapper接口开发都有许多的重复代码,将spring和mybatis整合可以减少这个重复代码,通过spring的模板方法模式,将这些重复的代码进 ...
- 九 spring和mybatis整合
1 spring和mybatis整合 1.1 整合思路 需要spring通过单例方式管理SqlSessionFactory. spring和mybatis整合生成代理对象,使用Sq ...
- Mybatis学习(7)spring和mybatis整合
整合思路: 需要spring通过单例方式管理SqlSessionFactory. spring和mybatis整合生成代理对象,使用SqlSessionFactory创建SqlSession.(spr ...
- 框架篇:Spring+SpringMVC+Mybatis整合开发
前言: 前面我已搭建过ssh框架(http://www.cnblogs.com/xrog/p/6359706.html),然而mybatis表示不服啊. Mybatis:"我抗议!" ...
- SpringMVC, Spring和Mybatis整合案例一
一 准备工作 包括:spring(包括springmvc).mybatis.mybatis-spring整合包.数据库驱动.第三方连接池. 二 整合思路 Dao层: 1.SqlMapConfig. ...
随机推荐
- 邮件发送,无尽的501错误。TCP发送邮件解决方案
先贴上错误信息,便于搜索引擎采集,也送给遇到此问题的技术朋友们. smtp 501 Syntax error (no parameters allowed) (#5.5.4) 背景描述: 使用TCP发 ...
- 201312-2 ISBN号码 Java
就是把-去掉,然后验证,只需要改最后一位. import java.util.Scanner; public class Main { public static void main(String[] ...
- nvm安装教程
nvm是一个nodejs的版本管理工具 默认安装位置 C:\Users\userName\AppData\Roaming\nvm x 1 C:\Users\userName\AppData\Ro ...
- UML-如何进行面向对象设计?
1.开发者如何设计对象? 1).直接编码 2).uml图,然后编码 3).uml图,不编码 绘图要轻量的 2.并行创建若干模型 如:5分钟画交互图,5分钟画类图.反复交替 3.选择什么样的UML CA ...
- 如何在Foxwell NT650 OBD2扫描仪上查看实时PID数据?
这是在Foxwell NT650扫描仪上使用实时数据菜单的操作指南 . 实时数据菜单使您可以查看和记录来自电子控制模块的实时PID数据.菜单选项通常包括: 完整的数据清单 自定义数据列表 如何使用“完 ...
- win32框架
win32的框架 1.入口函数 2.窗口注册类信息 3.窗口创建 4.显示窗口 5.更新窗口 6.消息循环 7.入口函数结束 WNDCLASSEX wcex;窗口类结构 wcex.cbSize = s ...
- 关于使用静态链表实现一元多项式的相加&&乘积
一元多项式的相加类似于两条链表的合并 当然前提是链表中的幂指数是按顺序排列的 此题中的链表采用的是升序排列,输出也是按升序输出的 #include<stdio.h> #include< ...
- 2.监控利器nagios手把手企业级实战第一部
1. 什么是Nagios? Nagios是一款开源的网络及服务的监控工具,功能强大,灵活性强,需要注意的是,其服务端只能在linux上面安装. Nagios可以进行分布 ...
- doc文件转txt
doc文件转txt # -*- coding:utf-8 -*- # 安装pywin32包 http://sourceforge.net/projects/pywin32/files/pywin32/ ...
- org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.reflection.ReflectionException: There is no getter for property named 'socialCode' in 'class java.lang.String'
异常: org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.reflection.Refl ...