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>&nbsp;<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>&nbsp;&nbsp;<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>

 

posted @ 2020-09-01 13:11  龙欺  阅读(269)  评论(0)    收藏  举报