MyBatis

SpringBoot 整合 MybatisPlus 3.0

落花浮王杯 提交于 2020-04-30 19:58:34
CRUD是指在做计算处理时的增加(Create)、读取查询(Retrieve)、更新(Update)和删除(Delete)几个单词的首字母简写。主要被用在描述软件系统中DataBase或者持久层的基本操作功能 需求: 存在一张 message 表,且已有对应的实体类 Message,实现message 表的 CRUD 操作我们需要做什么呢? 基于 Mybatis: 需要编写 MessageMapper 接口,并在 MessageMapper.xml 映射文件中手动编写 CRUD 方法对应的sql语句。 基于 MP: 只需要创建 MessageMapper 接口, 并继承 BaseMapper 接口。 我们已经有了Message、message了,并且MessageDao也继承了BaseMapper了,接下来就使用crud方法。 前言: mybatis在持久层框架中还是比较火的,一般项目都是基于ssm。虽然mybatis可以直接在xml中通过SQL语句操作数据库,很是灵活。但正其操作都要通过SQL语句进行,就必须写大量的xml文件,很是麻烦。mybatis-plus就很好的解决了这个问题。 一、mybatis-plus简介: Mybatis-Plus(简称MP)是一个 Mybatis 的增强工具,在 Mybatis 的基础上只做增强不做改变,为简化开发、提高效率而生。这是官方给的定义

springboot入门_data-jpa

99封情书 提交于 2020-04-30 16:33:07
今天学习了在springboot项目中访问数据库,做下笔记,以备后期查看。 Spring Data JPA 是 Spring 基于 ORM 框架和JPA 规范 封装的一套应用框架,包含了增删改查等常用功能,可以让用户用较少的代码实现对数据的访问和操作进而提高开发效率! 目前我在web开发中,访问数据库的常用ORM框架是hibernate和mybatis,而springboot默认提供的是使用Hibernate操作数据库,下面分别看看在springboot中如何使用hibernate和mybatis。 一 data jpa,springboot-data-jpa帮我们定义了一些简单的接口实现了一些简单的功能,如CURD。我们要使用这些功能,只需要继承接口CrudRepository。 创建建maven的springboot项目,引入所需要的jar,pom.xml文件如下: 1 < 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 http://maven.apache.org/xsd/maven-4.0.0.xsd"

Java IDE的历史变迁及idea的使用

╄→гoц情女王★ 提交于 2020-04-30 15:08:42
Java开发工具的历史变迁 JCreator Jcreator是荷兰的Xinox Software公司开发的一个用于Java程序设计的集成开发环境(IDE),该公司成立于2001年; 官方网站: http://www.jcreator.com/ JBuilder JBuilder是Borland公司开发的针对Java的集成开发工具,该工具是收费的; Borland公司成立于1983年,总部位于美国加州; JBuilder 当时在Java集成开发工具中风靡一时,但不久后也逐步被新的工具所打败; 2009年5月6日,英国软件商Micro Focus宣布以7500万美元现金收购Borland软件公司; eclipse Eclipse最初是由IBM公司开发的替代商业软件Visual Age for Java的新一代Java集成开发环境; 2001年11月IBM将Eclipse贡献给开源社区,后来一直由非营利软件供应商联盟Eclipse基金会(Eclipse Foundation)管理,直到现在; myeclipse 由美国Genuitec公司开发一款的基于Eclipse的Java开发集成环境,该公司成立于1997年; MyEclipse Enterprise Workbench于2003年的推出,该工具是收费的; 官方网站: http://www.genuitec.com/

SpringBoot+Mybatis+Jsp 员工管理系统

人盡茶涼 提交于 2020-04-30 13:53:51
功能:用户登陆,用户注册。登陆成功可以进去员工管理界面,可以增删改查里面的员工信息,提交后保存到后台数据库。 新建立一个module,使用快捷开发,项目名 ems , SpringBoot 版本号改成 2.1.13 删除一些文件,在 resources 中添加 application.yml 来源: oschina 链接: https://my.oschina.net/u/3973793/blog/4259172

HashMap 的 7 种遍历方式与性能分析!(强烈推荐)

不问归期 提交于 2020-04-30 13:43:42
随着 JDK 1.8 Streams API 的发布,使得 HashMap 拥有了更多的遍历的方式,但应该选择那种遍历方式?反而成了一个问题。 本文 先从 HashMap 的遍历方法讲起,然后再从性能、原理以及安全性等方面,来分析 HashMap 各种遍历方式的优势与不足 ,本文主要内容如下图所示: HashMap 遍历 HashMap 遍历从大的方向来说,可分为以下 4 类 : 迭代器(Iterator)方式遍历; For Each 方式遍历; Lambda 表达式遍历(JDK 1.8+); Streams API 遍历(JDK 1.8+)。 但每种类型下又有不同的实现方式,因此具体的遍历方式又可以分为以下 7 种: 使用迭代器(Iterator)EntrySet 的方式进行遍历; 使用迭代器(Iterator)KeySet 的方式进行遍历; 使用 For Each EntrySet 的方式进行遍历; 使用 For Each KeySet 的方式进行遍历; 使用 Lambda 表达式的方式进行遍历; 使用 Streams API 单线程的方式进行遍历; 使用 Streams API 多线程的方式进行遍历。 接下来我们来看每种遍历方式的具体实现代码。 1.迭代器 EntrySet public class HashMapTest { public static void main

idea使用maven整合ssm框架

三世轮回 提交于 2020-04-29 20:33:00
本文为学习笔记,直接复制粘贴了网上大量资源,参考内容以下给出地址链接,侵删。 参考博客: idea中搭建基于maven的ssm整合框架 解决idea新建maven项目时一直loading问题 maven中GroupID 和ArtifactID怎么写 Spring MVC welcome-file-list 问题 Mybatis-mybatis自动生成代码提示"Cannot obtain primary key information from ..."解决方案 使用Mybatis-Generator自动生成Dao、Model、Mapping相关文件(转) 1.利用maven创建web项目 file->new->new project,选择maven。 这里可能会遇到archetype一直加载的问题。原因:idea一直读自己的配置里缓存导致的。 archetype一直加载的问题解决如下: option 1: 打开:Setting---->Build Tools → Maven → Importing VM options for importer 的值改为 -Xmx1024m。 option 2: C:\Users\Administrator.IntelliJIdea2016.1\system\Maven(或者C:\Users\hc001.IntelliJIdea2016.1

springboot mybatis 使用多数据源

梦想与她 提交于 2020-04-29 12:54:03
SpringBoot系列博客目录,含1.5.X版本和2.X版本 springboot2.0正式版发布之后,很多的组件集成需要变更了,这次将多数据源的使用踩的坑给大家填一填。当前多数据源的主要为主从库,读写分离,动态切换数据源。使用的技术就是AOP进行dao方法的切面,所以大家的方法名开头都需要按照规范进行编写,如: get*** 、 add*** 等等, 起步基础 本次的教程需要有springboot2.0集成mybatis 作为基础: 博客地址: springboot2.0 Mybatis 整合 (springboot2.0版本) 基础项目源码: https://github.com/WinterChenS/springboot2-mybatis-demo 需要以上的步骤作为基础,运行成功之后可就可以开始配置多数据源了 开始动手 添加依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-aop</artifactId> </dependency> 修改启动类 修改之前: @SpringBootApplication @MapperScan("com.winterchen.dao") public class

Springboot手动搭建项目——配置mybatis tk框架

狂风中的少年 提交于 2020-04-29 12:07:00
最近一直在学springboot和Cloud,互联网公司现在也更倾向于微服务这一块,前景是一篇光明的,特别是在springboot上开发的Cloud的部分,是一套分布式的整体解决方案,学好这一块至少这几年都很吃香; 既然学习很久,落地实践一下为好; 项目git网址: https://github.com/David-BIQI/manage.git (项目使用比较新的springboot2.0 还有jdk8 ) 参照的代码规范: https://github.com/xwjie/PLMCodeTemplate.git (这个是一套能够落地的代码规范,跟着风哥学习很多) 项目已经初始化,连接数据库了,配置mybatis tk框架,加上分页插件<有空还要连接一下mybatis的原理,还有分页的实现原理> application.yml下 mybatis配置: # mybatis包的扫描,还有就是映射文件设置 mybatis tk插件的使用 mybatis: type-aliases-package: package com.biqi.model mapper-locations: classpath:mapper/*.xml #配置驼峰下划线 configuration: map-underscore-to-camel-case: true    pom中的架包: <!--mybatis

JAVAORM框架之Mybatis (Ibatis) 详解

北战南征 提交于 2020-04-29 03:15:42
[TOC] Mybatis基础概念 Mybatis是一个持久层框架 它对JDBC操作数据库进行封装,让我们更关注SQL本身,而不需要花费精力去处理例如注册驱动、创建connection、创建statement、手动设置参数、结果集检索等jdbc繁杂的过程代码。下面是Mybatis的架构图 Mybatis又是如何解决JDBC中存在的问题呢? 1、 创建数据库连接相关操作,存在硬编码 ​ a) 解决方案:通过Mybatis全局配置文件,对数据库连接进行配置 ​ 2、 statement相关操作,存在硬编码 ​ a) 解决方案:通过Mapper映射文件,对statement相关处理进行配置。 ​ 3、 频繁开启数据库连接,会降低数据库处理性能。 ​ a) 解决方案:通过Mybatis全局配置文件,配置连接池。 ​ ​ Mybatis开放方式演进 Mybatis框架核心要点 关联查询 所谓的关联查询就是一对一和一对多以及多对多的应用,例如下面的例子 一对一 : 例如在获取订单的时候需要获取该订单所属的用户信息 解决思路 : 使用ResultMap或者ResultType自定义一个POJO进行结果映射 一对多 : 例如在获取用户信息的时候需要获取该用户的所有订单信息 解决思路 : 自定义一个POJO使用(只能使用)ResultMap进行结果映射 延迟加载(懒加载) 关于延迟加载

基于SpringMVC+Spring+MyBatis实现秒杀系统【数据库接口】

岁酱吖の 提交于 2020-04-28 23:13:42
前言 该篇教程主要关注MyBatis实现底层的接口,把MyBatis交给Spring来托管。数据库连接池用的c3p0。数据库用的MySQL。主要有2个大类:秒杀商品的查询、秒杀明细的插入。 准备工作 1、数据库脚本。先初始化数据库,这里主要有2张表:seckill【秒杀商品表】、success_killed【秒杀记录明细表】。success_killed采用双主键seckill_id、user_phone。同一个商品同一个手机号只能秒杀一次,如果通过非法手段通过业务接口的话,则重复插入秒杀记录明细时会返回0。 -- 创建数据库 CREATE DATABASE seckill; -- 使用数据库 use seckill; CREATE TABLE seckill( `seckill_id` BIGINT NOT NUll AUTO_INCREMENT COMMENT '商品库存ID', `name` VARCHAR(120) NOT NULL COMMENT '商品名称', `number` int NOT NULL COMMENT '库存数量', `start_time` TIMESTAMP NOT NULL COMMENT '秒杀开始时间', `end_time` TIMESTAMP NOT NULL COMMENT '秒杀结束时间', `create_time`