SpringBoot整合Mybatis
项目流程为
产品分析,UI设计,开发,测试,运维
这里写一个简单的SpringBoot整合Mybatis的demo
首先导入依赖
pom.xml文件
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- druid数据库连接池-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.10</version>
</dependency>
<!-- 使用page页面-->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.10</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.10</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
</dependencies>
编写application.properties文件
spring.datasource.url=jdbc:mysql://localhost:3306/test?serverTimezone = UTC spring.datasource.username=root spring.datasource.password=root spring.datasource.type=com.alibaba.druid.pool.DruidDataSource logging.level.com.sxbf.demo.mapper=debug mybatis.mapper-locations=classpath:mapper/UserMapper.xml mybatis.type-aliases-package=com.along.test_user.entity
编写数据库

demo目录

定义实体
user.java
package com.along.test_user.entity; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; @Entity public class user { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private int id; private String name; 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 int getAge() { return age; } public void setAge(int age) { this.age = age; } @Override public String toString() { return "user{" + "id=" + id + ", name='" + name + '\'' + ", age=" + age + '}'; } }
Msg.java
package com.along.test_user.entity; public class Msg { private int code; private Object data; public int getCode() { return code; } public void setCode(int code) { this.code = code; } public Object getData() { return data; } public void setData(Object data) { this.data = data; } public static Msg success(Object data){ Msg msg=new Msg(); msg.setCode(100); msg.setData(data); return msg; } }
编写mapper
UserMapper.java
package com.along.test_user.mapper; import org.apache.ibatis.annotations.Mapper; import java.util.List; import com.along.test_user.entity.user; @Mapper public interface UserMapper { List<user> findAllUser(); int insertUser(user user); int updateUser(user user); int deleteUser(int id); List<user> findById(int id); }
在resources目录下新建一个mapper文件夹
编写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.along.test_user.mapper.UserMapper">
<select id="findAllUser" resultType="com.along.test_user.entity.user">
select * from t_user
</select>
<select id="findById" resultType="com.along.test_user.entity.user">
select * from t_user where id=#{id}
</select>
<insert id="insertUser" parameterType="com.along.test_user.entity.user">
insert into t_user(name,age) values (#{name},#{age})
</insert>
<update id="updateUser" parameterType="com.along.test_user.entity.user">
update t_user set name=#{name},age=#{age} where id=#{id}
</update>
<delete id="deleteUser" parameterType="com.along.test_user.entity.user">
delete from t_user where id=#{id}
</delete>
</mapper>
编写service
UserService.java
package com.along.test_user.service; import com.along.test_user.entity.user; import java.util.List; public interface UserService { List<user> findAllUser(); int insertUser(user user); int updateUser(user user); int deleteUser(int id); List<user> findById(int id); }
UserServiceImpl.java
package com.along.test_user.service.Impl; import com.along.test_user.entity.user; import com.along.test_user.mapper.UserMapper; import com.along.test_user.service.UserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; @Service public class UserServiceImpl implements UserService { @Autowired UserMapper userMapper; @Override public List<user> findAllUser() { return userMapper.findAllUser(); } @Override public int insertUser(user user) { return userMapper.insertUser(user); } @Override public int updateUser(user user) { return userMapper.updateUser(user); } @Override public int deleteUser(int id) { return userMapper.deleteUser(id); } @Override public List<user> findById(int id) { return userMapper.findById(id); } }
编写controller
UserController.java
package com.along.test_user.controller; import com.along.test_user.entity.Msg; import com.along.test_user.entity.user; import com.along.test_user.service.UserService; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; @RestController public class UserController { @Resource UserService userService; @GetMapping("/query") public Msg findAll(){ return Msg.success(userService.findAllUser()); } @GetMapping("insert") public String insert(user user){ int result=userService.insertUser(user); if(result>=1){ return "添加成功"; }else{ return "添加失败"; } } @GetMapping("update") public String update(user user){ int result=userService.updateUser(user); if(result>=1){ return "修改成功"; }else{ return "修改失败"; } } @GetMapping("delete") public String delete(int id){ int result=userService.deleteUser(id); if(result>=1){ return "删除成功"; }else{ return "删除失败"; } } @GetMapping("/select") public Msg findBookByName(int id){ return Msg.success(userService.findById(id)); } }
这里前端就不进行过多说明了
在resources的static目录下编写
userShow.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js"></script>
<script type="text/javascript">
$(function(){
show();
});
function show(){
$.ajax({
url:'http://localhost:8080/query',
success:function(result){
//result = code data
var rel=result.data;
if(result.code == 200)
{
//serach failed
return;
}
var htmlStr="<table width='80%' algin='center' border='1'>"+
"<tr><th>ID</th><th>名字</th><th>年龄</th><th>信息管理</th>></tr>";
for(var i=0;i<rel.length;i++){
var user=rel[i];
htmlStr+="<tr><td>"+user.id+"</td><td>"+user.name+"</td><td>"+user.age+"</td>"+
"<td><a href='update.html?id="+user.id+"''>编辑</a> <a href='http://localhost:8080/delete?id="+user.id+"'>删除</a></td></tr>";
}
htmlStr+="</table>";
$("#show").html(htmlStr);
}
});
}
</script>
</head>
<body>
<h1 style="text-align: center">学生信息</h1>
<hr>
<a href="insert.html">学生信息添加</a>
<div id="show">
</div>
<a href="#">上一页</a> <a href="#">下一页</a>
</body>
</html>
insert.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="insert">
<input type="text" name="name">
<input type="text" name="age">
<input type="submit" value="添加">
</form>
</body>
</html>
update.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js"></script>
<script type="text/javascript">
$(function(){
var id =window.location.href.split("=")[1];
show(id);
});
function show(id){
$.ajax({
url:'http://localhost:8080/select?id='+id,
success:function(result){
//result = code data
var rel=result.data[0];
if(result.code == 200)
{
//serach failed
return;
}
var htmlStr="<form action='/update'>"
htmlStr+="<input type='test' name='id' value="+rel.id+">"+
"<input type='test' name='name' value="+rel.name+">"+
"<input type='test' name='age' value="+rel.age+">"+
"<input type='submit' value='确定'>";
htmlStr+="</form>";
$("#show").html(htmlStr);
}
});
}
</script>
</head>
<body>
<div id="show">
</div>
</body>
</html>
delete.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js"></script>
<script type="text/javascript">
$(function(){
var id =window.location.href.split("=")[1];
show(id);
});
function show(id){
$.ajax({
url:'http://localhost:8080/select?id='+id,
success:function(result){
//result = code data
var rel=result.data[0];
if(result.code == 200)
{
//serach failed
return;
}
var htmlStr="<form action='/delete'>"
htmlStr+="<input type='test' name='id' value="+rel.id+">"+
"<input type='test' name='name' value="+rel.name+">"+
"<input type='test' name='price' value="+rel.age+">"+
"<input type='submit' value='确定'>";
htmlStr+="</form>";
$("#show").html(htmlStr);
}
});
}
</script>
</head>
<body>
<div id="show">
</div>
</body>
</html>
浙公网安备 33010602011771号