SpringBoot------整合MyBatis
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的更多相关文章
- SpringBoot整合Mybatis之项目结构、数据源
已经有好些日子没有总结了,不是变懒了,而是我一直在奋力学习springboot的路上,现在也算是完成了第一阶段的学习,今天给各位总结总结. 之前在网上找过不少关于springboot的教程,都是一些比 ...
- SpringBoot整合Mybatis【非注解版】
接上文:SpringBoot整合Mybatis[注解版] 一.项目创建 新建一个工程 选择Spring Initializr,配置JDK版本 输入项目名 选择构建web项目所需的state ...
- 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 ...
- springboot学习随笔(四):Springboot整合mybatis(含generator自动生成代码)
这章我们将通过springboot整合mybatis来操作数据库 以下内容分为两部分,一部分主要介绍generator自动生成代码,生成model.dao层接口.dao接口对应的sql配置文件 第一部 ...
- springboot整合mybatis出现的一些问题
springboot整合mybatis非常非常的简单,简直简单到发指.但是也有一些坑,这里我会详细的指出会遇到什么问题,并且这些配置的作用 整合mybatis,无疑需要mapper文件,实体类,dao ...
- springBoot整合mybatis、jsp 或 HTML
springBoot整合mybatis.jsp Spring Boot的主要优点: 1: 为所有Spring开发者更快的入门: 2: 开箱即用,提供各种默认配置来简化项目配置: 3: 内嵌式容器 ...
- SpringBoot系列七:SpringBoot 整合 MyBatis(配置 druid 数据源、配置 MyBatis、事务控制、druid 监控)
1.概念:SpringBoot 整合 MyBatis 2.背景 SpringBoot 得到最终效果是一个简化到极致的 WEB 开发,但是只要牵扯到 WEB 开发,就绝对不可能缺少数据层操作,所有的开发 ...
- SpringBoot整合Mybatis完整详细版二:注册、登录、拦截器配置
接着上个章节来,上章节搭建好框架,并且测试也在页面取到数据.接下来实现web端,实现前后端交互,在前台进行注册登录以及后端拦截器配置.实现简单的未登录拦截跳转到登录页面 上一节传送门:SpringBo ...
- SpringBoot整合Mybatis完整详细版
记得刚接触SpringBoot时,大吃一惊,世界上居然还有这么省事的框架,立马感叹:SpringBoot是世界上最好的框架.哈哈! 当初跟着教程练习搭建了一个框架,传送门:spring boot + ...
- 【SpringBoot系列1】SpringBoot整合MyBatis
前言: 一直看网上说SpringBoot是解锁你的配置烦恼,一种超级快速开发的框架.一直挺想学的,正好最近也有时间,就学了下 这个是SpringBoot整合MyBatis的一个教程,用了阿里的drui ...
随机推荐
- H5微信单页读书日活动
1. 页面方面 (1)单页面应用,使用jquery 绑定click事件来控制页面更换显示 (2)ajax请求获取图片数据,和海报名人名言数据 2.微信分享 (1)配置签名,后台导入微信第三方库配置签名 ...
- Python中map函数
1.简介 python 提供内置函数map(), 接收两个参数,一个是函数,一个是序列,map将传入的函数依次作用到序列的每个元素,并把结果作为新的list返回.例如: (1)对于list [1, 2 ...
- 获取SQL server 中的表和说明
SELECT 表名 = case when a.colorder = 1 then d.name else '' end, 表说明 = case w ...
- 微信小程序-转发
仅供参考 1,js: onShareAppMessage(res) { return { title: '我在使用俺搜·找客户,10万+材料人都在用,就差你了', path: '/pages/inde ...
- TOML简介 (转) TOML的由来
TOML的由来 配置文件的使用由来已久,从.ini.XML.JSON.YAML再到TOML,语言的表达能力越来越强,同时书写便捷性也在不断提升. TOML是前GitHub CEO, Tom Prest ...
- ssh以root用户远程登录失败
参考文献: http://blog.csdn.net/lichangzai/article/details/39379153 http://blog.csdn.net/yasi_xi/article/ ...
- Unsupervised pre-training
如图所示: 假设你想要解决一个复杂的任务,你没有太多的标记的训练数据,但不幸的是,你不能找到一个类似的任务训练模型. 不要失去所有希望! 首先,你当然应该尝试收集更多的有标签的训练数据,但是如果这太难 ...
- IIS 网站 HTTP 转 HTTPS
最近需要做 http 链接转成 https 链接,所以就去弄了,现在记录下: 1.准备SSL证书 最开始的时候用的是腾讯云的免费证书,有效期1年,但只能绑定一个二级域名.测试成功后,就去阿里云购买了证 ...
- Android自定义控件实战——滚动选择器PickerView
转载请声明出处http://blog.csdn.net/zhongkejingwang/article/details/38513301 手机里设置闹钟需要选择时间,那个选择时间的控件就是滚动选择器, ...
- 每天一个linux命令(16):which
1.命令简介 which (which) 命令的作用是在PATH变量指定的路径中搜索某个系统命令的位置并且返回第一个搜索结果.也就是说使用which命令就可以看到某个系统命令是否存在以及执行的到底是哪 ...