选用SSM框架的原因
在目前的企业级Java应用中,Spring框架是必须的。Struts2框架与Spring的整合问题日益凸显,而Spring MVC作为新一代的MVC框架,因其可以与Spring框架无缝整合的特性收到了越来越多的欢迎。Hibernate框架在面对需要存储过程或者复杂SQL时显得力不从心,不能提供高效的数据库控制。而Mybatis框架作为持久层的框架,虽然需要自己编写SQL语句,但是其对高并发高响应的支持,以及对动态SQL和动态绑定的支持使其脱颖而出。
因此SSM框架(Spring + Spring MVC +Mybatis)逐渐取代了之前广泛使用的SSH框架(Spring + Struts2 + Hibernate),成为了目前使用最多的框架。
上面新建的四个包:pojo,service,dao,controller,其所存放的分别是:
domain: 存放自定义的java类。如:paper类,user类,book类等,每个类的属性设为private,并提供public属性的getter/setter方法让外界访问
service:定义接口,包含系统所提供的功能。(之后还会在service包下再新建impl包)。
dao:定义接口,包含与数据库进行交互的功能。
controller:控制器,负责接收页面请求,转发和处理。
2.
2.1在这之前要对项目的pom.xml文件进行配置,在此文件中配置项目所需要的jar包。
2.2配置web.xml文件
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" >
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">
org.springframework.web.context.ContextLoaderListener
2.3配置applicationContext.xml文件
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.2.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.2.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-4.2.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-4.2.xsd">
2.4配置springmvc-servlet.xml文件
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.2.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.2.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-4.2.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-4.2.xsd">
配置UserMapper.xml
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.2.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.2.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-4.2.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-4.2.xsd">
3.编写java代码
3.1创建实体类
package com.qf.domain;/**
* Created by HP on 2019/5/23.
*/
import org.springframework.stereotype.Component;
/**
* @author HP liuchenglong
* @create 2019-05-23 19:35
**/
@Component
public class User {
private int id;
private String name;
private String sex;
private int age;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", name='" + name + '\'' +
", sex='" + sex + '\'' +
", age=" + age +
'}';
}
}
**3.2创建dao层接口,编写方法**
1
package com.qf.dao;
import com.qf.domain.User;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
* Created by HP on 2019/5/23.
*/
@Repository
public interface UserDao {
List
void insertUser(User user);
void deleteById(int id);
void updateuser(User user);
User selectByid(int id);
List
}
3.3创建service接口 及实现类
package com.qf.service;
import com.qf.domain.User;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* Created by HP on 2019/5/23.
*/
@Service
public interface UserService {
List
void insertUser(User user);
void deleteById(int id);
void updateuser(User user);
List
User selectByid(int id);
}
实现service
package com.qf.service.impl;/**
* Created by HP on 2019/5/23.
*/
import com.qf.dao.UserDao;
import com.qf.domain.User;
import com.qf.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* @author HP liuchenglong
* @create 2019-05-23 19:35
**/
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserDao userDao;
@Override
public List
return userDao.selectAll();
}
@Override
public void insertUser(User user) {
userDao.insertUser(user);
}
@Override
public void deleteById(int id) {
userDao.deleteById(id);
}
@Override
public void updateuser(User user) {
userDao.updateuser(user);
}
@Override
public List
return userDao.selectById(id);
}
@Override
public User selectByid(int id) {
return userDao.selectByid(id);
}
}
3.4 编写Controller层
package com.qf.controller;/**
* Created by HP on 2019/5/23.
*/
import com.qf.domain.User;
import com.qf.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;
import java.util.List;
/**
* @author HP liuchenglong
* @create 2019-05-23 19:34
**/
@Controller
@RequestMapping("/user")
public class UserController {
@Autowired
private UserService userService;
@RequestMapping("/select")
public ModelAndView selectAll() {
List
System.out.println(users);
ModelAndView md = new ModelAndView();
md.setViewName("user");
md.addObject("users", users);
return md;
}
/**
* 跳转到添加用户界面
* @param
* @return
*/
@RequestMapping("/toAddUser")
public String toAddUser(){
return "/adduser";
}
/**
* 添加用户并重定向
* @param user
* @param
* @return
*/
@RequestMapping("/adduser")
public String addUser(User user){
/* user.getName();
user.getSex();
user.getAge();*/
userService.insertUser(user);
return "redirect:/user/select";
}
@RequestMapping("/del/{id}")
public String deleteUser(@PathVariable("id") int id) {
userService.deleteById(id);
return "redirect:/user/select";
}
@RequestMapping("toUpdateUser")
public String toUpdateUser(Model model, int id) {
model.addAttribute("user",userService.selectByid(id));
return "exituser";
}
@RequestMapping("/exituser")
public String updateUser(Model model, User user) {
userService.updateuser(user);
User user1 = userService.selectByid(user.getId());
model.addAttribute("user", user1);
return "redirect:/user/select";
}
@RequestMapping( value = "/selectbyid")
public ModelAndView selectByid( int id){
List
System.out.println(users);
ModelAndView md=new ModelAndView();
md.setViewName("user");
md.addObject("users",users);
return md;
}
}
4 . jsp界面,页面简单就行
4.1修改index.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
地址:https://download.csdn.net/download/fenhuang1/11020182