maven ssm框架 mysql_基于Maven的SSM框架搭建

Maven + Spring + Spring MVC + Mybatis + MySQL整合SSM框架

1.数据库准备

本文主要想实现SSM框架的搭建,并基于该框架实现简单的登录功能,那么先新建一张user_t表:

DROP TABLE IF EXISTS`user_t`;CREATE TABLE`user_t` (

`id`INT(11) NOT NULLAUTO_INCREMENT,

`user_name` VARCHAR(40) NOT NULL,

`password`VARCHAR(255) NOT NULL,

`age`INT(4) NOT NULL,PRIMARY KEY(`id`)

) ENGINE=INNODB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;

然后再插入一条数据:

INSERT INTO `user_t`(`id`,`user_name`,`password`,`age`) VALUES (1,'测试','sfasgfaf',24);

为了简单起见,密码暂时先用明文,后面框架搭建成功后在改为MD5加密。

那么查看下user_login表的内容:

mysql> select * fromuser_t;+----+-----------+----------+-----+

| id | user_name | password | age |

+----+-----------+----------+-----+

| 1 | 测试 | sfasgfaf | 24 |

+----+-----------+----------+-----+

1 row in set (0.00 sec)

2.Maven Web项目创建

新建一个Maven Project,然后输入Group Id和Artifact Id,点击Finish就完成了。

3.开始整合Spring Spring MVC Mybatis

用过Maven的都知道,有了Maven就没必要去网上下载一对jar文件然后自己去管理,直接在pom.xml中添加依赖就可以:

4.0.0

20171117

SSM

0.0.1-SNAPSHOT

SSM Maven Webapp

http://maven.apache.org

org.springframework.boot

spring-boot-starter-parent

1.3.2.RELEASE

4.0.2.RELEASE

3.2.6

1.7.7

1.2.17

commons-logging

commons-logging

1.2

junit

junit

4.11

test

org.springframework

spring-core

${spring.version}

org.springframework

spring-web

${spring.version}

org.springframework

spring-oxm

${spring.version}

org.springframework

spring-tx

${spring.version}

org.springframework

spring-jdbc

${spring.version}

org.springframework

spring-webmvc

${spring.version}

org.springframework

spring-aop

${spring.version}

org.springframework

spring-context-support

${spring.version}

org.springframework

spring-test

${spring.version}

org.mybatis

mybatis

${mybatis.version}

org.mybatis

mybatis-spring

1.2.2

javax

javaee-api

7.0

mysql

mysql-connector-java

5.1.30

commons-dbcp

commons-dbcp

1.2.2

jstl

jstl

1.2

log4j

log4j

${log4j.version}

com.alibaba

fastjson

1.1.41

org.slf4j

slf4j-api

${slf4j.version}

org.slf4j

slf4j-log4j12

${slf4j.version}

org.codehaus.jackson

jackson-mapper-asl

1.9.13

commons-fileupload

commons-fileupload

1.3.1

commons-io

commons-io

2.4

commons-codec

commons-codec

1.9

Test

3.1Spring和Mybatis的整合

3.1.1创建数据库属性文件jdbc.properties

driver=com.mysql.jdbc.Driver

url=jdbc:mysql://10.0.20.252:3306/mybatis

username=root

password=Free-Wi11

initialSize=0

maxActive=20

maxIdle=20

minIdle=1

maxWait=60000

3.1.2创建spring-mybatis配置文件

这个文件就是用来完成spring和mybatis的整合的。这里面也没有多少行配置,主要就是自动扫描,自动注入,配置数据库,详细配置如下:

spring-mybatis.xml

http://www.springframework.org/schema/beans/spring-beans-3.1.xsd

http://www.springframework.org/schema/context

http://www.springframework.org/schema/context/spring-context-3.1.xsd

http://www.springframework.org/schema/mvc

http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd">

3.1.3日志的输出配置

为了方便调试,一般都会使用日志来输出信息,Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台,文件,GUI组件,甚至是套接口服务器,NT的事件记录器,UNIX Syslog守护进程等;我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致的控制日志的生成过程。

Log4j的配置很简单,而且也是通用的,下面给出一个基本的配置,换到其他项目中也无需做多大的调整。

下面给出配置文件目录:

0867bdbd28e9492a0dd578acea662b07.png

log4j.properties

log4j.rootLogger=INFO,Console,File

log4j.appender.Console=org.apache.log4j.ConsoleAppender

log4j.appender.Console.Target=System.out

log4j.appender.Console.layout = org.apache.log4j.PatternLayout

log4j.appender.Console.layout.ConversionPattern=[%c] - %m%n

log4j.appender.File = org.apache.log4j.RollingFileAppender

log4j.appender.File.File = logs/ssm.log

log4j.appender.File.MaxFileSize = 10MB

log4j.appender.File.Threshold = ALL

log4j.appender.File.layout = org.apache.log4j.PatternLayout

log4j.appender.File.layout.ConversionPattern =[%p] [%d{yyyy-MM-dd HH\:mm\:ss}][%c]%m%n

3.1.4JUnit测试

经过以上步骤,我们已经完成了Spring和Mybatis的整合,这样就可以编写一段测试代码来检验Spring和Mybatis是否整合成功了。

3.1.4.1创建实体类User

User.java

packagecom.cn.hnust.pojo;public classUser {private intid;privateString user_name;privateString password;public intgetId() {returnid;

}public void setId(intid) {this.id =id;

}publicString getUser_name() {returnuser_name;

}public voidsetUser_name(String user_name) {this.user_name =user_name;

}publicString getPassword() {returnpassword;

}public voidsetPassword(String password) {this.password =password;

}

}

3.1.4.2创建Dao接口,UserDao

UserDao.java

packagecom.cn.hnust.dao;importorg.apache.ibatis.annotations.Select;importorg.springframework.stereotype.Repository;importcom.cn.hnust.pojo.User;

@Repositorypublic interfaceUserDao {//@Select("select * from user_t where id=#{userId}")

public User selectByPrimaryKey(intuserId);

}

3.1.4.3User类与数据库user_t表的映射文件UserMapper.xml

UserMapper.xml

/p>

PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"

"http://mybatis.org/dtd/mybatis-3-mapper.dtd">

select * from user_t where id=#{userId}

3.1.4.4建立Service接口IUserService

IUserService.java

packagecom.cn.hnust.service;importcom.cn.hnust.pojo.User;public interfaceIUserService {public User getUserById(intuserId);

}

3.1.4.5建立IUserService接口的实现类UserServiceImpl

UserServiceImpl.java

packagecom.cn.hnust.service.impl;importjavax.annotation.Resource;importorg.springframework.stereotype.Service;importcom.cn.hnust.dao.UserDao;importcom.cn.hnust.pojo.User;importcom.cn.hnust.service.IUserService;

@Service("userService")public class UserServiceImpl implementsIUserService {

@ResourceprivateUserDao userDao;public User getUserById(intuserId) {//TODO Auto-generated method stub

return this.userDao.selectByPrimaryKey(userId);

}

}

0ea71af70d7eb43e1cf6e790f2a0cd2f.png

3.1.4.6建立测试类

测试类在src/test/java中建立,如果使用了Spring那么就可以使用注解的方式来引入配置文件和类,然后将service接口对象注入,就可以进行测试了。

如果测试成功,表示Spring和Mybatis已经整合成功了。输出信息使用的是Log4j打印到控制台。

TestMyBatis.java

packageorg.zsl.testmybatis;importjavax.annotation.Resource;importorg.apache.log4j.Logger;importorg.junit.Before;importorg.junit.Test;importorg.junit.runner.RunWith;importorg.springframework.context.ApplicationContext;importorg.springframework.context.support.ClassPathXmlApplicationContext;importorg.springframework.test.context.ContextConfiguration;importorg.springframework.test.context.junit4.SpringJUnit4ClassRunner;importcom.alibaba.fastjson.JSON;importcom.cn.hnust.pojo.User;importcom.cn.hnust.service.IUserService;

@RunWith(SpringJUnit4ClassRunner.class) //表示继承了SpringJUnit4ClassRunner类

@ContextConfiguration(locations = {"classpath:spring-mybatis.xml"})public classTestMyBatis {private static Logger logger = Logger.getLogger(TestMyBatis.class);//private ApplicationContext ac = null;

@Resourceprivate IUserService userService = null;//@Before//public void before() {//ac = new ClassPathXmlApplicationContext("applicationContext.xml");//userService = (IUserService) ac.getBean("userService");//}

@Testpublic voidtest1() {

User user= userService.getUserById(1);//System.out.println(user.getUserName());//logger.info("值:"+user.getUserName());//System.out.println(user.getUser_name());

logger.info(user.getId() + ".................." + user.getUser_name() + "........." +user.getPassword());

}

}

926c4abc3c155b4845a4e332d70a2c4e.png

Run As -> JUnit Test

运行结果:

51af702df48a255cff1463d243847590.png

至此,完成了Spring和Mybatis这两大框架的整合,下面将继续进行SpringMVC整合进项目中。

3.2整合Spring MVC

3.2.1配置spring-mvc.xml

配置里面的注释很详细,在此就补多少了,主要是自动扫描控制器,视图模式,注解的启动着三个。

spring-mvc.xml

http://www.springframework.org/schema/beans/spring-beans-3.1.xsd

http://www.springframework.org/schema/context

http://www.springframework.org/schema/context/spring-context-3.1.xsd

http://www.springframework.org/schema/mvc

http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd">

text/html;charset=UTF-8

3.2.2配置web.xml文件

这里面对spring-mybatis.xml的引入以及配置的spring-mvc的Servlet就是为了完成SSM整合,之前Spring和Mybatis整合不需要再此处进行任何配置。配置一样有详细的注释。

web.xml

0c18cfa6b37b4acd5652624b48179cdc.png

Archetype Created Web Application

contextConfigLocation

classpath:spring-mybatis.xml

encodingFilter

org.springframework.web.filter.CharacterEncodingFilter

true

encoding

UTF-8

encodingFilter

/*

org.springframework.web.context.ContextLoaderListener

org.springframework.web.util.IntrospectorCleanupListener

SpringMVC

org.springframework.web.servlet.DispatcherServlet

contextConfigLocation

classpath:spring-mvc.xml

1

true

SpringMVC

/

/index.jsp

3.3测试

至此已经完成了SSM三大框架的整合了,接下来测试一下。

3.3.1新建jsp页面

ae2a552d43486a88d7a5f83504dbbedd.png

success.jsp

Success

login success

fail.jsp

fail

login fail

3.3.2建立UserController类

UserController.java 控制器

ac5b0227c58fa64b522ffdff410b8099.png

packagecom.cn.hnust.controller;importjavax.annotation.Resource;importjavax.servlet.http.HttpServletRequest;importorg.springframework.stereotype.Controller;importorg.springframework.ui.Model;importorg.springframework.web.bind.annotation.RequestMapping;importorg.springframework.web.bind.annotation.ResponseBody;importcom.cn.hnust.pojo.User;importcom.cn.hnust.service.IUserService;

@Controller

@RequestMapping("/user")public classUserController {

@ResourceprivateIUserService userService;

@RequestMapping("/showUser")

@ResponseBodypublicString toIndex(HttpServletRequest request,Model model){int userId = Integer.parseInt(request.getParameter("id"));

User user= this.userService.getUserById(userId);

model.addAttribute("user", user);

System.out.println(user.getPassword());if ( user.getPassword().equals("12345") ) {return "success" +user.getPassword();

}else{return "fail" +user.getPassword();

}//return "success";

}

}

这个控制器写的比较简单,就是从浏览器访问/user/showUser?id=1,然后去数据库中取出id为1的用户的信息,判断该用户的密码和“12345”是否相同,如果相同则返回success字符串 + 该用户的密码,否则返回fail字符串 + 该用户的密码,由之前我们存到数据库中的id=1的用户的密码来看,其显然应该返回fail + 该用户的密码:

3.3.3部署项目

Run As -> Run On Server

在浏览器中输入http://localhost:8080/Test/user/showUser?id=1,运行的结果为:

bdd4f56a834148b52eee1085178f9b17.png

至此,SSM三大框架的整合就完成了,在此基础上可以再太你家啊其他功能。

也可以对UserController进行修改:

packagecom.cn.hnust.controller;importjavax.annotation.Resource;importjavax.servlet.http.HttpServletRequest;importorg.springframework.stereotype.Controller;importorg.springframework.ui.Model;importorg.springframework.web.bind.annotation.RequestMapping;importorg.springframework.web.bind.annotation.ResponseBody;importcom.cn.hnust.pojo.User;importcom.cn.hnust.service.IUserService;

@Controller

@RequestMapping("/user")public classUserController {

@ResourceprivateIUserService userService;

@RequestMapping("/showUser")//@ResponseBody

publicString toIndex(HttpServletRequest request,Model model){int userId = Integer.parseInt(request.getParameter("id"));

User user= this.userService.getUserById(userId);

model.addAttribute("user", user);

System.out.println(user.getPassword());if ( user.getPassword().equals("12345") ) {//return "success" + user.getPassword();

return "success";

}else{//return "fail" + user.getPassword();

}//return "success";

return "fail";

}

}

验证id=1的用户的密码是否是“12345”,如果是则返回success.jsp页面,否则返回fail.jsp页面,注意去掉了@ResponseBody的注解,返回的就是页面

运行结果:

3b7539b0b07d86164f79d536e46c1fd6.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值