SpringMVC+Spring+Mybatis整合,使用druid连接池,声明式事务,maven配置

原文地址为: SpringMVC+Spring+Mybatis整合,使用druid连接池,声明式事务,maven配置

一直对springmvc和mybatis挺怀念的,最近想自己再搭建下框架,然后写点什么。

暂时没有整合缓存,druid也没有做ip地址的过滤。Spring的AOP简单配置了下,也还没具体弄,不知道能不能用,log也不知道能不能用,`(*∩_∩*)′哈哈,有点不负责任......

2014-08-12 23:45补:

=================开始=================
1、增加quartz :http://www.cnblogs.com/acehalo/p/3902731.html

2、mybatis添加ehcache缓存:http://www.cnblogs.com/acehalo/p/3902883.html

3、spring的aop: http://www.cnblogs.com/acehalo/p/3905718.html

=================结束================

 

 

直接上代码:

使用的eclipse和eclipse自带的maven,参考了网上的资料,有些代码是拷贝的,不过都自己测试过了。嗯,可以跑起来...

先上项目结构:

SpringMVC+Spring+Mybatis整合,使用druid连接池,声明式事务,maven配置_第1张图片

新建maven项目,选择web,然后配置pom:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation
="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0modelVersion>
<groupId>ACEgroupId>
<artifactId>TestartifactId>
<packaging>warpackaging>
<version>0.0.1-SNAPSHOTversion>
<name>Test Maven Webappname>
<url>http://maven.apache.orgurl>

<properties>
<org.springframework.version>4.0.0.M2org.springframework.version>
<org.slf4j.version>1.6.1org.slf4j.version>
properties>

<dependencies>
<dependency>
<groupId>junitgroupId>
<artifactId>junitartifactId>
<version>3.8.1version>
<scope>testscope>
dependency>


<dependency>
<groupId>javax.servletgroupId>
<artifactId>servlet-apiartifactId>
<version>2.5version>
<scope>providedscope>
dependency>
<dependency>
<groupId>javax.servlet.jspgroupId>
<artifactId>jsp-apiartifactId>
<version>2.1version>
<scope>providedscope>
dependency>
<dependency>
<groupId>javax.servletgroupId>
<artifactId>jstlartifactId>
<version>1.2version>
dependency>


<dependency>
<groupId>mysqlgroupId>
<artifactId>mysql-connector-javaartifactId>
<version>5.1.26version>
dependency>




<dependency>
<groupId>org.springframeworkgroupId>
<artifactId>spring-aopartifactId>
<version>${org.springframework.version}version>
dependency>
<dependency>
<groupId>org.springframeworkgroupId>
<artifactId>spring-aspectsartifactId>
<version>${org.springframework.version}version>
dependency>
<dependency>
<groupId>org.springframeworkgroupId>
<artifactId>spring-beansartifactId>
<version>${org.springframework.version}version>
dependency>

<dependency>
<groupId>org.springframeworkgroupId>
<artifactId>spring-contextartifactId>
<version>${org.springframework.version}version>
<exclusions>
<exclusion>
<groupId>commons-logginggroupId>
<artifactId>commons-loggingartifactId>
exclusion>
exclusions>
dependency>
<dependency>
<groupId>org.springframeworkgroupId>
<artifactId>spring-context-supportartifactId>
<version>${org.springframework.version}version>
dependency>
<dependency>
<groupId>org.springframeworkgroupId>
<artifactId>spring-coreartifactId>
<version>${org.springframework.version}version>
dependency>
<dependency>
<groupId>org.springframeworkgroupId>
<artifactId>spring-expressionartifactId>
<version>${org.springframework.version}version>
dependency>
<dependency>
<groupId>org.springframeworkgroupId>
<artifactId>spring-instrumentartifactId>
<version>${org.springframework.version}version>
dependency>
<dependency>
<groupId>org.springframeworkgroupId>
<artifactId>spring-instrument-tomcatartifactId>
<version>${org.springframework.version}version>
dependency>
<dependency>
<groupId>org.springframeworkgroupId>
<artifactId>spring-jdbcartifactId>
<version>${org.springframework.version}version>
dependency>
<dependency>
<groupId>org.springframeworkgroupId>
<artifactId>spring-jmsartifactId>
<version>${org.springframework.version}version>
dependency>
<dependency>
<groupId>org.springframeworkgroupId>
<artifactId>spring-ormartifactId>
<version>${org.springframework.version}version>
dependency>
<dependency>
<groupId>org.springframeworkgroupId>
<artifactId>spring-oxmartifactId>
<version>${org.springframework.version}version>
dependency>
<dependency>
<groupId>org.springframeworkgroupId>
<artifactId>spring-testartifactId>
<version>${org.springframework.version}version>
dependency>
<dependency>
<groupId>org.springframeworkgroupId>
<artifactId>spring-txartifactId>
<version>${org.springframework.version}version>
dependency>
<dependency>
<groupId>org.springframeworkgroupId>
<artifactId>spring-webartifactId>
<version>${org.springframework.version}version>
dependency>

<dependency>
<groupId>org.springframeworkgroupId>
<artifactId>spring-webmvcartifactId>
<version>${org.springframework.version}version>
dependency>
<dependency>
<groupId>org.springframeworkgroupId>
<artifactId>spring-webmvc-portletartifactId>
<version>${org.springframework.version}version>
dependency>
<dependency>
<groupId>org.springframeworkgroupId>
<artifactId>spring-websocketartifactId>
<version>${org.springframework.version}version>
dependency>


<dependency>
<groupId>org.mybatisgroupId>
<artifactId>mybatisartifactId>
<version>3.2.2version>
dependency>
<dependency>
<groupId>org.mybatisgroupId>
<artifactId>mybatis-springartifactId>
<version>1.2.0version>
dependency>

<dependency>
<groupId>org.slf4jgroupId>
<artifactId>slf4j-apiartifactId>
<version>${org.slf4j.version}version>
dependency>
<dependency>
<groupId>org.slf4jgroupId>
<artifactId>jcl-over-slf4jartifactId>
<version>${org.slf4j.version}version>
<scope>runtimescope>
dependency>

<dependency>
<groupId>log4jgroupId>
<artifactId>log4jartifactId>
<version>1.2.16version>
<scope>runtimescope>
dependency>



<dependency>
<groupId>com.alibabagroupId>
<artifactId>druidartifactId>
<version>1.0.7version>
dependency>

dependencies>


<repositories>

<repository>
<id>org.jboss.repository.releaseid>
<name>JBoss Maven Release Repositoryname>
<url>https://repository.jboss.org/nexus/content/repositories/releasesurl>
<snapshots>
<enabled>falseenabled>
snapshots>
repository>
<repository>
<id>org.springsource.maven.snapshotid>
<name>SpringSource Maven Central-compatible Snapshot Repositoryname>
<url>http://maven.springframework.org/snapshoturl>
<snapshots>
<updatePolicy>dailyupdatePolicy>
snapshots>
repository>
<repository>
<id>spring-milestoneid>
<name>Spring Maven MILESTONE Repositoryname>
<url>http://maven.springframework.org/milestoneurl>
repository>
<repository>
<id>standard repoid>
<url>http://repo1.maven.org/maven2url>
repository>
<repository>
<id>mirror repoid>
<url>http://mirrors.ibiblio.org/pub/mirrors/maven2url>
repository>
<repository>
<id>com.springsource.repository.bundles.releaseid>
<name>SpringSource Enterprise Bundle Repository - SpringSource Bundle Releasesname>
<url>http://repository.springsource.com/maven/bundles/releaseurl>
repository>
<repository>
<id>com.springsource.repository.bundles.externalid>
<name>SpringSource Enterprise Bundle Repository - External Bundle Releasesname>
<url>http://repository.springsource.com/maven/bundles/externalurl>
repository>
<repository>
<id>sqlfire-releaseid>
<url>http://dist.gemstone.com/maven/releaseurl>
repository>
repositories>


<build>
<finalName>TestfinalName>
build>
project>

web.xml:

xml version="1.0" encoding="UTF-8"?>
<web-app 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"

version
="2.5">





<filter>
<filter-name>characterEncodingFilterfilter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilterfilter-class>
<init-param>
<param-name>encodingparam-name>
<param-value>UTF-8param-value>
init-param>
<init-param>
<param-name>forceEncodingparam-name>
<param-value>trueparam-value>
init-param>
filter>
<filter-mapping>
<filter-name>characterEncodingFilterfilter-name>
<url-pattern>/*url-pattern>
filter-mapping>


<listener>
<listener-class>org.springframework.web.context.request.RequestContextListenerlistener-class>
listener>


<servlet>
<servlet-name>Testservlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServletservlet-class>
<init-param>
<param-name>contextConfigLocationparam-name>
<param-value>classpath*:applicationContext.xmlparam-value>
init-param>
<load-on-startup>1load-on-startup>
servlet>
<servlet-mapping>
<servlet-name>Testservlet-name>
<url-pattern>*.dourl-pattern>
servlet-mapping>
<error-page>
<error-code>404error-code>
<location>/error/404.jsplocation>
error-page>


<servlet>
<servlet-name>DruidStatViewservlet-name>
<servlet-class>com.alibaba.druid.support.http.StatViewServletservlet-class>
servlet>
<servlet-mapping>
<servlet-name>DruidStatViewservlet-name>
<url-pattern>/druid/*url-pattern>
servlet-mapping>


web-app>

applicationContext.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:context
="http://www.springframework.org/schema/context"
xsi:schemaLocation
="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
"
>


<context:component-scan base-package="com.hi.test"/>



<import resource="spring-mvc.xml"/>
<import resource="spring-database.xml"/>
<import resource="spring-aop.xml"/>



<bean id="log4jInitialization"
class
="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
<property name="targetClass"
value
="org.springframework.util.Log4jConfigurer" />
<property name="targetMethod" value="initLogging" />
<property name="arguments">
<list>
<value>classpath:log4j.xmlvalue>
list>
property>
bean>

beans>

spring-mvc.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:mvc
="http://www.springframework.org/schema/mvc"
xmlns:context
="http://www.springframework.org/schema/context"
xsi:schemaLocation
="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
"
>


<mvc:annotation-driven />
<mvc:default-servlet-handler />


<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
<property name="prefix" value="WEB-INF/views/"/>
<property name="suffix" value=".jsp"/>
bean>

beans>

spring-aop.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:context
="http://www.springframework.org/schema/context"
xmlns:aop
="http://www.springframework.org/schema/aop"
xsi:schemaLocation
="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.2.xsd
"
>


<aop:aspectj-autoproxy />


beans>

spring-database.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:mvc="http://www.springframework.org/schema/mvc"
xmlns:context
="http://www.springframework.org/schema/context"
xmlns:aop
="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"

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

http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd

http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd
"
>




<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">

<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="123456" />



<property name="initialSize" value="0" />

<property name="maxActive" value="20" />

<property name="minIdle" value="0" />

<property name="maxWait" value="60000" />


<property name="validationQuery"><value>SELECT 1value>property>
<property name="testOnBorrow" value="false" />
<property name="testOnReturn" value="false" />
<property name="testWhileIdle" value="true" />


<property name="timeBetweenEvictionRunsMillis" value="60000" />

<property name="minEvictableIdleTimeMillis" value="25200000" />


<property name="removeAbandoned" value="true" />

<property name="removeAbandonedTimeout" value="1800" />

<property name="logAbandoned" value="true" />



<property name="filters" value="mergeStat" />
bean>


<bean id="druid-stat-interceptor"
class
="com.alibaba.druid.support.spring.stat.DruidStatInterceptor">
bean>
<bean id="druid-stat-pointcut" class="org.springframework.aop.support.JdkRegexpMethodPointcut"
scope
="prototype">
<property name="patterns">
<list>
<value>com.hi.test.service.*value>
list>
property>
bean>
<aop:config>
<aop:advisor advice-ref="druid-stat-interceptor"
pointcut-ref
="druid-stat-pointcut" />
aop:config>




<bean id="transactionManager"
class
="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
bean>


<tx:annotation-driven transaction-manager="transactionManager"
proxy-target-class
="true" />








<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="configLocation" value="classpath:mybatis-config.xml">property>
bean>




<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">

<property name="annotationClass" value="org.springframework.stereotype.Repository" />
<property name="basePackage" value="com.hi.test.mapper" />
<property name="sqlSessionFactory" ref="sqlSessionFactory" />
bean>





beans>

mybatis-config.xml:

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>
<mappers>
<mapper resource="com/hi/test/mapper/UserMapper.xml"/>
mappers>
configuration>

log4j.xml:

xml version="1.0" encoding="UTF-8"?>
DOCTYPE log4j:configuration PUBLIC "-//LOGGER" "log4j.dtd">

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">


<appender name="console" class="org.apache.log4j.ConsoleAppender">
<param name="Target" value="System.out" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%-5p: %c - %m%n" />
layout>
appender>


<logger name="org.springframework.core">
<level value="info" />
logger>

<logger name="org.springframework.beans">
<level value="info" />
logger>

<logger name="org.springframework.context">
<level value="info" />
logger>

<logger name="org.springframework.web">
<level value="info" />
logger>

<logger name="org.mybatis">
<level value="info" />
logger>

<logger name="com.hi">
<level value="info"/>
logger>


<root>
<priority value="warn" />
<appender-ref ref="console" />
root>

log4j:configuration>

commons-logging.properties:

org.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JLogger

IndexController:

package com.hi.test.controller;

import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import com.hi.test.bean.User;
import com.hi.test.mapper.UserMapper;
import com.hi.test.service.TxTestService;


@Controller
public class IndexController {

@Autowired
UserMapper userMapper;

@Autowired
TxTestService txTestService;

@RequestMapping(value
= "/index")
public String index(HttpServletRequest request,Map model) {
//String name=request.getParameter("name");
//model.put("name", name);

User u
=new User();
u.setUsername(
"admin");
u.setPassword(
"admin");
User user
=userMapper.selectUser(u);
model.put(
"user", user);
return "hi";
}

@RequestMapping(value
= "/text")
@ResponseBody
public String text(HttpServletRequest request) {



return "{\"what\":\"hi\"}";
}

@RequestMapping(value
= "/indexList")
public String indexList(HttpServletRequest request,Map model) {


List
userList=userMapper.selectUserLsit();
model.put(
"userList", userList);

return "hiList";
}

@RequestMapping(value
= "/TxTest")
@ResponseBody
public String test(HttpServletRequest request) {


txTestService.insert();

return "";
}
}

User:

package com.hi.test.bean;

public class User {
private int id;
private String username;
private String password;
public User(){

}
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;
}
public String toString(){
return "User [id = "+ id +" , username = "+ username +"]" + " , password = "+ password;
}
}

UserMapper:

package com.hi.test.mapper;

import java.util.List;

import org.springframework.stereotype.Repository;

import com.hi.test.bean.User;

@Repository
public interface UserMapper {
public User selectUser(User user);
public void insertUser(User user);
public void updateUser(User user);
public void deleteUser(int userId);
public List selectUserLsit();
}

UserMapper.xml:

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="com.hi.test.mapper.UserMapper">

<resultMap id="userList" type="com.hi.test.bean.User">
<id column="id" property="id" />
<result column="username" property="username" />
<result column="password" property="password" />
resultMap>


<select id="selectUser" parameterType="com.hi.test.bean.User" resultType="com.hi.test.bean.User">
SELECT * FROM user WHERE username=#{username} AND password=#{password}
select>
<insert id="insertUser" parameterType="com.hi.test.bean.User" flushCache="true">
INSERT INTO user (id,username,password) VALUES (#{id},#{username},#{password})
insert>
<update id="updateUser" parameterType="com.hi.test.bean.User">
UPDATE user SET password=#{password} WHERE id=#{id}
update>
<delete id="deleteUser" parameterType="int">
DELETE FROM user WHERE id=#{userId}
delete>

<select id="selectUserLsit" resultMap="userList">
SELECT * FROM user
select>
mapper>

TxTestService:

package com.hi.test.service;

import java.util.UUID;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.hi.test.bean.User;
import com.hi.test.mapper.UserMapper;

@Transactional
@Service
public class TxTestService {

@Autowired
UserMapper userMapper;

public void insert() {
for (int i = 0; i < 100; i++) {
User u
= new User();
u.setUsername(UUID.randomUUID().toString());
u.setPassword(UUID.randomUUID().toString());
userMapper.insertUser(u);
}


throw new RuntimeException();
}


}

 sql文件,navicat导出的:

/*
Navicat MySQL Data Transfer

Source Server : MySQL
Source Server Version : 50704
Source Host : localhost:3306
Source Database : mydb

Target Server Type : MYSQL
Target Server Version : 50704
File Encoding : 65001

Date: 2014-08-09 23:52:32
*/

SET FOREIGN_KEY_CHECKS=0;

-- ----------------------------
--
Table structure for user
--
----------------------------
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
`id`
int(11) NOT NULL AUTO_INCREMENT,
`username`
varchar(255) NOT NULL,
`password`
varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE
=InnoDB AUTO_INCREMENT=902 DEFAULT CHARSET=utf8;

-- ----------------------------
--
Records of user
--
----------------------------
INSERT INTO `user` VALUES ('1', 'admin', 'admin');

 

index.jsp:

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding
="UTF-8"%>
DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title heretitle>
head>
<body>

hi

body>
html>

 

hi.jsp:

<%@ page isELIgnored="false"%>  
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding
="UTF-8"%>
DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title heretitle>
head>
<body>
this is springmvc,${user.username }

body>
html>

hiList.jsp:

<%@ page isELIgnored="false"%>  
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding
="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title heretitle>
head>
<body>
<c:forEach var="user" items="${userList}">

${user.username}----${user.password}
<br>
c:forEach>

body>
html>

 

 

 

======================================================================================

OK,代码贴完了,项目上右键,debug on server应该就能跑起来了。

几个链接可以查看效果:druid的监控信息:http://localhost:8080/Test/druid/sql.html

http://localhost:8080/Test/

http://localhost:8080/Test/text.do

http://localhost:8080/Test/indexList.do

http://localhost:8080/Test/TxTest.do

 

现在简单讲讲,配置文件里面有注释就不说了:

一:在配置文件添加事务的时候遇到tx标签没用,在xsi:schemaLocation这里添加两行

http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd

就可以了。

 

二:还遇到EL表达式不能用,然后

web.xml修改:


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"
version="2.5">

jsp增加:
<%@ page isELIgnored="false"%>

三:还有c:forEach这种标签不能用

在JSP上增加

 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>

 

就可以了

四:spring事务这里

数据库是mysql ,然后表引擎是InnoDB

用navicat在design table---option--engine可以看到

访问http://localhost:8080/Test/TxTest.do之后会出现异常,这个异常是手动抛出的,数据库也没有插入数据。

然后将表的引擎换成MyISAM,保存

之后再访问http://localhost:8080/Test/TxTest.do,发现数据库被插入数据了。

说明:Spring的这个声明事务能使用,MyISAM不支持事务。

五:Controller里的四个方法

第一个方法是一般的测试。

第二个方法是想测试返回json的,主要是@ResponseBody标签。

第三个方法测试LIST。

第四个是测试事务的。

 


转载请注明本文地址: SpringMVC+Spring+Mybatis整合,使用druid连接池,声明式事务,maven配置

你可能感兴趣的:(spring,druid,maven,mybatis,mvc,springmvc)