SpringBoot+MyBatis连接数据库
SpringBoot通过MyBatis连接数据库有2种方法:
1.注解
2.XML文件
1.注解
1.构建项目
2.添加依赖:
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- 引入starter-->
<!-- https://mvnrepository.com/artifact/org.mybatis.spring.boot/mybatis-spring-boot-starter -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.2</version>
</dependency>
<!-- MySQL的JDBC驱动包 -->
<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>
3.配置属性文件:
#mybatis.type-aliases-package=net.xdclass.base_project.domain
#可以自动识别
#spring.datasource.driver-class-name =com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/movie?useUnicode=true&characterEncoding=utf-8
spring.datasource.username =root
spring.datasource.password =password
#如果不使用默认的数据源 (com.zaxxer.hikari.HikariDataSource)
spring.datasource.type =com.alibaba.druid.pool.DruidDataSource
#控制台打印sql
mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
4.启动类(SpringApplication)添加mapper扫描
@MapperScan("net.xdclass.base_project.mapper")
5.开发Mapper,Mapper类是访问数据库的接口
public interface UserMapper{
@Insert("Insert into user(name,phone,create_time,age) values(#{name},#{phone},#{createTime},#{age})")
int insert(User user);
}
添加@Options(userGeneratedKeys=true,keyProperty="id",keyColumn="id") //key Property java对象的属性,key Column表示数据库的字段
6.添加User用户(domain)
public class User {
private int id;
private String name;
private String phone;
private int age;
private Date createTime;
xxx(相应的get/set方法)
}
7.添加service层
UserService:
public interface UserService {
public int add(User user);
}
UserServiceImpl:
@Service
public class UserServiceImpl implements UserService{
@Autowired
private UserMapper userMapper;
@Override
public int add(User user) {
userMapper.insert(user);
int id = user.getId();
return id;
}
}
8.添加Controller层
@RestController
@RequestMapping("/api/v1/user")
public class UserController {
@Autowired
private UserService userService;
@GetMapping("add")
public Object add(){
User user = new User();
user.setAge(11);
user.setCreateTime(new Date());
user.setName("xdclass");
user.setPhone("10010000");
int id = userService.add(user);
return JsonData.buildSuccess(id);
}
}
9.select,update, delete的使用
1.从数据转成对象
public interface userMapper{
@Select("select * from user")
@Results({
@Result(column="数据库字段1",property="对象的字段1"),
@Result(column="数据库字段2",property="对象的字段2")
})
List<User> getAll();
}
调用的时候(直接在controller给调用了):
@GetMapping("findAll")
public Object findAll(){
return JsonData.buildSuccess(userMapper.getAll());
}
JsonData类在同层目录下
2.根据id找对象(id怎么传进去-》findById调用的时候传入id)
public interface userMapper{
@Select("Select * from user where id=#{id}")
@Results({
@Result(column="数据库字段1",property="对象的字段1"),
@Result(column="数据库字段2",property="对象的字段2")
})
User findById(Long id);
}
3.更新数据库对象
public interface userMapper{
@Update("UPDATE user SET name=#{name} WHERE id =#{id}")
void update(User user);
}
4.删除数据库对象
public interface userMapper{
@Delete("DELETE FROM user WHERE id =#{userId}")
void delete(Long userId);
}
2.XML文件
https://blog.csdn.net/lr131425/article/details/76269236(这里的model类文件写错了)
主要区别在于怎么样实现Mapper层
XML的代码在https://github.com/Winster-cheng/SpringBoot-JDBC
SpringBoot+MyBatis连接数据库的更多相关文章
- 带着新人学springboot的应用01(springboot+mybatis+缓存 上)
上一篇结束,第一次做一个这么长的系列,很多东西我也是没有说到,也许是还没有想到,哈哈哈,不过基本的东西还是说的差不多了的.假如以后碰到了不会的,随便查查资料配置一下就ok. 咳,还有大家如果把我前面的 ...
- 3分钟搞定SpringBoot+Mybatis+druid多数据源和分布式事务
文章来自: https://blog.csdn.net/qq_29242877/article/details/79033287 在一些复杂的应用开发中,一个应用可能会涉及到连接多个数据源,所谓多数据 ...
- DB数据源之SpringBoot+MyBatis踏坑过程(六)mysql中查看连接,配置连接数量
DB数据源之SpringBoot+MyBatis踏坑过程(六)mysql中查看连接,配置连接数量 liuyuhang原创,未经允许禁止转载 系列目录连接 DB数据源之SpringBoot+Mybati ...
- 第五章 springboot + mybatis(转载)
本编博客转发自:http://www.cnblogs.com/java-zhao/p/5350021.html springboot集成了springJDBC与JPA,但是没有集成mybatis,所以 ...
- 第九章 springboot + mybatis + 多数据源 (AOP实现)
在第八章 springboot + mybatis + 多数据源代码的基础上,做两点修改 1.ShopDao package com.xxx.firstboot.dao; import org.spr ...
- 第五章 springboot + mybatis
springboot集成了springJDBC与JPA,但是没有集成mybatis,所以想要使用mybatis就要自己去集成.集成方式相当简单. 1.项目结构 2.pom.xml <!-- 与数 ...
- 基于Maven的Springboot+Mybatis+Druid+Swagger2+mybatis-generator框架环境搭建
基于Maven的Springboot+Mybatis+Druid+Swagger2+mybatis-generator框架环境搭建 前言 最近做回后台开发,重新抓起以前学过的SSM(Spring+Sp ...
- Docker+SpringBoot+Mybatis+thymeleaf的Java博客系统开源啦
个人博客 对于技术人员来说,拥有自己的个人博客应该是一件令人向往的事情,可以记录和分享自己的观点,想到这件事就觉得有意思,但是刚开始写博客的时候脑海中是没有搭建个人博客这一想法的,因为刚起步的时候连我 ...
- springboot mybatis 事务管理
本文主要讲述springboot提供的声明式的事务管理机制. 一.一些概念 声明式的事务管理是基于AOP的,在springboot中可以通过@Transactional注解的方式获得支持,这种方式的优 ...
随机推荐
- spring中获取applicationContext(2)
前几天写web项目的时候,用到了spring mvc. 但是又写bean.我要在代码里面生成,而这个bean里面,又有一些属性是通过spring注入的. 所以,只能通过ApplicationConte ...
- 笔记五:python字符串
一:学习内容 字符串类型 字符串类型判断 字符串类型互转 字符串小练习 二:字符串类型 1. basestring 在python中和字符串相关的数据类型为:str和unicode,他们都是bases ...
- NAS DAS SAN 磁带机 tco
部分摘录自: 百科:http://baike.baidu.com/link?url=7HOH3pJHfaxT-a01T0EhTZBnvvfMoyOZTthUbjMQM85LVxwfFP47YInuo1 ...
- Shell如何解决文件流管道的文本拼接失效问题
前言: 近期由于业务的需要,需实现通过监控日志文件的内容并定时将日志的有效内容通过邮件进行告警. 文本内容的格式如下: 1 aaa 2 bbb 4 ccc 7 ddd 希望输出: bbb ccc 版本 ...
- [Codeforces 925C]Big Secret
Description 题库链接 给出 \(n\) 个数,让你生成这 \(n\) 个数的一个排列 \(A\) .定义 \(B_i = \bigoplus\limits_{j=1}^i A_j\) , ...
- asp查找</td>标记时遇到以外的文件结尾
正确的<td></td> 错误的<td> 没有写完整
- .net core 2.2 部署CentOS7(4)CentOS7下载并安装.NET SDK(软件开发工具包)
目录: .net core 2.2 部署CentOS7(1)安装虚拟机 .net core 2.2 部署CentOS7(2)给虚拟机安装CentOS7 .net core 2.2 部署CentOS7( ...
- 十七、curator recipes之DistributedPriorityQueue
简介 官方文档:http://curator.apache.org/curator-recipes/distributed-priority-queue.html javaDoc:http://cur ...
- redis入门基础
环境: centos 一.安装 sudo su cd wget http://labfile.oss.aliyuncs.com/courses/106/redis-2.8.4.tar.gz tar - ...
- Java的Collection.sort()方法
Java中的Collection.sort()方法能使用泛型对对象的变量进行排序,下面是两种方法. 文件名:student.java import java.util.*; import com.su ...