在目前的企业级Java应用中,Spring框架是必须的。Struts2框架与Spring的整合问题日益凸显,而Spring MVC作为新一代的MVC框架,因其可以与Spring框架无缝整合的特性收到了越来越多的欢迎。Hibernate框架在面对需要存储过程或者复杂SQL时显得力不从心,不能提供高效的数据库控制。而Mybatis框架作为持久层的框架,虽然需要自己编写SQL语句,但是其对高并发高响应的支持,以及对动态SQL和动态绑定的支持使其脱颖而出。
因此SSM框架(Spring + Spring MVC +Mybatis)逐渐取代了之前广泛使用的SSH框架(Spring + Struts2 + Hibernate),成为了目前使用最多的框架。
本文使用IDEA,利用Maven管理项目,整合SSM框架搭建信息管理系统,实现简单的增、删、改、查功能。步骤详细,讲解丰富,适合新手入门。
IDEA+Maven搭建项目骨架
新建Maven项目:点击File -> New -> Project -> Maven -> 勾选 Create from archetype -> 选择 maven-archetype-webapp
在弹出的new project 选项卡中填写GroupId和Artifactid,其中GroupID是项目组织唯一的标识符,实际对应JAVA的包的结构,是main目录里java的目录结构,ArtifactID是项目的唯一的标识符,实际对应项目的名称,就是项目根目录的名称。对于入门练习,这两项可以随意填写。
之后点击next 选择Maven版本(其中IDEA 专业版自带Maven,也可以选择自己下载的maven)。之后填写项目名称和项目地址,完成后点击Finish,完成项目骨架的创建。
同理,建立resources包,Mark Directory as->Resources Root
上面新建的四个包:bean,service,dao,controller,其所存放的分别是:
-bean: 存放自定义的java类。如:UseInfor类,Paper类,book类等,每个类的属性设为private,并提供public属性的getter/setter方法让外界访问
在resource包下新建Directory:“mapper”(用于存放xxxMapper.xml文件)和“spring”(用于存放spring-xxx.xml配置文件或者直接新建此文件),新建文件:“db.properties”(mysql数据库配置文件),”log4j.properties”(日志输出配置文件),”applicationnContext.xml”(mybatis框架配置文件)。
pom.xml
4.0.0
com.zhongruan
ssm
1.0-SNAPSHOT
war
ssm Maven Webapp
http://www.example.com
UTF-8
1.7
1.7
5.0.2.RELEASE
3.2.6
1.7.7
1.2.17
0.9.5.2
1.1.2
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.mchange
c3p0
${c3p0.version}
taglibs
standard
${taglibs.version}
org.slf4j
slf4j-api
${slf4j.version}
org.slf4j
slf4j-log4j12
${slf4j.version}
javax.servlet
javax.servlet-api
3.1.0
provided
javax.servlet.jsp
javax.servlet.jsp-api
2.3.1
provided
ssm
maven-clean-plugin
3.1.0
maven-resources-plugin
3.0.2
maven-compiler-plugin
3.8.0
maven-surefire-plugin
2.22.1
maven-war-plugin
3.2.2
maven-install-plugin
2.5.2
maven-deploy-plugin
2.8.2
package com.zhongruan.bean;
public class UserInfo {
private int id;
private String username;
private String password;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public String toString() {
return "UserInfo{" +
"id=" + id +
", username='" + username + '\'' +
", password='" + password + '\'' +
'}';
}
}
package com.zhongruan.service;
import com.zhongruan.bean.UserInfo;
import java.util.List;
public interface IUserService {
public List findAll();
public void insert(UserInfo userinfo);
public void delete(UserInfo userinfo);
public void update(UserInfo userinfo);
public UserInfo findid(int id);
}
package com.zhongruan.service.impl;
import com.zhongruan.bean.UserInfo;
import com.zhongruan.dao.IUserDao;
import com.zhongruan.service.IUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class UserService implements IUserService {
@Autowired
private IUserDao userDao;
@Override
public List findAll() {
return userDao.findAll();
}
public void insert(UserInfo userinfo){
userDao.insert(userinfo);
}
public void delete(UserInfo userinfo){
userDao.delete(userinfo);
}
public void update(UserInfo userinfo){
userDao.update(userinfo);
}
public UserInfo findid(int id){
return userDao.findid(id);
}
}
package com.zhongruan.dao;
import com.zhongruan.bean.UserInfo;
import java.util.List;
public interface IUserDao {
public List findAll();
public void insert(UserInfo userInfo);
public void delete(UserInfo userInfo);
public void update(UserInfo userInfo);
public UserInfo findid(int id);
}
package com.zhongruan.controller;
import com.zhongruan.bean.UserInfo;
import com.zhongruan.service.IUserService;
import com.zhongruan.service.impl.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import java.util.List;
@Controller
@RequestMapping("/user")
public class UserController {
@Autowired
private IUserService userService;
@RequestMapping("/findAll.do")
public ModelAndView findAll(){
List all=userService.findAll();
ModelAndView mv=new ModelAndView();
mv.addObject("userInfos",all);
mv.setViewName("allUser");
return mv;
}
@RequestMapping("/toAddUser.do")
public ModelAndView insert(){
ModelAndView mv=new ModelAndView();
mv.setViewName("addUser");
return mv;
}
@RequestMapping("/save.do")
public ModelAndView save(UserInfo userinfo){
userService.insert(userinfo);
ModelAndView mv=new ModelAndView();
mv=findAll();
return mv;
}
@RequestMapping("/delete.do")
public ModelAndView delete(UserInfo userinfo){
userService.delete(userinfo);
ModelAndView mv=new ModelAndView();
mv=findAll();
return mv;
}
@RequestMapping("/toUpdate.do")
public ModelAndView toUpdate(int id){
ModelAndView mv=new ModelAndView();
mv=findAll();
UserInfo userinfo=userService.findid(id);
mv.addObject("userInfo",userinfo);
mv.setViewName("updateUser");
return mv;
}
@RequestMapping("/update.do")
public ModelAndView update(UserInfo userinfo)
{
ModelAndView mv=new ModelAndView();
userService.update(userinfo);
mv=findAll();
return mv;
}
}
insert into userinfo(id,username,password) values(#{id},#{username},#{password})
delete from userinfo where id =#{id}
update userinfo set username=#{username},password=#{password} where id=#{id}
在db.properties文件中配置mysql数据库(这里的数据库名、表名,用户名,密码一定要记得修改!)
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/idea?useSSL=true&characterEncoding=utf-8
jdbc.username=root
jdbc.password=123456
log4j.rootLogger=ERROR, stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n
contextConfigLocation
classpath*:applicationContext.xml
org.springframework.web.context.ContextLoaderListener
org.springframework.web.context.request.RequestContextListener
characterEncodingFilter
org.springframework.web.filter.CharacterEncodingFilter
encoding
UTF-8
characterEncodingFilter
/*
dispatcherServlet
org.springframework.web.servlet.DispatcherServlet
contextConfigLocation
classpath:spring-mvc.xml
1
dispatcherServlet
*.do
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" isELIgnored="false"%>
Hello World!
查询所有用户
addUser.jsp:所有论文显示界面
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" isELIgnored="false"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
新增用户
基于SSM框架的管理系统:简单实现增、删、改、查。
新增用户
allUser,jsp:论文添加页面
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" isELIgnored="false"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
user列表
-updateUser.jsp:论文更改界面
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" isELIgnored="false"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
修改论文
基于SSM框架的管理系统:简单实现增、删、改、查。
修改用户
查询所有用户
新增用户
删除用户
更新用户
至此,利用IDEA+Maven+SSM框架实现的简单的增、删、改、查功能已经构建完毕!!!