• Spring Boot与MyBatis的集成


      SSM(Spring+Spring MVC+MyBatis)是当前主流的框架组合开发方式之一,普遍被应用于互联网项目中。如果要使用Spring Boot开发一个基于SSM框架的应用,那么我们要怎么做呢?下面以一个用户查询案例为例,来讲解如何在Spring Boot中使用MyBatis。

      SQL语句:
    # 创建一个名称为tb_user的表
     CREATE TABLE tb_user (  id int(32) PRIMARY KEY AUTO_INCREMENT,  username varchar(32),  address varchar(256) );
     # 插入3条数据
     INSERT INTO tb_user VALUES ('1', '小韩', '北京市海淀区');
     INSERT INTO tb_user VALUES ('2', '小石', '北京市昌平区');
     INSERT INTO tb_user VALUES ('3', '小陈', '北京市顺义区');
      添加pom.xml依赖:
    <!-- 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>
      文件3-1 application.properties
    #DB Configuration
    spring.datasource.driverClassName=com.mysql.jdbc.Driver
    spring.datasource.url=jdbc:mysql://localhost:3307/microservice
    spring.datasource.username=root
    spring.datasource.password=123456
    #logging
    logging.level.com.xc.springboot=debug
      文件3-2 User.java
    package com.xc.springboot.po;
    
    public class User {
    
        private Integer id;
        private String username;
        private String address;
        //get set...
    }
      文件3-3 UserMapper.java
    package com.xc.springboot.mapper;
    
    @Mapper
    @Repository
    public interface UserMapper {
    
        // 查询所有用户
        @Select("select * from tb_user")
        List<User> getAllUsers();
    
        // 删除用户
        @Delete("DELETE FROM tb_user WHERE id =#{id}")
        void delete(Integer id);
    
    }
      文件3-4 UserService.java
    package com.xc.springboot.service;
    
    public interface UserService {
    
        // 查询所有
        List<User> getAllUsers();
    
        // 删除数据
        void deleteUser(Integer id);
    }
      文件3-5 UserServiceImpl.java
    package com.xc.springboot.service.impl;
    
    @Transactional
    @Service
    public class UserServiceImpl implements UserService {
    
        //注入用户Mapper
        @Autowired
        private UserMapper userMapper;
    
        @Override
        public List<User> getAllUsers() {
            return userMapper.getAllUsers();
        }
    
        @Override
        public void deleteUser(Integer id) {
            System.out.println("id:" + id);
            userMapper.delete(id);
        }
    
    }
      文件3-6 UserController.java
    package com.xc.springboot.controller;
    
    @RestController
    @RequestMapping("/user")
    public class UserController {
    
        @Autowired
        private UserService userService;
    
        // 查询所有用户
        @RequestMapping("/userList")
        public List<User> getAllUsers() {
            return userService.getAllUsers();
        }
    
        // 删除用户
        @RequestMapping("/delete/{id}")
        public void delete(@PathVariable Integer id) {
            userService.deleteUser(id);
        }
    
    }
      文件3-7 user.html
    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="UTF-8">
        <title>用户信息</title>
        <link rel="stylesheet" type="text/css" href="ui/themes/default/easyui.css">
        <link rel="stylesheet" type="text/css" href="ui/themes/icon.css">
        <script type="text/javascript" src="ui/jquery.min.js"></script>
        <script type="text/javascript" src="ui/jquery.easyui.min.js"></script>
        <script type="text/javascript" src="ui/locale/easyui-lang-zh_CN.js"></script>
        <script type="text/javascript">
    
            $(function () {
                $('#grid').datagrid({
                    url: 'user/userList',
                    fit: true,
                    columns: [[
                        {field: 'id', title: '编号',  50},
                        {field: 'username', title: '姓名',  200},
                        {field: 'address', title: '地址',  200},
                        {field: 'del', title: '删除',  100}]]
                });
            });
    
        </script>
    </head>
    
    <body>
    <table id="grid"></table>
    </body>
    
    </html>






  • 相关阅读:
    JAXB注解 @XmlRootElement 及XML文件解析详解
    JAXB 实现java对象与xml之间互相转换
    MyBatis之ResultMap标签
    如何通过<include/>标签重用Mybatis的代码段
    @Component, @Repository, @Service的区别
    @repository的含义,并且有时候却不用写,为什么?
    浪潮启动元脑生态计划,聚焦计算机视觉、量化交易等基础应用
    初生牛犊不怕虎 造车新势力的硬核移动互联科技盘点
    注意,有场景的公司正在拿起AI武器
    机器人运动大赛8月落地嘉峪关,编程和军事成亮点
  • 原文地址:https://www.cnblogs.com/ooo0/p/11166304.html
Copyright © 2020-2023  润新知