springmvc+mybatis+maven整合视频
http://www.java1234.com/a/javaziliao/javaweb/2013/0816/591.html
http://blog.csdn.net/evankaka/article/details/48785513
[置顶]Spring+Mybatis+SpringMVC+Maven+MySql搭建实例
标签:SpringMybatisspring mvcMaven
2015-09-30 07:5022038人阅读评论(23)收藏举报
分类:
林炳文Evankaka原创作品。转载请注明出处http://blog.csdn.net/evankaka
摘要:本文主要讲了如何使用Maven来搭建Spring+Mybatis+SpringMVC+MySQL的搭建实例,文章写得很详细,有代码有图片,最后也带有运行的效果。
1. 首先创建一个表:
[sql]view plaincopy
CREATETABLE`t_user` (
`USER_ID`int(11)NOTNULLAUTO_INCREMENT,
`USER_NAME`char(30)NOTNULL,
`USER_PASSWORD`char(10)NOTNULL,
`USER_EMAIL`char(30)NOTNULL,
PRIMARYKEY(`USER_ID`),
KEY`IDX_NAME` (`USER_NAME`)
) ENGINE=InnoDB AUTO_INCREMENT=11DEFAULTCHARSET=utf8
随便插入一些数据:
[sql]view plaincopy
INSERTINTOt_user (USER_ID, USER_NAME, USER_PASSWORD, USER_EMAIL)VALUES(1,'林炳文','1234567@','ling20081005@126.com');
INSERTINTOt_user (USER_ID, USER_NAME, USER_PASSWORD, USER_EMAIL)VALUES(2,'evan','123','fff@126.com');
INSERTINTOt_user (USER_ID, USER_NAME, USER_PASSWORD, USER_EMAIL)VALUES(3,'kaka','cadg','fwsfg@126.com');
INSERTINTOt_user (USER_ID, USER_NAME, USER_PASSWORD, USER_EMAIL)VALUES(4,'simle','cscs','fsaf@126.com');
INSERTINTOt_user (USER_ID, USER_NAME, USER_PASSWORD, USER_EMAIL)VALUES(5,'arthur','csas','fsaff@126.com');
INSERTINTOt_user (USER_ID, USER_NAME, USER_PASSWORD, USER_EMAIL)VALUES(6,'小德','yuh78','fdfas@126.com');
INSERTINTOt_user (USER_ID, USER_NAME, USER_PASSWORD, USER_EMAIL)VALUES(7,'小小','cvff','fsaf@126.com');
INSERTINTOt_user (USER_ID, USER_NAME, USER_PASSWORD, USER_EMAIL)VALUES(8,'林林之家','gvv','lin@126.com');
INSERTINTOt_user (USER_ID, USER_NAME, USER_PASSWORD, USER_EMAIL)VALUES(9,'林炳文Evankaka','dfsc','ling2008@126.com');
INSERTINTOt_user (USER_ID, USER_NAME, USER_PASSWORD, USER_EMAIL)VALUES(10,'apple','uih6','ff@qq.com');
1、Maven工程创建
(1)新建
(2)选择快速框架
(3)输出项目名,包,记得选war(表示web项目,以后可以spingMVC连起来用)
(4)创建好之后
目录如下:
(5)检查下
这三个地方JDK的版本一定要一样!!!!
1、整个工程目录如下:
2、POM文件
[html]view plaincopy
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4.0.0
com.lin
ssm_project
0.0.1-SNAPSHOT
war
3.2.8.RELEASE
1.6.6
1.2.12
4.10
3.2.1
org.springframework
spring-core
${spring.version}
org.springframework
spring-webmvc
${spring.version}
org.springframework
spring-context
${spring.version}
org.springframework
spring-context-support
${spring.version}
org.springframework
spring-aop
${spring.version}
org.springframework
spring-aspects
${spring.version}
org.springframework
spring-tx
${spring.version}
org.springframework
spring-jdbc
${spring.version}
org.springframework
spring-web
${spring.version}
junit
junit
${junit.version}
test
log4j
log4j
${log4j.version}
org.slf4j
slf4j-api
${slf4j.version}
org.slf4j
slf4j-log4j12
${slf4j.version}
org.springframework
spring-test
${spring.version}
test
org.mybatis
mybatis
${mybatis.version}
org.mybatis
mybatis-spring
1.2.0
mysql
mysql-connector-java
5.1.29
3、java代码-------src/main/java
目录如下:
(1)User.java
对应数据库中表的字段,放在src/main/java下的包com.lin.domain
[java]view plaincopy
packagecom.lin.domain;
/**
* User映射类
*
* @author linbingwen
* @time 2015.5.15
*/
publicclassUser {
privateInteger userId;
privateString userName;
privateString userPassword;
privateString userEmail;
publicInteger getUserId() {
returnuserId;
}
publicvoidsetUserId(Integer userId) {
this.userId = userId;
}
publicString getUserName() {
returnuserName;
}
publicvoidsetUserName(String userName) {
this.userName = userName;
}
publicString getUserPassword() {
returnuserPassword;
}
publicvoidsetUserPassword(String userPassword) {
this.userPassword = userPassword;
}
publicString getUserEmail() {
returnuserEmail;
}
publicvoidsetUserEmail(String userEmail) {
this.userEmail = userEmail;
}
@Override
publicString toString() {
return"User [userId="+ userId +", userName="+ userName
+", userPassword="+ userPassword +", userEmail="+ userEmail
+"]";
}
}
(2)UserDao.java
Dao接口类,用来对应mapper文件。放在src/main/java下的包com.lin.dao,内容如下:
[java]view plaincopy
packagecom.lin.dao;
importcom.lin.domain.User;
/**
* 功能概要:User的DAO类
*
* @author linbingwen
* @since 2015年9月28日
*/
publicinterfaceUserDao {
/**
*
* @author linbingwen
* @since 2015年9月28日
* @param userId
* @return
*/
publicUser selectUserById(Integer userId);
}
(2)UserService.java和UserServiceImpl.java
service接口类和实现类,放在src/main/java下的包com.lin.service,内容如下:
UserService.java
[java]view plaincopy
packagecom.lin.service;
importorg.springframework.stereotype.Service;
importcom.lin.domain.User;
/**
* 功能概要:UserService接口类
*
* @author linbingwen
* @since 2015年9月28日
*/
publicinterfaceUserService {
User selectUserById(Integer userId);
}
UserServiceImpl.java
[java]view plaincopy
packagecom.lin.service;
importorg.springframework.beans.factory.annotation.Autowired;
importorg.springframework.stereotype.Service;
importcom.lin.dao.UserDao;
importcom.lin.domain.User;
/**
* 功能概要:UserService实现类
*
* @author linbingwen
* @since 2015年9月28日
*/
@Service
publicclassUserServiceImplimplementsUserService{
@Autowired
privateUserDao userDao;
publicUser selectUserById(Integer userId) {
returnuserDao.selectUserById(userId);
}
}
(4)mapper文件
用来和dao文件对应,放在src/main/java下的com.lin.mapper包下
[html]view plaincopy
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
SELECT * FROM t_user WHEREUSER_ID= #{userId}
4、资源配置-------src/main/resources
目录如下:
(1)mybatis配置文件
这里没有什么内容,因为都被放到application.xml中去了,放在src/main/resources下的mybatis文件夹下
mybatis-config.xml内容如下:
[html]view plaincopy
"http://mybatis.org/dtd/mybatis-3-config.dtd">
(2)数据源配置jdbc.properties
放在src/main/resources下的propertiesy文件夹下
[html]view plaincopy
jdbc_driverClassName=com.mysql.jdbc.Driver
jdbc_url=jdbc:mysql://localhost:3306/learning
jdbc_username=root
jdbc_password=christmas258@
(3)Spring配置
这是最重要的:application.xml内容如下
[html]view plaincopy
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-3.0.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd">
classpath:properties/*.properties
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
-->
${jdbc_driverClassName}
${jdbc_url}
${jdbc_username}
${jdbc_password}
value="com.lin.dao"/>
/>-->
(4)日志打印log4j.properties
就放在src/main/resources
[html]view plaincopy
log4j.rootLogger=DEBUG,Console,Stdout
#Console
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n
log4j.logger.java.sql.ResultSet=INFO
log4j.logger.org.apache=INFO
log4j.logger.java.sql.Connection=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG
log4j.appender.Stdout=org.apache.log4j.DailyRollingFileAppender
log4j.appender.Stdout.File=E://logs/log.log
log4j.appender.Stdout.Append=true
log4j.appender.Stdout.Threshold=DEBUG
log4j.appender.Stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.Stdout.layout.ConversionPattern= %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
上面的配置完好,接下来就是测验成功
整个目录 如下:
(1)测试基类
[java]view plaincopy
packagecom.lin.baseTest;
importorg.junit.runner.RunWith;
importorg.slf4j.Logger;
importorg.slf4j.LoggerFactory;
importorg.springframework.test.context.ContextConfiguration;
importorg.springframework.test.context.junit4.AbstractJUnit4SpringContextTests;
importorg.springframework.test.context.junit4.SpringJUnit4ClassRunner;
/**
* 功能概要:
*
* @author linbingwen
* @since 2015年9月28日
*/
//指定bean注入的配置文件
@ContextConfiguration(locations = {"classpath:application.xml"})
//使用标准的JUnit @RunWith注释来告诉JUnit使用Spring TestRunner
@RunWith(SpringJUnit4ClassRunner.class)
publicabstractclassSpringTestCaseextendsAbstractJUnit4SpringContextTests{
protectedLogger logger = LoggerFactory.getLogger(getClass());
}
(2)测试类
[java]view plaincopy
packagecom.lin.service;
importorg.apache.log4j.Logger;
importorg.junit.Test;
importorg.springframework.beans.factory.annotation.Autowired;
importcom.lin.baseTest.SpringTestCase;
importcom.lin.domain.User;
/**
* 功能概要:UserService单元测试
*
* @author linbingwen
* @since 2015年9月28日
*/
publicclassUserServiceTestextendsSpringTestCase {
@Autowired
privateUserService userService;
Logger logger = Logger.getLogger(UserServiceTest.class);
@Test
publicvoidselectUserByIdTest(){
User user = userService.selectUserById(10);
logger.debug("查找结果"+ user);
}
}
选中selectUserByIdTest,然后右键如下运行
输出结果:
重要打印的结果
这里
[plain]view plaincopy
2015-09-28 15:20:15,129 [main] DEBUG [com.lin.dao.UserDao.selectUserById] - ==> Preparing: SELECT * FROM t_user WHERE USER_ID = ?
2015-09-28 15:20:15,160 [main] DEBUG [com.lin.dao.UserDao.selectUserById] - ==> Parameters: 10(Integer)
2015-09-28 15:20:15,160 [main] DEBUG [org.mybatis.spring.SqlSessionUtils] - Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@6b64bff9]
2015-09-28 15:20:15,160 [main] DEBUG [org.springframework.jdbc.datasource.DataSourceUtils] - Returning JDBC Connection to DataSource
2015-09-28 15:20:15,160 [main] DEBUG [com.lin.service.UserServiceTest] - 查找结果User [userId=10, userName=apple, userPassword=uih6, userEmail=ff@qq.com]
数据库:
程序成功运行,并且结果正确!
到这里配置好spring+mybatis+mysql!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
=====================================================
这里开始添加spirngMVC,并转换maven工程为web项目
接上面的工程接着说,此时要加spingMVC之前,工程得再稍微转换下
此时webapp下的结果还没有显示出来,因为此时我们还没有配置此的项目为web项目
再次进去Properties配置,如下图所示:如果没有显示如下,那就先把dynamic web module的√给去掉,然后重新再打开 这个
进入,然后输入如下内容
确定OK之后,webapp下面就会自动生成一些文件,如下
(1)修改POM文件,增加了一此内容,新的POM文件如下:
[html]view plaincopy
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4.0.0
com.lin
ssm_project
0.0.1-SNAPSHOT
war
3.2.8.RELEASE
1.6.6
1.2.12
4.10
3.2.1
org.springframework
spring-core
${spring.version}
org.springframework
spring-webmvc
${spring.version}
org.springframework
spring-context
${spring.version}
org.springframework
spring-context-support
${spring.version}
org.springframework
spring-aop
${spring.version}
org.springframework
spring-aspects
${spring.version}
org.springframework
spring-tx
${spring.version}
org.springframework
spring-jdbc
${spring.version}
org.springframework
spring-web
${spring.version}
junit
junit
${junit.version}
test
log4j
log4j
${log4j.version}
org.slf4j
slf4j-api
${slf4j.version}
org.slf4j
slf4j-log4j12
${slf4j.version}
org.springframework
spring-test
${spring.version}
test
org.mybatis
mybatis
${mybatis.version}
org.mybatis
mybatis-spring
1.2.0
mysql
mysql-connector-java
5.1.29
javax
javaee-api
6.0
provided
javax
javaee-web-api
6.0
provided
其实也就增加了下面两个
[html]view plaincopy
javax
javaee-api
6.0
provided
javax
javaee-web-api
6.0
provided
(2) 在src/main/resource中添加springmvc文件夹,然后添加文件spring-mvc.xml,内容如下:
[html]view plaincopy
xmlns:p="http://www.springframework.org/schema/p"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.2.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd">
p:prefix="/WEB-INF/view/"p:suffix=".jsp"/>
(3)配置web,xml
目录如下 :
这里是关键,web.xml是用来起动sping、spingMVC
放在src/main/webapp/WEB-INF下。内容如下:
[html]view plaincopy
xmlns="http://java.sun.com/xml/ns/javaee"xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
id="WebApp_ID"version="2.5">
Archetype Created Web Application
index.jsp
contextConfigLocation
classpath:application.xml
webAppRootKey
springmvc.root
SpringEncodingFilter
org.springframework.web.filter.CharacterEncodingFilter
encoding
UTF-8
forceEncoding
true
SpringEncodingFilter
/*
log4jConfigLocation
classpath:log4j.properties
log4jRefreshInterval
6000
org.springframework.web.util.Log4jConfigListener
org.springframework.web.context.ContextLoaderListener
dispatcherServlet
org.springframework.web.servlet.DispatcherServlet
contextConfigLocation
classpath:springmvc/spring-mvc.xml
1
dispatcherServlet
/
404
/WEB-INF/errorpage/404.jsp
405
/WEB-INF/errorpage/405.jsp
500
/WEB-INF/errorpage/500.jsp
(4)添加index.jsp
在src/main/webapp/WEB-INF下新建一个文件夹view,添加一个index.jsp,内容如下:
[html]view plaincopy
<%@ pagelanguage="java"contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
Hello World!
${user.userId}
${user.userName}
${user.userPassword}
${user.userEmail}
(5)最后就是controller的书写了
在src/main/java下新建一个包com.lin.controller.然后新建一个类UserController.java,其内容如下:
[java]view plaincopy
packagecom.lin.controller;
importjavax.annotation.Resource;
importorg.springframework.stereotype.Controller;
importorg.springframework.web.bind.annotation.RequestMapping;
importorg.springframework.web.servlet.ModelAndView;
importcom.lin.domain.User;
importcom.lin.service.UserService;
/**
* 功能概要:UserController
*
* @author linbingwen
* @since 2015年9月28日
*/
@Controller
publicclassUserController {
@Resource
privateUserService userService;
@RequestMapping("/")
publicModelAndView getIndex(){
ModelAndView mav =newModelAndView("index");
User user = userService.selectUserById(1);
mav.addObject("user", user);
returnmav;
}
}
(6)最后的运行!
最后,就是成果了,已经全部都配置好了。我们可以开始以web工程运行了!
然后一路next
接下来控制台就会打印日志出来了!如下
打印浏览器,输入网址:http://localhost:8088/ssm_project/