javascript
java使用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,參考了網上的資料,有些代碼是拷貝的,不過都自己測試過了。嗯,可以跑起來...
先上項目結構:
新建maven項目,選擇web,然后配置pom:
4.0.0
ACE
Test
war
0.0.1-SNAPSHOT
Test Maven Webapp
http://maven.apache.org
4.0.0.M2
1.6.1
junit
junit
3.8.1
test
javax.servlet
servlet-api
2.5
provided
javax.servlet.jsp
jsp-api
2.1
provided
javax.servlet
jstl
1.2
mysql
mysql-connector-java
5.1.26
org.springframework
spring-aop
${org.springframework.version}
org.springframework
spring-aspects
${org.springframework.version}
org.springframework
spring-beans
${org.springframework.version}
org.springframework
spring-context
${org.springframework.version}
commons-logging
commons-logging
org.springframework
spring-context-support
${org.springframework.version}
org.springframework
spring-core
${org.springframework.version}
org.springframework
spring-expression
${org.springframework.version}
org.springframework
spring-instrument
${org.springframework.version}
org.springframework
spring-instrument-tomcat
${org.springframework.version}
org.springframework
spring-jdbc
${org.springframework.version}
org.springframework
spring-jms
${org.springframework.version}
org.springframework
spring-orm
${org.springframework.version}
org.springframework
spring-oxm
${org.springframework.version}
org.springframework
spring-test
${org.springframework.version}
org.springframework
spring-tx
${org.springframework.version}
org.springframework
spring-web
${org.springframework.version}
org.springframework
spring-webmvc
${org.springframework.version}
org.springframework
spring-webmvc-portlet
${org.springframework.version}
org.springframework
spring-websocket
${org.springframework.version}
org.mybatis
mybatis
3.2.2
org.mybatis
mybatis-spring
1.2.0
org.slf4j
slf4j-api
${org.slf4j.version}
org.slf4j
jcl-over-slf4j
${org.slf4j.version}
runtime
log4j
log4j
1.2.16
runtime
com.alibaba
druid
1.0.7
org.jboss.repository.release
JBoss Maven Release Repository
https://repository.jboss.org/nexus/content/repositories/releases
false
org.springsource.maven.snapshot
SpringSource Maven Central-compatible Snapshot Repository
http://maven.springframework.org/snapshot
daily
spring-milestone
Spring Maven MILESTONE Repository
http://maven.springframework.org/milestone
standard repo
http://repo1.maven.org/maven2
mirror repo
http://mirrors.ibiblio.org/pub/mirrors/maven2
com.springsource.repository.bundles.release
SpringSource Enterprise Bundle Repository - SpringSource Bundle Releases
http://repository.springsource.com/maven/bundles/release
com.springsource.repository.bundles.external
SpringSource Enterprise Bundle Repository - External Bundle Releases
http://repository.springsource.com/maven/bundles/external
sqlfire-release
http://dist.gemstone.com/maven/release
Test
web.xml:
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"version="2.5">
characterEncodingFilter
org.springframework.web.filter.CharacterEncodingFilter
encoding
UTF-8
forceEncoding
true
characterEncodingFilter
/*
org.springframework.web.context.request.RequestContextListener
Test
org.springframework.web.servlet.DispatcherServlet
contextConfigLocation
classpath*:applicationContext.xml
1
Test
*.do
404
/error/404.jsp
DruidStatView
com.alibaba.druid.support.http.StatViewServlet
DruidStatView
/druid/*
applicationContext.xml:
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
">
classpath:log4j.xml
spring-mvc.xml:
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
">
spring-aop.xml:
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
">
spring-database.xml:
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
">
SELECT 1
com.hi.test.service.*
mybatis-config.xml:
/p>
"-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
log4j.xml:
commons-logging.properties:
org.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JLogger
IndexController:
packagecom.hi.test.controller;importjava.util.List;importjava.util.Map;importjavax.servlet.http.HttpServletRequest;importorg.springframework.beans.factory.annotation.Autowired;importorg.springframework.stereotype.Controller;importorg.springframework.web.bind.annotation.RequestMapping;importorg.springframework.web.bind.annotation.ResponseBody;importcom.hi.test.bean.User;importcom.hi.test.mapper.UserMapper;importcom.hi.test.service.TxTestService;
@Controllerpublic classIndexController {
@Autowired
UserMapper userMapper;
@Autowired
TxTestService txTestService;
@RequestMapping(value= "/index")publicString index(HttpServletRequest request,Map model) {//String name=request.getParameter("name");//model.put("name", name);
User u=newUser();
u.setUsername("admin");
u.setPassword("admin");
User user=userMapper.selectUser(u);
model.put("user", user);return "hi";
}
@RequestMapping(value= "/text")
@ResponseBodypublicString text(HttpServletRequest request) {return "{\"what\":\"hi\"}";
}
@RequestMapping(value= "/indexList")publicString indexList(HttpServletRequest request,Map model) {
List userList=userMapper.selectUserLsit();
model.put("userList", userList);return "hiList";
}
@RequestMapping(value= "/TxTest")
@ResponseBodypublicString test(HttpServletRequest request) {
txTestService.insert();return "";
}
}
User:
packagecom.hi.test.bean;public classUser {private intid;privateString username;privateString password;publicUser(){
}public intgetId() {returnid;
}public void setId(intid) {this.id =id;
}publicString getUsername() {returnusername;
}public voidsetUsername(String username) {this.username =username;
}publicString getPassword() {returnpassword;
}public voidsetPassword(String password) {this.password =password;
}publicString toString(){return "User [id = "+ id +" , username = "+ username +"]" + " , password = "+password;
}
}
UserMapper:
packagecom.hi.test.mapper;importjava.util.List;importorg.springframework.stereotype.Repository;importcom.hi.test.bean.User;
@Repositorypublic interfaceUserMapper {publicUser selectUser(User user);public voidinsertUser(User user);public voidupdateUser(User user);public void deleteUser(intuserId);publicList selectUserLsit();
}
UserMapper.xml:
/p>
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
SELECT * FROM user WHERE username=#{username} AND password=#{password}
INSERT INTO user (id,username,password) VALUES (#{id},#{username},#{password})
UPDATE user SET password=#{password} WHERE id=#{id}
DELETE FROM user WHERE id=#{userId}
SELECT * FROM user
TxTestService:
packagecom.hi.test.service;importjava.util.UUID;importorg.springframework.beans.factory.annotation.Autowired;importorg.springframework.stereotype.Service;importorg.springframework.transaction.annotation.Transactional;importcom.hi.test.bean.User;importcom.hi.test.mapper.UserMapper;
@Transactional
@Servicepublic classTxTestService {
@Autowired
UserMapper userMapper;public voidinsert() {for (int i = 0; i < 100; i++) {
User u= newUser();
u.setUsername(UUID.randomUUID().toString());
u.setPassword(UUID.randomUUID().toString());
userMapper.insertUser(u);
}throw newRuntimeException();
}
}
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 NULLAUTO_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:
Insert title herehi.jsp:
Insert title herehiList.jsp:
Insert title here${user.username}----${user.password}
======================================================================================
OK,代碼貼完了,項目上右鍵,debug on server應該就能跑起來了。
現在簡單講講,配置文件里面有注釋就不說了:
一:在配置文件添加事務的時候遇到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增加:
三:還有c:forEach這種標簽不能用
在JSP上增加
就可以了
四:spring事務這里
數據庫是mysql ,然后表引擎是InnoDB
用navicat在design table---option--engine可以看到
然后將表的引擎換成MyISAM,保存
說明:Spring的這個聲明事務能使用,MyISAM不支持事務。
五:Controller里的四個方法
第一個方法是一般的測試。
第二個方法是想測試返回json的,主要是@ResponseBody標簽。
第三個方法測試LIST。
第四個是測試事務的。
總結
以上是生活随笔為你收集整理的java使用druid maven_SpringMVC+Spring+Mybatis整合,使用druid连接池,声明式事务,maven配置...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java jdbctemplate赋值_
- 下一篇: java开发变化_十年编程语言变化,大众