本文假设您已经新建好了springboot工程
本列子用SQL SERVER2008 IDEA2018
项目结构:
1、在pom.xml中加入如下配置:
<?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>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.3.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example</groupId>
<artifactId>demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>demo</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.0.0</version>
</dependency>
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>sqljdbc4</artifactId>
<scope>4.2</scope>
<version>4.2</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- Add Log4j2 Dependency -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-log4j2</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
</resources>
</build>
</project>
2 application.properties配至
#thymeleaf start
pring.thymeleaf.prefix=classpath:/templates/
spring.thymeleaf.suffix=.html
#数据库连接 SQL SERVER
spring.datasource.url=jdbc:sqlserver://localhost:1433;DatabaseName=Text
spring.datasource.driverClassName=com.microsoft.sqlserver.jdbc.SQLServerDriver
spring.datasource.username=sa
spring.datasource.password=123
spring.datasource.type= org.springframework.jdbc.datasource.DriverManagerDataSource
#mapper-locations: com.example.demoMyBatis:Mapper/*.xml
mybatis.type-aliases-package=com.example.demo.entity #实体类的放路径
3 新建实体模型user
package com.example.demo.entity;
public class User {
public int ID;
public int getID() {
return ID;
}
public void setID(int ID) {
this.ID = ID;
}
public String UserName;
public String Pwd;
public String Age;
public String getUserName() {
return UserName;
}
public void setUserName(String userName) {
UserName = userName;
}
public String getPwd() {
return Pwd;
}
public void setPwd(String pwd) {
Pwd = pwd;
}
public String getAge() {
return Age;
}
public void setAge(String age) {
Age = age;
}
}
4在您的代码中新建mapper接口和mapper.xml映射配置
4.1mapper接口
package com.example.demo.Mapper;
import com.example.demo.entity.User;
import java.util.List;
public interface UserMapper {
public void AddUser(User user);
public List<User> UserAll();
public User UserFind(int ID);
public void UpdateUser(User user);
public void DeleteUser(int ID);
}
4.2mapper.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.example.demo.Mapper.UserMapper"> <!--mapper接口和mapper.xml映射配置 放在路径包 namespace="com.example.demo.Mapper.UserMapper"-->
<!-- 添加用户 -->
<insert id="AddUser" parameterType="user">
insert into Userinfo(UserName, Pwd, Age) values (#{UserName}, #{Pwd}, #{Age})
</insert>
<!-- 查询用户信息 -->
<select id="UserAll" parameterType="user" resultType="com.example.demo.entity.User">
select ID,UserName,Pwd,Age from Userinfo
</select>
<!-- -用户查询 -->
<select id="UserFind" parameterType="user" resultType="com.example.demo.entity.User">
select ID,UserName,Pwd,Age from Userinfo where ID=#{ID}
</select>
<!-- 修改用户信息 -->
<update id="UpdateUser" parameterType="user" >
update Userinfo set UserName=#{UserName}, Pwd=#{Pwd}, Age=#{Age} where ID=#{ID}
</update>
<!-- 删除用户信息 -->
<delete id="DeleteUser" parameterType="user">
delete from Userinfo where ID=#{ID}
</delete>
</mapper>
注意:mapper接口和mapper.xml映射配置 可以用 UserDAO 这种写法
package com.example.demo.RestfulDAO;
import com.example.demo.entity.User;
import org.apache.ibatis.annotations.*;
@Mapper
public interface UserDAO {
/**
* 用户数据新增
*/
@Insert("insert into Userinfo(UserName, Pwd, Age) values (#{UserName},#{Pwd},#{Age})")
void addUser(User user);
/**
* 用户数据修改
*/
@Update("update Userinfo set UserName=#{UserName},Pwd=#{Pwd} where id=#{id}")
void updateUser(User user);
/**
* 用户数据删除
*/
@Delete("delete from Userinfo where ID=#{ID}")
void deleteUser(int ID);
/**
* 根据用户ID查询用户信息
*
*/
@Select("SELECT UserName, Pwd, Age FROM Userinfo where ID=#{ID}")
User findById(@Param("ID") int ID);
/**
* 根据用户age查询用户信息
*/
@Select("SELECT UserName, Pwd, Age FROM Userinfo")
User findAll();
}
5 新建 Service
5.1 Service 接口
package com.example.demo.Service;
import com.example.demo.entity.User;
import java.util.List;
public interface UserService {
public void AddUser(User user);
public List<User> UserAll();
public User UserFind(Integer ID);
public void UpdateUser(User user);
public void DeleteUser(int ID);
}
5.2 Service 接口实现
package com.example.demo.Service;
import com.example.demo.entity.User;
import com.example.demo.Mapper.UserMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
@Service
@Transactional
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
@Override
public void AddUser(User user) {
this.userMapper.AddUser(user);
}
@Override
public List<User> UserAll()
{
return this.userMapper.UserAll();
}
@Override
public User UserFind(Integer ID)
{
return this.userMapper.UserFind(ID);
}
@Override
public void UpdateUser(User user) {
this.userMapper.UpdateUser(user);
}
@Override
public void DeleteUser(int ID) {
this.userMapper.DeleteUser(ID);
}
}
6 新建 Controller
package com.example.demo.Controller;
import com.example.demo.Service.UserService;
import com.example.demo.entity.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import java.util.List;
@Controller
public class UserController {
private static final Logger logger;
static {
logger = LogManager.getLogger(User.class);
}
@Autowired(required = true)
private UserService userService;
//添加用户
@RequestMapping("/AddUser")
// @ResponseBody
//@RequestMapping(value = "/AddUser", method = RequestMethod.POST)
public String AddUser(User user) {
this.userService.AddUser(user);
return "OK";
}
//查询所有用户
@RequestMapping("/UserAll")
//@RequestMapping(value = "/UserAll", method = RequestMethod.GET)
public String UserAll(Model mode)
{
List<User> list=this.userService.UserAll();
mode.addAttribute("list",list);
return "UserAll";
}
//根据ID查询用户信息
@RequestMapping("/UpdateUserInfo")
public String UserFind(Integer ID,Model model)
{
User user=this.userService.UserFind(ID);
logger.error("user"+user.UserName);
model.addAttribute("user",user);
return "UpdateUser";
}
//更新用户信息
@RequestMapping("/UpdateUser")
//@RequestMapping(value = "/UserAll", method = RequestMethod.GET)
public String UpdateUser(User user)
{
this.userService.UpdateUser(user);
return "OK";
}
//根据ID删除用户信息
@RequestMapping("/DeleteUser")
public String DeleteUser(Integer ID)
{
this.userService.DeleteUser(ID);
return "redirect:/UserAll";
}
@RequestMapping("/{page}")
public String ShowPage(@PathVariable String page) {
return page;
}
}
7 页面
7.1 查询 和删除用户页
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<table border="1">
<tr><th>用户</th><th>初始密码</th><th>性别</th><th>操作</th></tr>
<tr th:each="user:${list}">
<td th:text="${user.UserName}"></td>
<td th:text="${user.Pwd}"></td>
<td th:text="${user.Age}"></td>
<td> <a th:href="@{/UpdateUserInfo(ID=${user.ID})}">更新用户</a>
<a th:href="@{/DeleteUser(ID=${user.ID})}"> 删除用户</a>
</td>
</tr>
</table>
</body>
</html>
7.2 添加用户页
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>添加用户</title>
</head>
<body>
<form th:action="@{/AddUser}" method="post">
用户名<input type="input" name="UserName"><br/>
用户密码<input type="input" name="Pwd"><br/>
用户性别<input type="input" name="Age"><br/>
<input type="submit" value="确定" />
</form>
</body>
</html>
7.3更新用户
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>用户更新</title>
</head>
<body>
<form method="post" th:action="@{/UpdateUser}" th:object="${user}">
<input type="hidden" name="ID" th:value="*{ID}" />
用户名<input type="input" name="UserName" th:value="*{UserName}" /><br/>
用户密码<input type="input" name="Pwd" th:value="*{Pwd}" /><br/>
用户性别<input type="input" name="Age" th:value="*{Age}" /><br/>
<input type="submit" value="更新" />
</form>
</body>
</html>
7.4 成功页
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>添加成功</title>
</head>
<body>
添加成功
</body>
</html>