springboot學習(個人學習筆記)-4- 搭建ssm框架,完成crud操作
阿新 • • 發佈:2019-01-23
宣告:寫此部落格是為了記錄個人技術學習的全過程,防止後期時間久了會有遺忘。希望同時也能幫到有需要的朋友
一、建立springboot專案
右鍵New-Spring Starter-Project
選擇war包
搜尋並新增依賴
建立完成
二、修改pom.xml,新增對jsp支援的依賴
程式碼:
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.wangzf</groupId> <artifactId>testspbt06_ssm</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>war</packaging> <name>testspbt06_ssm</name> <description></description> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.13.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.3.2</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <scope>runtime</scope> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <scope>provided</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <!-- 對jsp頁面的支援 --> <dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-jasper</artifactId> <scope>provided</scope> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
三、新增並編輯配置檔案
在src/main/resource下建立資料夾mapperConfig,並在該目錄下建立檔案sqlMapConfig.xml
sqlMapConfig.xml中的內容
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
</configuration>
在src/main/java下建立持久層的包xxx.mapper,並在包下建立UserMapper.xml
UserMapper.xml檔案中的內容
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > <mapper namespace="com.wangzf.ssm.mapper.UserMapper"> <select id="getList" resultType="user"> select * from t_user </select> <insert id="add" parameterType="user"> insert into t_user(name,pwd) values(#{name},#{pwd}) </insert> <delete id="delete" parameterType="java.lang.String"> delete from t_user where id in (${value}); </delete> </mapper>
四、建立J2EE架構需要的介面和類
User.java
package com.wangzf.ssm.domain;
public class User {
private Integer id;
private String name;
private String pwd;
public User() {
super();
// TODO Auto-generated constructor stub
}
public User(Integer id, String name, String pwd) {
super();
this.id = id;
this.name = name;
this.pwd = pwd;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
}
UserMapper.java
package com.wangzf.ssm.mapper;
import java.util.List;
import org.apache.ibatis.annotations.Mapper;
import com.wangzf.ssm.domain.User;
@Mapper
public interface UserMapper {
List<User> getList();
int add(User user);
void delete(String ids);
void update(User user);
}
UserService.java
package com.wangzf.ssm.service;
import java.util.List;
import com.wangzf.ssm.domain.User;
public interface UserService {
List<User> getList();
int add(User user);
void delete(String ids);
void update(User user);
}
UserServiceImpl.java
package com.wangzf.ssm.service;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.wangzf.ssm.domain.User;
import com.wangzf.ssm.mapper.UserMapper;
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
@Override
public List<User> getList() {
return userMapper.getList();
}
@Override
public int add(User user) {
return userMapper.add(user);
}
@Override
public void delete(String ids) {
userMapper.delete(ids);
}
@Override
public void update(User user) {
userMapper.update(user);
}
}
UserController.java
package com.wangzf.ssm.controller;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import com.wangzf.ssm.domain.User;
import com.wangzf.ssm.service.UserService;
@Controller
public class UserController {
// 注入service物件
@Autowired
private UserService userService;
@RequestMapping("/getList")
public String findAll(HttpServletRequest request) {
List<User> list = userService.getList();
request.setAttribute("list", list);
return "list.jsp";
}
@RequestMapping("/toAddUser")
public String toAddUser() {
return "add.jsp";
}
@RequestMapping("/add")
public String addUser(User user) {
System.out.println(user);
userService.add(user);
return "redirect:getList";
}
@RequestMapping("/delete")
public String deleteUser(String ids) {
System.out.println(ids);
userService.delete(ids);
return "redirect:getList";
}
}
五、在src下的main下的webapp下,建立需要的jsp頁面
add.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<link rel="stylesheet" href="${pageContext.request.contextPath }/css/index_work.css">
</head>
<body>
<h1>新增使用者頁面-JSP</h1>
<form action="add" method="post">
姓名:<input name="name"><p>
密碼:<input name="pwd"><p>
<input type="submit" value="增加">
</form>
</body>
</html>
list.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<link rel="stylesheet" href="${pageContext.request.contextPath }/css/index_work.css">
</head>
<body>
<h1>列表顯示頁面-JSP</h1>
<table>
<tr>
<td>編號</td>
<td>姓名</td>
<td>密碼</td>
<td><a href="toAddUser">新增</a></td>
</tr>
<c:forEach items="${list}" var="user">
<tr>
<td>${user.id}</td>
<td>${user.name}</td>
<td>${user.pwd}</td>
<td><a href="delete?ids=${user.id}">刪除</a></td>
</tr>
</c:forEach>
</table>
</body>
</html>
六、編輯application.properties
#springboot整合mybatis框架
#載入Mybatis配置檔案
mybatis.mapper-locations=classpath:com/wangzf/ssm/mapper/*Mapper.xml
mybatis.config-location=classpath:mapperConfig/sqlMapConfig.xml
#定義別名
mybatis.type-aliases-package=com.wangzf.ssm.domain
#資料來源
spring.datasource.url=jdbc:mysql://localhost:3306/test
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.username=root
spring.datasource.password=root
#載入css檔案
#Locations of static resources. Defaults to classpath:[/META-INF/resources/, /resources/,
#/static/, /public/] plus context:/ (the root of the servlet context).
#預設載入static目錄下的靜態檔案
#spring.resources.static-locations=/css/
#spring.mvc.static-path-pattern=/**
七、匯入靜態檔案到static目錄下
八、啟動服務,訪問測試