Mybatis - 基于Springboot

Springboot整合Mybatis

步骤一、引入相关依赖

<!-- 引入alibab 的Druid数据源,SpringBoot默认使用的是Tomcat的数据源 -->
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid</artifactId>
    <version>1.2.3</version>
</dependency>
<!-- mysql驱动 -->
<dependency>
	<groupId>mysql</groupId>
	<artifactId>mysql-connector-java</artifactId>
</dependency>
<!--mybatis-->
<dependency>
	<groupId>org.mybatis.spring.boot</groupId>
	<artifactId>mybatis-spring-boot-starter</artifactId>
	<version>1.3.2</version>
</dependency>
<dependency>
	<groupId>org.projectlombok</groupId>
	<artifactId>lombok</artifactId>
	<scope>provided</scope>
</dependency>
 

步骤二、配置数据源

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/testing?useSSL=false
    username: root
    password: root
    #配置自定义的数据源而不是使用默认的Tomcat的数据源
    type: com.alibaba.druid.pool.DruidDataSource

步骤三、编写数据对象和Mapper(基于注解)

package com.example.demo.entity;

import lombok.Data;

@Data
public class User {

	Long id;
	
	String name;
}
package com.example.demo.mapper;

import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Options;

import com.example.demo.entity.User;

@Mapper
public interface UserMapper {
	@Insert("insert into tb_user(name) values(#{name})")
	@Options(useGeneratedKeys = true, keyProperty = "id") // 将插入数据生成的主键绑定到方法参数user中
	int insert(User user);
}

步骤四、编写Service和Controller

package com.example.demo.service;

import java.util.List;

import com.example.demo.entity.User;

public interface UserService {
	
	int insert(User user);
}
package com.example.demo.service.impl;

import java.util.List;

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

import com.example.demo.entity.User;
import com.example.demo.mapper.UserMapper;
import com.example.demo.service.UserService;

@Service
public class UserServiceImpl implements UserService{
	
	@Autowired
	UserMapper userMapper;

	@Override
	@Transactional
	public int insert(User user) {
		return userMapper.insert(user);
	}

}
package com.example.demo.controller;

import java.util.Objects;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
import com.example.demo.SpringbootDemoApplication;
import com.example.demo.entity.User;
import com.example.demo.service.UserService;

@RestController
public class UserController {

	Logger logger = LoggerFactory.getLogger(SpringbootDemoApplication.class);
	@Autowired
	UserService userService;
	
	@PostMapping("/save")
	public ResponseEntity<User> insert(@RequestBody User user) {
		logger.info("/save - " + user);
		int count = userService.insert(user);
		logger.info("/save - count:" + count);
		if (count == 0) {
			return new ResponseEntity<>(HttpStatus.EXPECTATION_FAILED);
		}
		// 此时的user的id属性中已经被赋值为创建记录时生成的主键的值
		return ResponseEntity.ok(user);
		
	}
}

运行项目,通过postman创建一个post请求 http://localhost:9090/dev/save

请求Body中输入json:

{"name":"testing"}

请求成功

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值