博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用maven搭建ssm框架环境
阅读量:5299 次
发布时间:2019-06-14

本文共 13766 字,大约阅读时间需要 45 分钟。

1.前言

因为经常换环境,在搭ssm框架的时候老是出错,所以记录一下最近搭建的环境,以供参考。

本文讲解如何使用maven搭建ssm框架,并能用于简单的登录注册。

IDE:IDEA,JDK版本:1.8,数据库:mysql5.7    启动方式:tomcat

 

首先创建一个简单的数据库表,用于保存用户名和密码,id是主键,如图:

 

然后创建一个maven的web工程,先上目录结构:

在java中总共有五个包:

  1. controller:放置控制器,在控制层控制逻辑业务跳转的类文件。
  2. dao:dao层的接口及其实现类都放在这个包下,其中包含generator逆向生成的类
  3. bean:存放generator逆向生成实体类
  4. test:使用逆向时需要的测试类
  5. service:业务层的接口与实现类放在这个包下,包含具体业务逻辑。

2.maven工程导入依赖

下面是需要在pom.xml文件中添加的依赖,可能部分jar包多余,但是本项目不冲突:

4.0.0
com.xk
XXXXX
war
0.0.1-SNAPSHOT
xyspgl Maven Webapp
http://maven.apache.org
UTF-8
4.3.0.RELEASE
3.3.0
org.mybatis.generator
mybatis-generator-core
1.3.2
junit
junit
3.8.1
test
org.springframework
spring-core
${spring.version}
org.springframework
spring-context
${spring.version}
org.springframework
spring-aop
${spring.version}
org.aspectj
aspectjrt
1.8.6
org.aspectj
aspectjweaver
1.8.6
org.springframework
spring-webmvc
${spring.version}
org.springframework
spring-jdbc
${spring.version}
commons-dbcp
commons-dbcp
1.4
mysql
mysql-connector-java
5.1.38
org.mybatis
mybatis
${mybatis.version}
cglib
cglib
3.1
org.javassist
javassist
3.17.1-GA
commons-logging
commons-logging
1.1.1
commons-lang
commons-lang
2.6
log4j
log4j
1.2.17
org.slf4j
slf4j-api
1.7.5
org.apache.logging.log4j
log4j-core
2.0.2
org.slf4j
slf4j-log4j12
1.7.5
commons-fileupload
commons-fileupload
1.3
com.alibaba
fastjson
1.2.24
com.fasterxml.jackson.core
jackson-databind
2.5.3
org.hibernate
hibernate-validator
5.0.0.Final
org.mybatis
mybatis-spring
1.2.2
jstl
jstl
1.2
commons-fileupload
commons-fileupload
1.3
com.github.pagehelper
pagehelper
4.1.4
javax.servlet
javax.servlet-api
4.0.1
provided
xyspgl
org.apache.maven.plugins
maven-compiler-plugin
3.8.0
1.8
1.8
UTF8

 

3.配置文件

在src/main/resources下新建几个基本的配置文件:

 

其中,mapper文件夹存放generator逆向生成的mapper配置文件;

db.properties是放置数据库以及数据池的数据

driver=com.mysql.jdbc.Driver#在和mysql传递数据的过程中,使用unicode编码格式,并且字符集设置为utf-8url=jdbc:mysql://127.0.0.1:3306/ssm?useUnicode=true&characterEncoding=utf-8user=rootpassword=root#password=123456minIdle=50maxIdle=45initialSize=5maxActive=100maxWait=100removeAbandonedTimeout=180removeAbandoned=truetimeBetweenEvictionRunsMillis=60000testWhileIdle=truetestOnBorrow=falsetestOnReturn=false

 

log4j.properties是日志的相关配置:

# Global logging configurationlog4j.rootLogger=DEBUG, stdout# Console output...log4j.appender.stdout=org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.layout=org.apache.log4j.PatternLayoutlog4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n

 

ApplicationContext.xml是Spring的配置文件:

 

mybatis-config.xml是mybatis的配置文件:

 

SpringMvc.xml是springmvc的配置文件:

 

接下来是web.xml的全局配置:

ssm3
index.html
index.htm
index.jsp
default.html
default.htm
default.jsp
contextConfigLocation
classpath:ApplicationContext*.xml
org.springframework.web.context.ContextLoaderListener
springMvc
org.springframework.web.servlet.DispatcherServlet
contextConfigLocation
classpath:SpringMvc.xml
1
springMvc
*.action
characterEncodingFilter
org.springframework.web.filter.CharacterEncodingFilter
encoding
UTF-8
forceEncoding
true
characterEncodingFilter
/*

到此,ssm的环境基本算是搭建成功,接下来是要编写java实体代码。

4.Genarator自动构建代码

首先是genarator.xml文件,用于逆向自动生成dao和bean以及mapper的映射文件,需要改动路径的部分都用注释标明,代码如下:

 

 

配置genarator.xml之后要编写测试类编译生成相关配置类,在itle/test中新建一个类StartServer

import java.io.File;import java.util.ArrayList;import java.util.List;import org.mybatis.generator.api.MyBatisGenerator;import org.mybatis.generator.config.Configuration;import org.mybatis.generator.config.xml.ConfigurationParser;import org.mybatis.generator.internal.DefaultShellCallback;//逆向生成映射文件public class StartServer {    public void generator() throws Exception{        List
warnings = new ArrayList
(); boolean overwrite = true; File configFile = new File("src\\main\\resources\\genarator.xml"); ConfigurationParser cp = new ConfigurationParser(warnings); Configuration config = cp.parseConfiguration(configFile); DefaultShellCallback callback = new DefaultShellCallback(overwrite); MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings); myBatisGenerator.generate(null); } public static void main(String[] args) throws Exception { try { StartServer startServer = new StartServer(); startServer.generator(); } catch (Exception e) { e.printStackTrace(); } }

 

运行这段代码,刷新项目,会dao、bean、mapper三个包中生成相应类,所以这3个包我们是不需要去管的。

5.编写业务层

在service包下新建一个接口 IUserService

import java.util.List;import itle.bean.User;public interface IUserService {    public boolean findUserByNameAndPwd(User user) throws Exception;    public boolean register(User user) throws Exception;}

再新建一个相应的实现类 UserServiceImpl

import java.util.List;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;import itle.dao.UserMapper;import itle.bean.User;import itle.bean.UserExample;@Servicepublic class UserServiceImpl implements IUserService {    @Autowired    private UserMapper userMapper;    //根据对象查询    public boolean findUserByNameAndPwd(User user) throws Exception {        UserExample example = new UserExample();        List
list = userMapper.selectByExample(example); for(User u:list) { if(u.getUsername().equals(user.getUsername())&& u.getUserpwd().equals(user.getUserpwd())) { return true; } } return false; } //插入一个对象的数据 public boolean register(User user) throws Exception { int i = userMapper.insertSelective(user); if(i>0) { return true; } return false; }}

 

6.编写控制层

在controller包中新建一个类 UserCtroller

import java.util.List;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import itle.bean.User;import itle.service.IUserService;@Controllerpublic class UserCtroller {    @Autowired    private IUserService userService;    //登录    @RequestMapping("/login")    public String loginqw(User user) throws Exception{        if(userService.findUserByNameAndPwd(user)) {            return "success";        }        return "login";    }    @RequestMapping("/indexReg")    public String indexreg() {        return "register";    }    @RequestMapping("/index")    public String indexLog() {        return "login";    }    //注册    @RequestMapping("/reg")    public String register(User user) throws Exception{        if(userService.register(user)) {            return "success";        }        return "register";    }}

 

7.jsp页面

需要用于登陆注册的页面

在webapp/WEB-INF下新建一个jsp文件夹,用于管理jsp页面,在文件夹下新建login.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"         pageEncoding="UTF-8"%>    
Insert title here

登录页面

用户名:
密码:
去注册

再新建一个register.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"         pageEncoding="UTF-8"%>    
Insert title here

注册页面

用户名:
密码:
去登录

还有一个登陆成功后跳转的主页 success.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"         pageEncoding="UTF-8"%>    
Insert title here

成功!

 

8.测试

运行成功!截图如下:

 

转载于:https://www.cnblogs.com/luler/p/11424663.html

你可能感兴趣的文章
IPSP问题
查看>>
(转)Java中的String为什么是不可变的? -- String源码分析
查看>>
HNU 10362 A+B for Input-Output Practice (II)
查看>>
iOS——UIButton响应传参数
查看>>
【转帖】关于'eh vector constructor/destructor iterator'的讨论及类的内存分布模型
查看>>
十. 图形界面(GUI)设计9.列表和组合框
查看>>
10.17动手动脑
查看>>
操作系统实验一:并发程序设计
查看>>
互联网协议入门(一)
查看>>
16_Python变量作用域_Python编程之路
查看>>
js index of()用法
查看>>
XSS原理及防范
查看>>
WPF中Image显示本地图片
查看>>
SVN版本管理
查看>>
哈希表等概率情况下查找成功和查找不成功的平均查找长度的计算
查看>>
Windows Phone 7你不知道的8件事
查看>>
脚本删除文件下的文件
查看>>
实用拜占庭容错算法PBFT
查看>>
java b组 小计算器,简单计算器..
查看>>
java的二叉树树一层层输出,Java构造二叉树、树形结构先序遍历、中序遍历、后序遍历...
查看>>