这篇主要讲解SpringBoot结合JPA和Mybatis的使用
SpringBoot作为后端框架,必定要对数据库进行crud操作,JPA和Mybatis把这些操作进行了封装,方便了代码的编写。

JPA

先从比较简单的JPA讲起
第一步,添加依赖

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-jpa</artifactId></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId></dependency><dependency><groupId>org.hibernate.javax.persistence</groupId><artifactId>hibernate-jpa-2.1-api</artifactId><version>1.0.0.Final</version></dependency>

一般只要添加前两个,mysql-connector-java无论是jpa还是mybatis还是传统的jdbc都需要添加。
第二步,编写dao类
准确的说应该是一个接口,继承JpaRepository<>的接口

public interface OrderDetailRepository extends JpaRepository<OrderDetail, String> {List<OrderDetail> findByOrderId(String orderId);
}

OrderDetail是数据表对应的实体类,String是主键类型
JpaRepository提供了一系列的操作:

  1. save()更新和添加
  2. findAll()
  3. findById(id)通过id进行查找,返回的是一个Optional对象
    还可以在接口中自定义的方法,但是有一定的命名规则,这些命名规则对应的是sql语句中的语法。

Mybatis

Mybatis有两种使用方式:

  1. 注解
  2. xml文件

无论使用哪种方式第一步就是先添加依赖

<dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>1.3.2</version>
</dependency>

先说注解,现在官方推行使用注解的方式

annotation

第一步,建一个mapper包,在里面新建一个接口
第二步,编写方法,在方法上面添加注解
具体的直接看下面的程序

package com.hwy.sell.dataobject.mapper;import com.hwy.sell.dataobject.ProductCategory;
import org.apache.ibatis.annotations.*;import java.util.List;
import java.util.Map;public interface ProductCategoryMapper {@Insert("insert into product_category(category_name, category_type) values (#{category_name, jdbcType=VARCHAR}, #{category_type, jdbcType=INTEGER})")int insertByMap(Map<String, Object> map);@Insert("insert into product_category(category_name, category_type) values (#{categoryName, jdbcType=VARCHAR}, #{categoryType, jdbcType=INTEGER})")int insertByObject(ProductCategory productCategory);@Select("select * from product_category where category_type= #{categoryType}")@Results({@Result(column = "category_type", property = "categoryType"),@Result(column = "category_name", property = "categoryName"),@Result(column = "category_id", property = "categoryId")})ProductCategory findByCategoryType(Integer categoryType);@Select("select * from product_category where category_name= #{categoryName}")@Results({@Result(column = "category_type", property = "categoryType"),@Result(column = "category_name", property = "categoryName"),@Result(column = "category_id", property = "categoryId")})List<ProductCategory> findByCategoryName(String categoryName);@Update("update product_category set category_name = #{categoryName} where category_type = #{categoryType}")int updateByCategoryType(@Param("category_name") String categoryName, @Param("category_type") Integer categoryType);@Update("update product_category set category_name = #{categoryName} where category_type = #{categoryType}")int updateByObject(ProductCategory productCategory);@Delete("delete from product_category where category_type = #{categoryType}")int deleteByCategoryType(Integer categoryType);ProductCategory selectByCategoryType(Integer categoryType);
}

增@Insert 查@Select 删@Delete 改@Update
在括号中编写sql语句,变量用#{}包起来,如果使用实体类作为方法的参数时,sql语句中的变量名要和实体类中的属性名对应起来
当方法的参数列表有多个变量时候要在参数前使用注解@Param("")
要让这个接口起作用,还要在SpringBoot的启动类那里添加一个@MapperScan(basePackages=""),basePackages中填写的是接口所在的包

xml

进行简单了解
第一步就是新建一个xml文件,在文件中写一下内容,下面的代码是以查询语句为例的

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.hwy.sell.dataobject.mapper.ProductCategoryMapper"><resultMap id="BaseResultMap" type="com.hwy.sell.dataobject.ProductCategory"><id column="category_id" property="categoryId" jdbcType="INTEGER"/><id column="category_type" property="categoryType" jdbcType="INTEGER"/><id column="category_name" property="categoryName" jdbcType="VARCHAR"/></resultMap><select id="selectByCategoryType" resultMap="BaseResultMap" parameterType="java.lang.Integer">select category_id, category_name, category_typefrom product_categorywhere category_type = #{categoryType, jdbcType=INTEGER}</select>
</mapper>

这里就不做详细讲解

SpringBoot + Mybatis/JPA相关推荐

  1. 基于vue2+element+springboot+mybatis+jpa+mysql的学籍管理系统

    目录 整套系统源码下载 一.开发背景 二.用到的技术 三.开发使用的IDE 四.搭建开发环境 五.启动项目 六.学籍管理系统使用说明 七.结语 八.源码下载 基于vue2+element+spring ...

  2. 基于vue2+element+springboot+mybatis+jpa+mysql的幼儿园幼儿信息管理系统

    目录 整套系统源码下载 一.开发背景 二.用到的技术 三.开发使用的IDE 四.搭建开发环境 五.启动项目 六.幼儿园幼儿信息管理系统使用说明 七.结语 八.整套系统源码下载 整套系统源码下载 基于v ...

  3. 基于vue2+element+springboot+mybatis+jpa+mysql的小区物业管理系统

    目录 一.开发背景 二.用到的技术 三.开发使用的IDE 四.搭建开发环境 五.启动项目 六.物业管理系统使用说明 七.结语 八.整套项目源码下载 一.开发背景 本系统作为vue2初学者的入门系统,通 ...

  4. Jpa第一话 -- Springboot集成Jpa和Mybatis以及Jpa的最全使用

    本文主要记录spring-boot-starter-data-jpa的详细使用. 在做一些小型无并发的项目时,说实话第一个想到的就是Jpa,一个Entity走天下. 1.Spring Jpa的使用 基 ...

  5. 单手撸了个springboot+mybatis+druid

    本文旨在用最通俗的语言讲述最枯燥的基本知识 最近身边的程序员掀起了学习springboot的热潮,说什么学会了springboot在大街上就可以横着走.什么有了springboot妈妈再也不担心我的编 ...

  6. 单手撸了个springboot+mybatis+druid 1

    本文旨在用最通俗的语言讲述最枯燥的基本知识 最近身边的程序员掀起了学习springboot的热潮,说什么学会了springboot在大街上就可以横着走.什么有了springboot妈妈再也不担心我的编 ...

  7. Springboot整合JPA多数据源(Oracle+Mysql)

    Springboot整合JPA多数据源 1. Maven 2. 基本配置 2.1 DataSource 3. 多数据源配置 3.1 JpaConfigOracle 3.2 JpaConfigMysql ...

  8. 亚信实习笔记总结(SpringBoot + MyBatis)

    1.工作内容描述?项目描述? 亚信公司简述   亚信公司主要是给运营商提供支撑服务.运营商包括(电信为主)江苏电信.湖北电信.海南电信.西藏电信.天津电信.黑龙江联通,提供的业务支撑系统包括计费.客户 ...

  9. Java+Springboot+Mybatis+Mysql+Bootstrap+Maven实现网上商城系统

    网上商城系统 一.系统介绍 1.软件环境 2.功能模块图 3.系统功能 4.数据库表 5.SQL语句 6.工程截图 二.系统展示 1.用户-浏览商品 2.用户-注册 3.用户-登录 4.用户-购物车管 ...

最新文章

  1. 做过十几年程序员,作为当今全世界顶级产品经理,出版第二部重磅作品《启示录2》...
  2. 【Java从0到架构师(2),Java面试问题
  3. python【力扣LeetCode算法题库】1162- 地图分析(BFS)
  4. [C#学习笔记]C#中的decimal类型——《CLR via C#》
  5. 图像阈值处理cv2.threshold()函数(python)
  6. Sqlserver中格式化日期作为查询条件的语句写法
  7. element ui 空格_空格是您的UI朋友。 大量使用它。
  8. 前端学习(589):在console中调试日志
  9. wpf 点击按钮弹出选择框_关于WPF的弹出窗口
  10. Mendix发布全球低代码报告,中国软件与低代码发展远超全球
  11. 移动硬盘(U盘)病毒对数据的破坏
  12. java 服务端 处理跨域_javaweb服务端跨域支持
  13. linux下获取程序所在目录绝对路径
  14. 图像处理之opencv---mat、cvmat、IplImage之间的转换
  15. win7系统定时删除数据的批处理命令_简单的批量清除垃圾bat命令
  16. 六轴传感器MPU6050
  17. 数据结构——基数排序(经典以空间换时间案例)
  18. ttest求pvalue_统计中t检验法中P值该怎样计算
  19. 电脑键盘打字跳转计算机,电脑键盘打字方法
  20. MATLAB无线计算器

热门文章

  1. python 键盘输入int_Python编程 Python如何获取数据
  2. main在c语言中的作用,main函数在C语言中是怎么定义的?有什么作用?
  3. 2017长春java平均工资_2016年长春在岗职工社会平均工资出炉:66948元,月平均工资5579元...
  4. 类创建几种java_Java创建对象的几种方式
  5. python爬虫定时运行_python 每天如何定时启动爬虫任务
  6. springboot2 war页面放在那_Spring Boot2版的权限管理系统
  7. PL/SQL Developer将Excel表格数据导入表格
  8. springBoot项目启动去掉多余的启动日志
  9. n卡eth挖矿设置_“挖矿”再度兴起,N卡停产遇到ETH大涨,显卡会不会涨到18年那样...
  10. phpstudy mysql升级5.7