在JAVA开发时,Spring框架是必须的,而Struts2框架是MVC模式的一个经典应用框架。Mybatis框架作为持久层的框架,虽然需要自己编写SQL语句,但是其对高并发高响应的支持,以及对动态SQL和动态绑定的支持使其脱颖而出。所以SSM框架在应用开发中使用较多,替代了以前的SSH框架
IntelliJ IDEA Ultimate 2018.2.2
Apache-tomcat-7.0
JDK 1.8.0_121
MySQL 5.7
Maven 3.6.0
新建项目
点击File -> New -> Project -> Maven -> 勾选 Create from archetype -> 选择 maven-archetype-webapp (注意:此处不要错选成上面的cocoom-22-archetype-webapp)
下一步输入在弹出的new project 选项卡中填写GroupId和Artifactid,这两项分别代表项目组织唯一的标识符和项目的唯一的标识符,如果只是个人开发可以随便填写。之后一直next直到finish。
新建完之后需要在跟文件夹里新建target文件夹,并把文件夹类型设置为excluded类型,用来存放程序的发布代码。(运行时会自动生成内容)
添加所需文件
之后在main文件夹中新建java文件夹,将其设置为Source Root类型,方法同上,用来存放java源代码。
之后在java文件夹下分别新建新建“com”包,再在com包下新建四个包,分别命名为:bean,dao,service,controller
有些生成的项目没有resources文件夹(有些项目会自动生成resources文件夹,就不用再新建),需要自己新建文件夹,然后将文件夹类型改为Reosurces Root类型
之后在resource包下新建Directory:“mapper”(用于存放xxxMapper.xml文件)和“spring”(用于存放spring-xxx.xml配置文件),新建文件:“jdbc.properties”(mysql数据库配置文件),”log4j.properties”(日志输出配置文件),”mybatis-config.xml”(mybatis框架配置文件)。
之后在web-inf目录下新建jsp包,用来存放后续的一些Jsp页面,有的web-inf文件夹下没有index.jsp文件就需要自己新建。
自定UserInfo类
在这之前要对项目的pom.xml文件进行配置,在此文件中配置项目所需要的jar包。
此次项目使用的pom.xml文件为,
4.0.0
com.zhongruan
ssm1
1.0-SNAPSHOT
war
ssm1 Maven Webapp
http://www.example.com
UTF-8
1.8
1.8
5.0.2.RELEASE
3.2.6
1.7.7
1.2.17
0.9.5.2
1.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.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
ssm1
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
本项目所用的数据库为,我是用图形界面建的表,表名为userinfo,表里有三列,分别是int id,varchar username,varchar password。用来表示用户的id,用户名和密码。
JAVA代码编写:
public class UserInfo {
private int id;
private String username; //usr
private String password; //pwd
}
然后可以右键->generate->Getter and Settrer 来进行设置get/set函数和toString函数,也可快捷键Alt+Insert快捷键进行设置。结果如下:
package com.ssm1.service;
import com.ssm1.bean.UserInfo;
import java.util.List;
public interface IUserService {
public List findAll();
public int addUser(UserInfo userInfo);
public int updateUser(UserInfo userInfo);
public UserInfo queryById(int id);
public int deleteUserById(int id);
}
package com.ssm1.service.impl;
import com.ssm1.bean.UserInfo;
import com.ssm1.dao.IUserDao;
import com.ssm1.service.IUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class UsrServiceImpl implements IUserService {
@Autowired
IUserDao userDao;
@Override
public List findAll() {
return userDao.findAll();
}
@Override
public int addUser(UserInfo userInfo) {
return userDao.addUser(userInfo);
}
@Override
public int updateUser(UserInfo userInfo) {
return userDao.updateUser(userInfo);
}
@Override
public UserInfo queryById(int id) {
return userDao.queryById(id);
}
@Override
public int deleteUserById(int id) {
return userDao.deleteUserById(id);
}
}
package com.ssm1.dao;
import com.ssm1.bean.UserInfo;
import java.util.List;
public interface IUserDao {
public List findAll();
public int addUser(UserInfo userInfo);
public int updateUser(UserInfo userInfo);
public UserInfo queryById(int id);
public int deleteUserById(int id);
}
在Controller包里新建UserComtroller类,用来接收和jsp界面传来的需求。
package com.ssm1.controller;
import com.ssm1.bean.UserInfo;
import com.ssm1.service.IUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import javax.enterprise.inject.Model;
import java.util.List;
@Controller
@RequestMapping("user")
public class Usercontroller {
@Autowired
private IUserService userService;
@RequestMapping("/findAll.do")
public ModelAndView findAll(){
List userInfos =userService.findAll();
ModelAndView mv = new ModelAndView();
mv.addObject("ui",userInfos);
mv.setViewName("allUser");
return mv;
}
@RequestMapping("/toAddUser.do")
public ModelAndView toAddUser(){
ModelAndView mv = new ModelAndView();
// mv.addObject("usid",id);
mv.setViewName("addUser");//设置跳转的页面
return mv;
}
@RequestMapping("/toUpdate.do")
public ModelAndView toUpdate(int id){
ModelAndView mv = new ModelAndView();
mv.addObject("updateid",id);
mv.setViewName("updateUser");//设置跳转的页面
return mv;
}
@RequestMapping("/save.do")
public String AddUser(UserInfo userInfo){
userService.addUser(userInfo);
return "redirect:/user/findAll.do";
}
@RequestMapping("/update.do")
public String UpdateUser(UserInfo userInfo){
// UserInfo User1=new UserInfo();
// User1= userService.queryById(userInfo.getId());
userService.updateUser(userInfo);
//model.addAttribute("paper", paper);
return "redirect:/user/findAll.do";
}
@RequestMapping("/delete.do")
public String DeleteUserById(int id){
userService.deleteUserById(id);
return "redirect:/user/findAll.do";
}
}
利用IDEA实现SSM框架对于数据库简单的增删查改(二)地址