1.添加pom.xml需要的依赖

<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>
<groupId>top.ytheng</groupId>
<artifactId>springboot-demo</artifactId>
<version>0.0.1</version>
<packaging>jar</packaging> <parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.5.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent> <properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties> <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>
</dependency> <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency> <!-- 热部署 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
<scope>true</scope>
</dependency> <dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.2</version>
<scope>runtime</scope>
</dependency> <dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency> <dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.6</version>
</dependency>
</dependencies> <build>
<!-- 打包的名称 -->
<finalName>myspringboot</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
</project>

2.添加Entity

package top.ytheng.demo.entity;

import org.springframework.stereotype.Component;
import java.lang.String;
import java.util.Date; public class UserInfo {
private int id;
private String username;
private String password;
private Date createTime; public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public UserInfo() {
super();
}
public UserInfo(String username, String password) {
super();
this.username = username;
this.password = password;
}
}

3.添加UserMapper.java

package top.ytheng.demo.mapper;

import java.util.List;

import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Options;
import org.apache.ibatis.annotations.Result;
import org.apache.ibatis.annotations.Results;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update; import top.ytheng.demo.entity.UserInfo; public interface UserMapper { //#{}里面的名称要和UserInfo里面的一一对应
//推荐使用#{},不要使用${},会存在注入风险
@Insert("Insert INTO user_info(username,password) VALUES(#{username},#{password})")
//保存对象,获取数据库自增id
//keyProperty对应UserInfo对象中的id
//keyColumn对应数据库user_info表中的id
@Options(useGeneratedKeys=true, keyProperty="id", keyColumn="id")
int insert(UserInfo user); //查找全部
@Select("SELECT * FROM user_info")
@Results({
@Result(column="create_time", property="createTime"),
//@Result(column="update_time", property="updateTime"),
})
List<UserInfo> getAll(); //根据id找对象
@Select("SELECT * FROM user_info WHERE id = #{id}")
@Results({
@Result(column="create_time", property="createTime"),
})
UserInfo findById(int id); //更新对象
@Update("UPDATE user_info SET username= #{username} WHERE id = #{id}")
void update(UserInfo user); //删除对象
@Delete("DELETE FROM user_info WHERE id = #{userid}")
void delete(int userid);
}

4.添加UserService.java

package top.ytheng.demo.service;

import java.util.List;

import top.ytheng.demo.entity.UserInfo;

public interface UserService {

    public int add(UserInfo user);

    public List<UserInfo> getAll();

    public UserInfo findById(int id);

    public void update(UserInfo user);

    public void delete(int id);
}

5.添加UserServiceImpl.java

package top.ytheng.demo.service.impl;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import top.ytheng.demo.entity.UserInfo;
import top.ytheng.demo.mapper.UserMapper;
import top.ytheng.demo.service.UserService; @Service
public class UserServiceImpl implements UserService { @Autowired
private UserMapper userMapper; @Override
public int add(UserInfo user) {
// TODO Auto-generated method stub
userMapper.insert(user);
int id = user.getId();
return id;
} @Override
public List<UserInfo> getAll() {
// TODO Auto-generated method stub
List<UserInfo> users = userMapper.getAll();
return users;
} @Override
public UserInfo findById(int id) {
// TODO Auto-generated method stub
UserInfo user = userMapper.findById(id);
return user;
} @Override
public void update(UserInfo user) {
// TODO Auto-generated method stub
userMapper.update(user);
} @Override
public void delete(int id) {
// TODO Auto-generated method stub
userMapper.delete(id);
}
}

6.添加Controller

package top.ytheng.demo.controller;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController; import top.ytheng.demo.entity.UserInfo;
import top.ytheng.demo.service.UserService; @RestController
@RequestMapping("/api/v1/user")
public class UserController { @Autowired
private UserService userService; @GetMapping("/add")
public Object add() {
UserInfo user = new UserInfo();
user.setUsername("theng");
user.setPassword("123456");
int id = userService.add(user);
return id;
} @GetMapping("/getall")
public Object getAll() {
List<UserInfo> users = userService.getAll();
return users;
} @GetMapping("/findbyid")
public Object findById(@RequestParam(name="id")int id) {
UserInfo user = userService.findById(id);
return user;
} @GetMapping("/update")
public Object update() {
UserInfo user = userService.findById(2);
user.setUsername("朱竹清");
userService.update(user);
return "update success";
} @GetMapping("/delete")
public Object delete(@RequestParam(name="id")int id) {
userService.delete(id);
return "delete success";
}
}

7.添加配置文件application.properties

#端口号
server.port=8080 #数据库的一些配置
#mybatis.type-aliases-package=top.ytheng.demo
#会自动识别
#spring.datasource.driver-class-name=com.mysql.jdbc.Driver
#数据库连接
spring.datasource.url=jdbc:mysql://localhost:3306/shop?useUnicode=true&characterEncoding=utf-8&useSSL=false
spring.datasource.username=root
spring.datasource.password=123456
#使用阿里巴巴数据源,默认的数据源(com.zaxxer.hikari.KikariDataSource)
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
#开启控制台打印sql
mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl

8.添加启动类

package top.ytheng.demo;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.ServletComponentScan; @SpringBootApplication //等于下面3个
//@SpringBootConfiguration
//@EnableAutoConfiguration
//@ComponentScan
//拦截器用到
@ServletComponentScan
//MyBatis用到
@MapperScan("top.ytheng.demo.mapper")
public class DemoApplication { public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}

9.安装MySQL数据库,添加数据库shop,表user_info

10.右键项目Run As启动,访问url

http://localhost:8080/api/v1/user/getall
http://localhost:8080/api/v1/user/add
http://localhost:8080/api/v1/user/findbyid?id=1
http://localhost:8080/api/v1/user/update
http://localhost:8080/api/v1/user/delete?id=10

另附:

SpringBoot------整合MyBatis的更多相关文章

  1. SpringBoot整合Mybatis之项目结构、数据源

    已经有好些日子没有总结了,不是变懒了,而是我一直在奋力学习springboot的路上,现在也算是完成了第一阶段的学习,今天给各位总结总结. 之前在网上找过不少关于springboot的教程,都是一些比 ...

  2. SpringBoot整合Mybatis【非注解版】

    接上文:SpringBoot整合Mybatis[注解版] 一.项目创建 新建一个工程 ​ 选择Spring Initializr,配置JDK版本 ​ 输入项目名 ​ 选择构建web项目所需的state ...

  3. SpringBoot整合Mybatis注解版---update出现org.apache.ibatis.binding.BindingException: Parameter 'XXX' not found. Available parameters are [arg1, arg0, param1, param2]

    SpringBoot整合Mybatis注解版---update时出现的问题 问题描述: 1.sql建表语句 DROP TABLE IF EXISTS `department`; CREATE TABL ...

  4. springboot学习随笔(四):Springboot整合mybatis(含generator自动生成代码)

    这章我们将通过springboot整合mybatis来操作数据库 以下内容分为两部分,一部分主要介绍generator自动生成代码,生成model.dao层接口.dao接口对应的sql配置文件 第一部 ...

  5. springboot整合mybatis出现的一些问题

    springboot整合mybatis非常非常的简单,简直简单到发指.但是也有一些坑,这里我会详细的指出会遇到什么问题,并且这些配置的作用 整合mybatis,无疑需要mapper文件,实体类,dao ...

  6. springBoot整合mybatis、jsp 或 HTML

    springBoot整合mybatis.jsp Spring Boot的主要优点: 1:  为所有Spring开发者更快的入门: 2:  开箱即用,提供各种默认配置来简化项目配置: 3:  内嵌式容器 ...

  7. SpringBoot系列七:SpringBoot 整合 MyBatis(配置 druid 数据源、配置 MyBatis、事务控制、druid 监控)

    1.概念:SpringBoot 整合 MyBatis 2.背景 SpringBoot 得到最终效果是一个简化到极致的 WEB 开发,但是只要牵扯到 WEB 开发,就绝对不可能缺少数据层操作,所有的开发 ...

  8. SpringBoot整合Mybatis完整详细版二:注册、登录、拦截器配置

    接着上个章节来,上章节搭建好框架,并且测试也在页面取到数据.接下来实现web端,实现前后端交互,在前台进行注册登录以及后端拦截器配置.实现简单的未登录拦截跳转到登录页面 上一节传送门:SpringBo ...

  9. SpringBoot整合Mybatis完整详细版

    记得刚接触SpringBoot时,大吃一惊,世界上居然还有这么省事的框架,立马感叹:SpringBoot是世界上最好的框架.哈哈! 当初跟着教程练习搭建了一个框架,传送门:spring boot + ...

  10. 【SpringBoot系列1】SpringBoot整合MyBatis

    前言: 一直看网上说SpringBoot是解锁你的配置烦恼,一种超级快速开发的框架.一直挺想学的,正好最近也有时间,就学了下 这个是SpringBoot整合MyBatis的一个教程,用了阿里的drui ...

随机推荐

  1. UIAlertController简单使用

    UIAlertView   在iOS2 的时候开始使用,在iOS9 的时候被摒弃 NS_CLASS_DEPRECATED_IOS(2_0, 9_0, "UIAlertView is depr ...

  2. web界面直连MySql数据库

    <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding= ...

  3. 获取url参数的精简代码

    题目描述 获取 url 中的参数 指定参数名称,返回该参数的值 或者 空字符串 不指定参数名称,返回全部的参数对象 或者 {} 如果存在多个同名参数,则返回数组 输入例子: getUrlParam(' ...

  4. oracle 占比函数

    这个函数在oracle帮助文档的位置:SQL Reference里面,很好找的. 除报告详细数据外,许多报告中还包括每行总数的百分比.例如,每名客户的订单相对于总订单的百分比,或每位销售代表的销售额相 ...

  5. python之property属性

    Property的概念:property是一种特殊的属性,访问它时会执行一段功能(函数),然后返回值. import math class Circle: def __init__(self,radi ...

  6. AOP - C# Fody中的方法和属性拦截

    很久很久以前用过postsharp来做AOP, 大家知道的,现在那东东需要付费,于是尝试了一下Fody,但是发现Fody跟新太快了,所以大家在安装fody的时候尽力安装老的版本:packages.co ...

  7. Excel 驼峰表达式

    =LEFT(A1,1)&MID(SUBSTITUTE(PROPER(A1),"_",""),2,100)

  8. 转: ffmpeg循环推流方法

    from:  https://blog.csdn.net/weiyuefei/article/details/64125208 ffmpeg循环推流方法 You should be able to u ...

  9. Android Studio3.1.2升级问题:Configuration 'compile' is obsolete and has been replaced with 'implementation'.

    每次升级Android Studio时,一般情况下Gradle版本的也会相应的升级,我之前Android Studio 3.0.1.Gradle 是4.1升级后为:Android Studio 3.1 ...

  10. JAVA中使用Log4j2日志和Lombok引入日志的方法

    一.简述 我们项目中既要使用lombok,又要使用log4j2时,使用日志将会更简单. 二.解决 1.引入依赖 <dependency> <groupId>org.apache ...