1. 程式人生 > >springboot學習(個人學習筆記)-4- 搭建ssm框架,完成crud操作

springboot學習(個人學習筆記)-4- 搭建ssm框架,完成crud操作

宣告:寫此部落格是為了記錄個人技術學習的全過程,防止後期時間久了會有遺忘。希望同時也能幫到有需要的朋友

一、建立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目錄下


八、啟動服務,訪問測試