MyBatis

JPA相关

无人久伴 提交于 2020-02-25 21:27:50
全称Java Persistence API,可以通过注解或者XML描述【对象-关系表】之间的映射关系,并将实体对象持久化到数据库中 JPA仅仅是一种规范,也就是说JPA仅仅定义了一些接口,而接口是需要实现才能工作的。所以底层需要某种实现,而Hibernate就是实现了JPA接口的ORM框架。 Spring Data JPA 可以理解为 JPA 规范的再次封装抽象,底层还是使用了 Hibernate 的 JPA 技术实现 注解 含义 参数 @Entity 声明类为实体或表。 @Table 数据库对应的表 name表明;indexs{@index索引,name索引名称,unique唯一索引,columnList索引列名} @EntityListeners 用于指定Entity或者superclass上的回调监听类 AuditingEntityListener.class用于捕获监听信息,当Entity发生持久化和更新操作时 @Column 列注解 length 长度 @Type hibernate中的type type项目中自己实现的enum类名,所有的enum类都必须继承 @CreatedBy 创建者 @CreatedByDate 创建时间 @LastModifiedBy 最后修改人 @LastModifiedDate 最后修改时间 @OneToMany 一对多

微服务业务日志收集方案

泪湿孤枕 提交于 2020-02-25 21:26:23
背景 日志内容复杂多样,如何去收集有价值的日志是我们重点关注的。日志的价值其实是取决于业务操作的,不同的业务场景下相同类型的日志的价值会截然不同。 根据以往的业务实践,结合企业级的一些业务需求,我们选定关注以下几类日志。 跟踪日志【trace.log】 Server引擎的调试日志,用于系统维护人员定位系统运行问题使用。 系统日志【system.log】 大粒度的引擎运行的入口、出口的日志,用于调用栈分析,可以进行性能分析使用。 部署日志【deploy.log】 记录系统启动、停止、构件包部署、集群通知等信息的日志。 引擎日志【engine.log】 细粒度的引擎运行日志,可以打印上下文数据,用于定位业务问题。 构件包日志【contribution.log】 构件包记录的业务日志(使用基础构件库的日志输出API写日志) 这里我们专门针对系统日志收集讨论几种收集方案 方案一:通过日志组件来收集 这里是指通过logback、log4j等日志组件来输出文件,然后再通过文件输出到logstash、kibana等日志组件中,通过这些日志组件来进行可视化统计与分析,这里需要统一关键日志输出格式方便日后统计搜索。 优点 操作简单,收集方便 减少业务依赖 粒度细 缺点 依赖于logstash、kibana 只能满足简单的日志操作,详细点或者个性化需求操作起来比较复杂 方案二

Spring Boot(九):springboot结合mybatis实现增删改查

不羁的心 提交于 2020-02-25 21:12:57
一、前言 最近在跟着视频做码匠社区项目,视频中连接H2数据库,但是我这个社区版的IDEA无法集成H2,暂时还未找到解决办法。 因此想到了之前练习的连接MySQL,为了能继续下去,只能先这样了,以后找到解决办法再改成H2吧! 二、项目架构 pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.2.4.RELEASE</version> <relativePath/> </parent> <groupId>life.majiang

0120 springboot集成Mybatis和代码生成器

拈花ヽ惹草 提交于 2020-02-25 18:23:44
在日常开发中,数据持久技术使用的架子使用频率最高的有3个,即spring-jdbc , spring-jpa, spring-mybatis.详情可以看我之前的一篇文章 spring操作数据库的3个架子 . spring-jdbc封装的比较少,需要在代码中拼接sql,不太适合大规模的企业级别的开发。<br />spring-jpa封装略多,适合开发后台管理类的系统,可以减少大量重复工作。 但是在当下的互联网大环境下,spring-mybatis既带来了开发的便捷性,也不失灵活性,特别适合性能要求高,可以灵活改变的场景。本篇文章大致回顾一下基于springboot的mybatis的配置开发要点以及基于maven插件的代码自动生成。 hello, springboot集成mybatis以及代码生成器! <a name="wll9X"></a> springboot集成Mybatis springboot集成Mybatis有大把的文章,不过如果撇开别人的观点,你觉得从0开始配置,应该有哪几个步骤呢? 我觉得大致分为如下几个要点: 引入依赖,数据库驱动,mybatis的starter; 配置数据库连接信息,连接池信息; 配置mybatis的核心配置信息;比如entity位置,执行器类型,xml的位置; 配置springboot的Mybatis注解,主要是开启支持,然后是mapper的地址;

从源码看世界:Springboot整合Mybatis后到底做了什么

梦想与她 提交于 2020-02-25 16:09:12
在 Mybatis一次数据库操作过程 的文章中,我展示了使用Mybatis操作数据库的demo,但实际使用时并不会这里写代码,因为一般都会使用springboot了,那现在我们一起来看看Springboot整合Mybatis之后到底为我们做了哪些事情。 要在Springboot整合Mybatis,首先修改pom依赖: <!--<dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.3</version> </dependency>--> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.1.1</version> </dependency> 然后在具体的mapper类中增加 @Repository ,让spring管理其实例;接着在Application增加@MapperScan("mapper所在的包路径")。 现在,只要在需要使用mapper的地方使用@Autowired自动注入即可使用: @Autowired private StudentMapper

MybatisPlus入门介绍使用

旧时模样 提交于 2020-02-25 16:02:05
一、简介 官网: http://mp.baomidou.com/ 参考教程: http://mp.baomidou.com/guide/ MyBatis-Plus (简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。 二、特性 无侵入 :只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑 损耗小 :启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作 强大的 CRUD 操作 :内置通用 Mapper、通用 Service,仅仅通过少量配置即可实现单表大部分 CRUD 操作,更有强大的条件构造器,满足各类使用需求 支持 Lambda 形式调用 :通过 Lambda 表达式,方便的编写各类查询条件,无需再担心字段写错 支持多种数据库 :支持 MySQL、MariaDB、Oracle、DB2、H2、HSQL、SQLite、Postgre、SQLServer2005、SQLServer 等多种数据库 支持主键自动生成 :支持多达 4 种主键策略(内含分布式唯一 ID 生成器 - Sequence),可自由配置,完美解决主键问题 支持 XML 热加载 :Mapper 对应的 XML 支持热加载,对于简单的 CRUD 操作,甚至可以无 XML 启动 支持 ActiveRecord 模式 :支持

Mybatis 存储过程调用

家住魔仙堡 提交于 2020-02-25 12:10:07
1 存储过程 create or replace procedure proc_bus_tendstatus(v_tendid in Integer,cur_tendstatus out sys_refcursor) as v_zbbg varchar2(2);--生命变量 begin     --编写逻辑体内容 commit; --返回游标 open cur_tendstatus for select * from tp_buss_tendstatus where tendid = v_tendid; end proc_bus_tendstatus; 2 mapper.xml 文件配置 <select id="queryTenderStByTendid" statementType="CALLABLE" parameterType="Map"> call proc_bus_tendstatus( #{tendid,mode=IN,jdbcType=NUMERIC,javaType=Integer}, #{tenderSts,mode=OUT,jdbcType=CURSOR,javaType=java.sql.ResultSet,resultMap=tenderStMap} ) </select> 3 Dao 层编码 public List<TenderStBean>

mybatis调用存储过程

做~自己de王妃 提交于 2020-02-25 12:08:51
1.mybatis调用oracle存储过程 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > <mapper namespace="xxxMapper"> <resultMap type="java.util.LinkedHashMap" id="cursorMap"> </resultMap> <select id="getXXX" parameterType="map" useCache="false" statementType="CALLABLE"> <![CDATA[ CALL 存储过程名称( --parameterType="map" 使用map封装参数,直接输入key名称就可以获取到 --mode=IN 输入参数 #{iCompanyid, jdbcType=VARCHAR, mode=IN}, #{iProjid, jdbcType=VARCHAR, mode=IN}, #{iCurPage, jdbcType=DOUBLE, mode=IN}, --当前页 #{iPageSize, jdbcType=DOUBLE,

mybatis调用存储过程

坚强是说给别人听的谎言 提交于 2020-02-25 11:31:40
1. MySQL创建存储过程   完成分页查询功能,同时返回参数记录总条数信息: DELIMITER // CREATE PROCEDURE sp_article_page( IN pageIndex BIGINT, IN pageSize BIGINT, IN te_id BIGINT, IN grade_id INT, IN subject_id BIGINT, OUT total_count BIGINT ) BEGIN -- set @subjectId = subject_id; -- 可能为null SET @sql = 'SELECT * FROM tb_article '; SET @sqlWhere = CONCAT(' WHERE article_author = ', te_id); -- 教师 -- 大纲 IF (grade_id IS NOT NULL) OR (subject_id IS NOT NULL) THEN SET @sqlWhere = CONCAT(@sqlWhere, ' and outline_id in (select o_id from tb_outline where 1=1 '); IF grade_id IS NOT NULL THEN SET @sqlWhere = CONCAT(@sqlWhere, ' and grade

Mybatis入门

点点圈 提交于 2020-02-24 23:26:59
文章目录 什么是Mybatis? MyBatis的使用 MyBatis的工作原理 MyBatis入门程序 运行结果 遇到的小问题 什么是Mybatis?   MyBatis(前身是iBatis)是一个支持普通SQL查询、存储过程以及高级映射的持久层框架。   MyBatis框架也被称之为ORM(Object/Relation Mapping,即对象关系映射)框架。所谓的ORM就是一种为了解决面向对象与关系型数据库中数据类型不匹配的技术,它通过描述Java对象与数据库表之间的映射关系,自动将Java应用程序中的对象持久化到关系型数据库的表中。 MyBatis的使用 先去 https://github.com/mybatis/mybatis-3/releases 下载合适版本的mybatis的jar包(通常用3.4.x及3.5.x的,笔者用的是3.5.4)。 应用程序中引入MyBatis的核心包和lib目录中的依赖包(后续会有文件目录截图)。 MyBatis的工作原理 MyBatis入门程序 目录树 Customer类 package com . ryan . po ; /** * 客户持久化类 */ public class Customer { private Integer id ; // 主键id private String username ; // 客户名称