当前位置:   article > 正文

SpringBoot整合SpringMVC+MyBatis_springbootmvc +mybatis

springbootmvc +mybatis

需求分析:通过使用 SpringBoot+SpringMVC+MyBatis 整合实现一 个对数据库中的 users 表的 CRUD 的操作

1.创建项目

整个项目目录如下

2.修改pom文件

 在pom文件中添加以下代码,然后clean project, 就可以看到项目中的Maven Dependencies目录

    <dependencies>
        <!-- springBoot 的启动器 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency> <!-- web 启动器 -->
    </dependencies>

pom文件中的需要导入:

spring-boot的启动器
web启动器
Mybatis启动器
mysql是数据库驱动
druid数据库连接池

<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>1.5.10.RELEASE</version>
    </parent>
    <groupId>com.myspringboot</groupId>
    <artifactId>MySpringBoot02</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <properties>
        <java.version>1.8</java.version>
        <thymeleaf.version>3.0.2.RELEASE</thymeleaf.version>
    </properties>

    <dependencies>
        <!-- springBoot 的启动器 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency> 
        <!-- web 启动器 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency> 
        <!-- Mybatis 启动器 -->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.1.1</version>
        </dependency> 
        <!-- mysql 数据库驱动 -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency> 
        <!-- druid 数据库连接池 -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.0.9</version>
        </dependency>
    </dependencies>
</project>

3.添加 application.properties

全局配置文件,改文件必须放在路径src/main/resources下
spring.datasource.driverClassName=com.mysql.jdbc.Driver spring.datasource.url=jdbc:mysql://localhost:3306/ssm 
spring.datasource.username=root 
spring.datasource.password=123456789
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource 
mybatis.type-aliases-package=com.bjsxt.pojo 

spring.datasource.type 的class如下图所示:

注意:

在application.properties文件中“=”后面的字符串最后不能有空格,否则会报错

4 数据库表设计 


CREATE TABLE `users` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) DEFAULT NULL, `age` int(11) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
 

 

5.新建实体类Users

 package com.myspringboot.pojo;

public class Users {
    private Integer id;
    private String name;
    private Integer age;
    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 Integer getAge() {
        return age;
    }
    public void setAge(Integer age) {
        this.age = age;
    }
}
 

6.创建mapper接口以及映射配置文件

package com.myspringboot.mapper;

import java.util.List;
import com.myspringboot.pojo.Users;

public interface UsersMapper {
    void insertUser(Users users);
    List<Users> selectUsersAll(); 
    //方法名必须和xml文件中的id相同,如果不相同会有以下的异常
    //org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.myspringboot.mapper.UsersMapper.selectUsersAll
}

<?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.myspringboot.mapper.UsersMapper">

    <insert id="insertUser" parameterType="users">
        insert into users(name,age) values(#{name},#{age})
    </insert>
    
    <select id="selectUsersAll" resultType="users">
        select id,name,age from users
    </select>
    
</mapper>

7.创业业务类

package com.myspringboot.service;

import java.util.List;

import com.myspringboot.pojo.Users;

public interface UsersServices {
    void addUser(Users users);
    List<Users> findUserAll();
}
 

package com.myspringboot.service.imp;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.myspringboot.mapper.UsersMapper;
import com.myspringboot.pojo.Users;
import com.myspringboot.service.UsersServices;

@Service
@Transactional   //表示所有方法受事务控制
public class UsersServicesImpl implements UsersServices{

    @Autowired
    private UsersMapper usersMapper;
    
    @Override
    public void addUser(Users users) {
        this.usersMapper.insertUser(users);
    }

    @Override
    public List<Users> findUserAll() {
        
        //这里把service和mapper联系起来
        return this.usersMapper.selectUsersAll();
    }

}

8.创建Controller

package com.myspringboot.controller;

import java.util.List;

import javax.annotation.Resource;

import org.springframework.stereotype.Controller;
import org.springframework.stereotype.Service;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;

import com.myspringboot.pojo.Users;
import com.myspringboot.service.UsersServices;

@Controller
@RequestMapping("/users")
public class UserController {
    
    @Resource
    private UsersServices usersServices;
    
    /**
     * @param page
     * @return
     */
    @RequestMapping("/{page}")  //页面跳转
    public String showPage(@PathVariable String page) {
        System.out.println("page: "+page);
        return page;
    }
    
    @RequestMapping("/addUser")  //添加用户
    public String showPage(Users users) {
        this.usersServices.addUser(users);
        return "ok";
    }
    
    @RequestMapping("/find")  //查询用户
    public String findUsers(Model model) {
        List<Users> list= this.usersServices.findUserAll();
        model.addAttribute("list",list);
        return "showUsers";
    }
    
}
 

9.编写页面

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8"/>
<title>Insert title here</title>
</head>
<body>
    <form th:action="@{/users/addUser}" method = "post">
    用户名称:<input type= "text" name ="name"/><br/>
    用户年龄:<input type= "text" name ="age"/><br/>
    <input type="submit" value ="确定"/>
    </form>
</body>
</html>

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8"/>
<title>操作提示页面</title>
</head>
<body>
操作成功。。。。。。
</body>
</html>

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8"/>
<title>Insert title here</title>
</head>
<body>

    <table border="1" style="width: 300px">
        <tr>
        <th>id</th>
        <th>name</th>
        <th>age</th>
        </tr>
        <tr th:each="user:${list}">
        <td th:text="${user.id}"></td>
        <td th:text="${user.name}"></td>
        <td th:text="${user.age}"></td>
        </tr>
    </table>

</body>
</html>

10.编写启动类

package com.myspringboot;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
@MapperScan("com.myspringboot.mapper")  //@MapperScan 用户扫描MyBatis的Mapper接口
public class App {
    
    public static void main(String[] args) {
        SpringApplication.run(App.class, args);
    }
    

    /**
     *      启动应用app
     * 1.controller定义page并调用service的方法
     * 2.service实例化mapper对象,并调用mapper的方法
     * 3.mapper调用mapper.xml中的sql语句
     * 
     */

}

11.启动

App.class右键 Run as>Java Application启动

在网页输入地址:http://localhost:8080/users/find

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/305903?site
推荐阅读
相关标签
  

闽ICP备14008679号