前言
下面就来用MyBatis的注解来写sql并且实现一个简单的增删改查,这种方式使用简单,没有xml文件直接注解就完事了,但是MyBatis的最大特点是动态sql,大家看自己的情况使用。
项目结构图
1.数据库
2.Maven依赖
!--SpringBoot通用依赖模块-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!--Mysql数据库驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.15</version>
</dependency>
<!-- Mybatis依赖 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.6</version>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.1.1</version>
</dependency>
</dependencies>
3.application.yml
server:
port: 8080
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
username: root
password: root
4.pojo
package com.example.demo.pojo;
public class PmsBrand {
private int id;//bigint(20) NOT NULL
private String name; //varchar(64) NULL
private String first_letter; //varchar(8) NULL首字母
private int sort; //int(11) NULL
private int factory_status; //int(1) NULL是否为品牌制造商:0->不是;1->是
private int show_status; //int(1) NULL
private int product_count; //int(11) NULL产品数量
private int product_comment_count; //int(11) NULL产品评论数量
private String logo; //varchar(255) NULL品牌logo
private String big_pic; //varchar(255) NULL专区大图
private String brand_story; //text NULL品牌故事
public int getIdbig() {
return idbig;
}
public void setIdbig(int idbig) {
this.idbig = idbig;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getFirst_letter() {
return first_letter;
}
public void setFirst_letter(String first_letter) {
this.first_letter = first_letter;
}
public int getSort() {
return sort;
}
public void setSort(int sort) {
this.sort = sort;
}
public int getFactory_status() {
return factory_status;
}
public void setFactory_status(int factory_status) {
this.factory_status = factory_status;
}
public int getShow_status() {
return show_status;
}
public void setShow_status(int show_status) {
this.show_status = show_status;
}
public int getProduct_count() {
return product_count;
}
public void setProduct_count(int product_count) {
this.product_count = product_count;
}
public int getProduct_comment_count() {
return product_comment_count;
}
public void setProduct_comment_count(int product_comment_count) {
this.product_comment_count = product_comment_count;
}
public String getLogo() {
return logo;
}
public void setLogo(String logo) {
this.logo = logo;
}
public String getBig_pic() {
return big_pic;
}
public void setBig_pic(String big_pic) {
this.big_pic = big_pic;
}
public String getBrand_story() {
return brand_story;
}
public void setBrand_story(String brand_story) {
this.brand_story = brand_story;
}
}
5.dao
package com.example.demo.dao;
import com.example.demo.pojo.PmsBrand;
import org.apache.ibatis.annotations.*;
import java.util.List;
@Mapper
public interface PmsBrandMapper {
@Select("select * from pms_brand")
List<PmsBrand> findAll();
@Insert("insert into pms_brand values(null,#{name},#{first_letter},#{sort},#{factory_status},#{show_status},#{product_count},#{product_comment_count},#{logo},#{big_pic},#{brand_story})")
int saveBrand(PmsBrand pmsBrand);
@Update("update pms_brand set name=#{name},factory_status=#{factory_status},product_count=#{product_count},logo=#{logo} where id=#{id}")
int updBrand(PmsBrand pmsBrand);
@Delete("delete from pms_brand where id=#{id}")
int delBrand(int id);
}
6.service
package com.example.demo.service;
import com.example.demo.pojo.PmsBrand;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Update;
import java.util.List;
public interface PmsBrandService {
List<PmsBrand> findAll();
int saveBrand(PmsBrand pmsBrand);
int updBrand(PmsBrand pmsBrand);
int delBrand(int id);
}
impl
package com.example.demo.service.impl;
import com.example.demo.dao.PmsBrandMapper;
import com.example.demo.pojo.PmsBrand;
import com.example.demo.service.PmsBrandService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
@Service
public class PmsBrandServiceImpl implements PmsBrandService {
@Resource
private PmsBrandMapper pmsBrandMapper;
@Override
public List<PmsBrand> findAll() {
return pmsBrandMapper.findAll();
}
@Override
public int saveBrand(PmsBrand pmsBrand) {
return pmsBrandMapper.saveBrand(pmsBrand);
}
@Override
public int updBrand(PmsBrand pmsBrand) {
return pmsBrandMapper.updBrand(pmsBrand);
}
@Override
public int delBrand(int id) {
return pmsBrandMapper.delBrand(id);
}
}
7.controller
package com.example.demo.controller;
import com.example.demo.pojo.PmsBrand;
import com.example.demo.service.PmsBrandService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@Controller
public class PmsBrandController {
@Autowired
private PmsBrandService pmsBrandService;
@RequestMapping(value = "/sel",method = RequestMethod.GET)
@ResponseBody
public List<PmsBrand> sel(){
List<PmsBrand> infos=pmsBrandService.findAll();
return infos;
}
@RequestMapping(value = "/save",method = RequestMethod.POST)
@ResponseBody
public Boolean save(@RequestBody PmsBrand pmsBrand){
int count=pmsBrandService.saveBrand(pmsBrand);
return count>0?true:false;
}
@RequestMapping(value = "/upd",method = RequestMethod.PUT)
@ResponseBody
public Boolean upd(@RequestBody PmsBrand pmsBrand){
int count=pmsBrandService.updBrand(pmsBrand);
return count>0?true:false;
}
@RequestMapping(value = "/del/{id}",method = RequestMethod.DELETE)
@ResponseBody
public Boolean del(@PathVariable("id") int id){
int count=pmsBrandService.delBrand(id);
return count>0?true:false;
}
}
现在就完成了,其实主体没有多少变化,只是xml的方式换成了注解。