原文:https://zhuoqianmingyue.blog.csdn.net/article/details/83141118作者:桌前明月
b7f3d33e6ad9f3e77e156d5395353a0f.png

0、序言

0.0、demo版本说明

软件版本开发工具Spring Tool Suite (STS)jdk版本1.8.0_144springboot版本2.0.5.RELEASEmybatise start1.1.1

0.1、场景介绍

通过mybaties官方网址:

http://www.mybatis.org/spring-boot-starter/mybatis-spring-boot-autoconfigure/

可以发现:

mybaties 为springboot 提供了2个版本的demo:

1、注解方式

2、xml方式

0f09efa79d38823987f35315e408969d.png

我们要先将github的代码拷贝下来 https://github.com/mybatis/spring-boot-starter

1、注解的方式

下图就是官方给的列子,无需添加任何配置就可以使用了。根据这个里子我们可以大致知道如何通过注解来进行定义查询方法。但是这个案例就一个查询方法 敢不敢在多写几个啊!你们也太懒了吧!

b737ad2dc9dcff528d345b0bf2168591.png

哎!我们还是去mybaties的官网继续寻找答案吧http://www.mybatis.org/mybatis-3/java-api.html

c8dac3207f1724d0a7c248fd6b2ef048.png

看完后有点想写点demo的冲动啊! come on !

这里我们开始自己写注解版的增删改查:

我们定义一个商品类: 包含的成员属性有 商品id、商品名称、商品价格、商品简介。

在开始之前千万别忘了在pom.xml中引入mybaties start依赖和mysql的依赖:

org.mybatis.spring.boot

mybatis-spring-boot-starter

1.1.1

mysql

mysql-connector-java

商品的实体类Product:

package cn.lijunkui.mybaties.domain;

@Data

@AllArgsConstructor

@NoArgsConstructor

public class Product {

private Long id;

private String productName;

private Double price;

private String productBrief;

}

添加数据库的表前需要我们定义数据库配置文件application.yml信息:

server:

servlet:

context-path: /learn

port: 8080

spring:

banner:

charset: UTF-8 # Banner file encoding.

#location: classpath:banner.txt # Banner text resource location.

image:

#location: classpath:banner.gif # Banner image file location (jpg or png can also be used).

width: 10 # Width of the banner image in chars.

height: 10 # Height of the banner image in chars (default based on image height).

margin: 2 # Left hand image margin in chars.

invert: false # Whether images should be inverted for dark terminal themes.

datasource:

driver-class-name: com.mysql.jdbc.Driver

url: jdbc:mysql://localhost:3306/mybaties?useUnicode=true&characterEncoding=utf-8

username: root

password: root

测试建库建表sql:

/*

SQLyog Ultimate v9.62

MySQL - 5.5.27 : Database - mybaties

*********************************************************************

*/

/*!40101 SET NAMES utf8 */;

/*!40101 SET SQL_MODE=''*/;

/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;

/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;

/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;

/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;

CREATE DATABASE /*!32312 IF NOT EXISTS*/`mybaties` /*!40100 DEFAULT CHARACTER SET utf8 */;

USE `mybaties`;

/*Table structure for table `product` */

CREATE TABLE `product` (

`id` bigint(10) NOT NULL AUTO_INCREMENT COMMENT '商品id',

`product_Name` varchar(25) DEFAULT NULL COMMENT '商品名称',

`price` decimal(8,3) DEFAULT NULL COMMENT '价格',

`product_Brief` varchar(125) DEFAULT NULL COMMENT '商品简介',

PRIMARY KEY (`id`)

) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;

/*Data for the table `product` */

insert into `product`(`id`,`product_Name`,`price`,`product_Brief`) values (1,'苹果','20.000','好吃的苹果,红富士大苹果');

/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;

/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;

/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;

/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;

定义商品对应的dao层:

package cn.lijunkui.mybaties.mapper;

import org.apache.ibatis.annotations.Mapper;

import org.apache.ibatis.annotations.Param;

import org.apache.ibatis.annotations.Result;

import org.apache.ibatis.annotations.Results;

import org.apache.ibatis.annotations.Select;

import cn.lijunkui.mybaties.domain.Product;

@Mapper

public interface ProductMapper {

@Results(id="product" ,value= {

@Result(property = "id

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐