springmvc+mybatis+marven整合

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: springmvc+mybatis+maven整合视频http://www.java1234.com/a/javaziliao/javaweb/2013/0816/591.

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的版本一定要一样!!!!

三、sping+mybatis配置

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项目

五、转换web工程

接上面的工程接着说,此时要加spingMVC之前,工程得再稍微转换下

此时webapp下的结果还没有显示出来,因为此时我们还没有配置此的项目为web项目

再次进去Properties配置,如下图所示:如果没有显示如下,那就先把dynamic web module的√给去掉,然后重新再打开 这个

进入,然后输入如下内容

确定OK之后,webapp下面就会自动生成一些文件,如下

六、配置SpringMVC

(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/

本文工程免费下载

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
2月前
|
JSON 前端开发 Java
SSM:SpringMVC
本文介绍了SpringMVC的依赖配置、请求参数处理、注解开发、JSON处理、拦截器、文件上传下载以及相关注意事项。首先,需要在`pom.xml`中添加必要的依赖,包括Servlet、JSTL、Spring Web MVC等。接着,在`web.xml`中配置DispatcherServlet,并设置Spring MVC的相关配置,如组件扫描、默认Servlet处理器等。然后,通过`@RequestMapping`等注解处理请求参数,使用`@ResponseBody`返回JSON数据。此外,还介绍了如何创建和配置拦截器、文件上传下载的功能,并强调了JSP文件的放置位置,避免404错误。
|
2月前
|
前端开发 Java 应用服务中间件
【Spring】Spring MVC的项目准备和连接建立
【Spring】Spring MVC的项目准备和连接建立
58 2
|
3月前
|
缓存 前端开发 Java
【Java面试题汇总】Spring,SpringBoot,SpringMVC,Mybatis,JavaWeb篇(2023版)
Soring Boot的起步依赖、启动流程、自动装配、常用的注解、Spring MVC的执行流程、对MVC的理解、RestFull风格、为什么service层要写接口、MyBatis的缓存机制、$和#有什么区别、resultType和resultMap区别、cookie和session的区别是什么?session的工作原理
【Java面试题汇总】Spring,SpringBoot,SpringMVC,Mybatis,JavaWeb篇(2023版)
|
2月前
|
XML 前端开发 Java
Spring,SpringBoot和SpringMVC的关系以及区别 —— 超准确,可当面试题!!!也可供零基础学习
本文阐述了Spring、Spring Boot和Spring MVC的关系与区别,指出Spring是一个轻量级、一站式、模块化的应用程序开发框架,Spring MVC是Spring的一个子框架,专注于Web应用和网络接口开发,而Spring Boot则是对Spring的封装,用于简化Spring应用的开发。
136 0
Spring,SpringBoot和SpringMVC的关系以及区别 —— 超准确,可当面试题!!!也可供零基础学习
|
3月前
|
XML 缓存 前端开发
springMVC02,restful风格,请求转发和重定向
文章介绍了RESTful风格的基本概念和特点,并展示了如何使用SpringMVC实现RESTful风格的请求处理。同时,文章还讨论了SpringMVC中的请求转发和重定向的实现方式,并通过具体代码示例进行了说明。
springMVC02,restful风格,请求转发和重定向
|
4月前
|
Java 数据库连接 Spring
后端框架入门超详细 三部曲 Spring 、SpringMVC、Mybatis、SSM框架整合案例 【爆肝整理五万字】
文章是关于Spring、SpringMVC、Mybatis三个后端框架的超详细入门教程,包括基础知识讲解、代码案例及SSM框架整合的实战应用,旨在帮助读者全面理解并掌握这些框架的使用。
后端框架入门超详细 三部曲 Spring 、SpringMVC、Mybatis、SSM框架整合案例 【爆肝整理五万字】
|
4月前
|
XML JSON 数据库
SpringMVC入门到实战------七、RESTful的详细介绍和使用 具体代码案例分析(一)
这篇文章详细介绍了RESTful的概念、实现方式,以及如何在SpringMVC中使用HiddenHttpMethodFilter来处理PUT和DELETE请求,并通过具体代码案例分析了RESTful的使用。
SpringMVC入门到实战------七、RESTful的详细介绍和使用 具体代码案例分析(一)
|
4月前
|
前端开发 应用服务中间件 数据库
SpringMVC入门到实战------八、RESTful案例。SpringMVC+thymeleaf+BootStrap+RestFul实现员工信息的增删改查
这篇文章通过一个具体的项目案例,详细讲解了如何使用SpringMVC、Thymeleaf、Bootstrap以及RESTful风格接口来实现员工信息的增删改查功能。文章提供了项目结构、配置文件、控制器、数据访问对象、实体类和前端页面的完整源码,并展示了实现效果的截图。项目的目的是锻炼使用RESTful风格的接口开发,虽然数据是假数据并未连接数据库,但提供了一个很好的实践机会。文章最后强调了这一章节主要是为了练习RESTful,其他方面暂不考虑。
SpringMVC入门到实战------八、RESTful案例。SpringMVC+thymeleaf+BootStrap+RestFul实现员工信息的增删改查
|
4月前
|
JSON 前端开发 Java
Spring MVC返回JSON数据
综上所述,Spring MVC提供了灵活、强大的方式来支持返回JSON数据,从直接使用 `@ResponseBody`及 `@RestController`注解,到通过配置消息转换器和异常处理器,开发人员可以根据具体需求选择合适的实现方式。
170 4
|
4月前
|
XML 前端开发 Java
Spring MVC接收param参数(直接接收、注解接收、集合接收、实体接收)
Spring MVC提供了灵活多样的参数接收方式,可以满足各种不同场景下的需求。了解并熟练运用这些基本的参数接收技巧,可以使得Web应用的开发更加方便、高效。同时,也是提高代码的可读性和维护性的关键所在。在实际开发过程中,根据具体需求选择最合适的参数接收方式,能够有效提升开发效率和应用性能。
122 3
下一篇
无影云桌面