自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(34)
  • 资源 (2)
  • 收藏
  • 关注

原创 (十四)消息中间件MQ详解及四大MQ比较

一、消息中间件相关知识1、概述消息队列已经逐渐成为企业IT系统内部通信的核心手段。它具有低耦合、可靠投递、广播、流量控制、最终一致性等一系列功能,成为异步RPC的主要手段之一。当今市面上有很多主流的消息中间件,如老牌的ActiveMQ、RabbitMQ,炙手可热的Kafka,阿里巴巴自主开发RocketMQ等。2、消息中间件的组成 2.1 Broker消息服务器,作为server提供消息核心服务 2.2 Producer消息生产者,业务的发起方,负责生产...

2021-02-03 08:41:41 167

原创 (十三)RabbitMQ使用详解

RabbitMQ是基于AMQP的一款消息管理系统。AMQP(Advanced Message Queuing Protocol),是一个提供消息服务的应用层标准高级消息队列协议,其中RabbitMQ就是基于这种协议的一种实现。常见mq:ActiveMQ:基于JMS RabbitMQ:基于AMQP协议,erlang语言开发,稳定性好 RocketMQ:基于JMS,阿里巴巴产品,目前交由Apache基金会 Kafka:分布式消息系统,高吞吐量Java Client生产者和消费者都属于客户端,

2021-02-03 08:31:58 168 1

原创 (十二)C3P0连接池使用教程

一般我们在项目中操作数据库时,都是每次需要操作数据库就建立一个连接,操作完成后释放连接。因为jdbc没有保持连接的能力,一旦超过一定时间没有使用(大约几百毫秒),连接就会被自动释放掉。而每次新建连接都需要140毫秒左右的时间,所以耗费时间比较多。若使用C3P0连接池来池化连接,随时取用,则平均每次取用只需要10-20毫秒。这在高并发随机访问数据库的时候对效率的提升有很大帮助。 C3P0连接池会根据你的配置来初始化N个数据库连接,空闲T时间后连接过期又会自动新建K个连接使得连接池总有空闲的数据库连接...

2021-02-02 10:14:25 217

原创 (十一)MyBatis的动态SQL:trim元素

trim标记是一个格式化的标记,可以完成select,update,insert语句的格式化操作。trim元素的主要功能有四个:(1)可以在包含的内容前加上某些前缀,与之对应的属性是prefix;(2)也可以在包含的内容后加上某写后缀,与之对应的属性是suffix;(3)可以把包含内容的首部某些内容覆盖,即忽略,对应的属性是prefixOverrides(4)也可以把包含内容的尾部的某些内容覆盖,对应的属性是suffixOverrides。以下举例说明一下trim元素的应用场景:例子1:.

2021-02-02 09:56:07 321

原创 (十)IDEA添加mybatis-mapp.xml文件

1.点击file–Settings–Editor–file and Code Templates2.配置mybatis-mapper.xml的网址,点击file–Settings–ages& Frameworks–Schmas and DTDs3.创建mapper.xml文件

2021-02-02 09:35:14 71

原创 (九)IDEA便捷配置MyBatis.xml文件

在使用IDEA新建mybatis.xml经常需要手动复制粘贴之前的xml配置。这样也比较麻烦。我们可以IDEA进行关于xml的配置1.创建MyBatis Config的模版1.打开新增2.查看编辑页面查看编辑页面我们看到Name:为我们新增模版的文件名称。Extension:为我们新增文件的类型3.新增MyBatis全局xml配置新增MyBatis全局xml配置<?xml version="1.0" encoding="UT...

2021-02-02 09:23:10 180

原创 (八)IT_开发常用单词大全

开发单词 单词 音标 注释 a collection of… 一组… a couple of… 几个 a kind of 一种 a number of… 许多… ...

2021-01-31 10:36:23 1763 3

原创 15-多对多做左连接查询(查询老师,并且把关联的学生也查出来)

多对多左连接查询左连接查询老师对学生是多对多的关系,把中心放在老师上,一个老师可以教多个学生,实际上老师对学生也可以理解为一对多的关系。左连接查询场景:查询老师,并且把关联的学生也查出来。Teacher.java 映射文件:@Getter@Setter@ToStringpublic class Teacher { private Integer teacher_id; private String teacher_name; List<Stud.

2021-01-30 23:27:12 305 1

原创 14-多对多关系建表

多对多关系建表多对多关系 多对多关系建表原则 domain多对多关系一个老师可以教多个学生,一个学生可以被多个老师教。 一个学生可以选择多门课程,一门课程可以被多个学生选择。 一个用户可以选择多个角色,一个角色可以被多个用户选择。多对多关系建表原则原则:创建一个中间表,中间表至少有两个字段,分别作为外键指向多对多双方的主键。实例分析:一个老师可以教多个学生,一个学生可以被多个老师教。首先,建立学生表:然后建立老师表:还需要建立一个中间表:给关系表设置外键,分别指.

2021-01-30 23:26:43 5750

原创 13-一对多左连接查询&分步查询(查询所有客户及客户对应的订单)

查询所有客户以及对应的订单左连接查询(不支持懒加载) 分步查询(支持懒加载)左连接查询(不支持懒加载)场景:我们想要查询出所有的客户,并且把每个客户对应的订单也查出来。这时候可以使用左连接查询。那么如何在 MyBatis 中实现左连接查询呢?给客户的 domain 增添一个字段来表示对应的订单:private List<Order> orders = new ArrayList<>();@Setter@Getter //使用注解生成 get 与 s.

2021-01-30 23:26:14 758 3

原创 12-多对一添加操作(添加新客户及对应的新订单)

多对一添加操作场景:现在想要添加一个新客户对应一个新订单,那么要怎么来添加呢?分析:由于添加订单时,客户对订单是一对多的关系,所以添加订单的时候必须要指明一位客户。要同时添加新客户以及一个新订单,并且两者是对应关系,那么应当先将客户添加进来,再添加订单,同时这个订单的外键(cust_id)指向了刚刚添加的客户的主键(cust_id)。CustomerMapper 接口中添加一个方法:/*保存客户*/public void insertCustomer(Customer custo.

2021-01-30 23:25:43 233

原创 11-分步查询懒加载

分步查询——懒加载模式懒加载模式示例 不使用懒加载 使用懒加载 aggressiveLazyLoading lazyLoadTriggerMethods所谓懒加载,也称延时加载,是指不一下子加载完全部资源。需要用到哪些资源才去加载这些资源,用不到的资源,就不去加载他,以达到节约资源,优化的目的。分步查询中存在懒加载现象。懒加载模式示例不使用懒加载首先看一下不使用懒加载的情况下,是如何运行的。我们执行的代码,不涉及到 customer 的资源,但是如果不适用懒加.

2021-01-30 23:25:26 111

原创 10-多对一左连接查询&分步查询(查询所有订单及订单对应的客户)

左连接查询(级联查询)回顾一下:左连接查询,将左边表(order)里的全部内容查出,右边表(customer)查满足条件的。SELECT * FROM `order` AS o LEFT JOIN `customer` AS c on o.cust_id = c.cust_id;1那么在 MyBatis 中如何查询呢?首先我们已经将 domain 类与数据库属性对应,并且创建好了 Mapper 工程,主要来看看 Mapper 的内容:在 OrderMapper 接口中我们定义了

2021-01-30 23:24:56 513 1

原创 09-一对多关系建表

多表操作表之间关系 一对多关系建表原则表之间关系 一对一关系:一夫一妻。 一对多关系: 一个部门有多个员工,一个员工只能属于某一个部门。 一个班级有多个学生,一个学生只能属于一个班级。 多对多关系: 一个老师可以教多个学生,一个学生可以被多个老师教。 一个学生可以选择多门课程,一门课程可以被多个学生选择。 一个用户可以选择多个角色,一个角色可以被多个用户选择。 一对多关系建表原则原则:在多的一方创建一个外键,指向一的一方的主键。实例分析:一个客户.

2021-01-30 23:24:25 1294

原创 08-输出类型

输出类型输出简单类型 输出 Map 类型 key:列名 value:列名对应的值 key:自己指定的列 value:自定义对象 resultMap输出简单类型CustomerMapper.java:返回值为简单类型。public interface CustomerMapper { /*查询总数*/ public Integer getAccountCustomer();}CustomerMapper.xml :返回值 resultType 为.

2021-01-30 23:23:49 88

原创 07-MyBatis 核心配置文件

MyBatis 核心配置文件properties 定义属性及读取属性文件 settings 设置运行时行为 typeAliases 类型别名 定义单个别名 批量定义别名 typeHandlers 类型处理器 Plugins(后续有文章专门介绍这个) Environments 运行环境 databaseIDProvider 定义数据库厂商 mappers 加载映射文件 mapper resource=" " mapper class=" " package nam

2021-01-30 23:22:44 44

原创 06-Mapper动态代理

Mppaer 动态代理创建 Mapper 工程 定义接口的要求 测试类 Mapper 中参数传递 单个参数 多个参数 @param命名参数 多个参数封装成 Map 多个参数之 POJO 参数处理源码分析之前我们一直都使用传统开发模式DAO,即定义接口,然后定义实现类。这个其实是较为繁琐的,MyBatis 中提供了 Mapper 动态代理的方法,操作起来十分简洁,只需要定义满足要求的接口,然后通过 sqlSession 获取到 Mapper对象,便可通过.

2021-01-30 23:21:44 90

原创 05-传统开发模式DAO

传统开发模式DAO定义接口 CustomerDao.java 实现接口 CustomerDaoImpl.java 测试类在传统开发模式DAO下,我们自己先定义好接口,然后再去定义实现类,在实现类中实现接口的操作。到时候只需要创建一个 dao 对象,即可调用其中的方法。定义接口 CustomerDao.java在 dao 包下,创建一个接口文件 CustomerDao.java,在其中写上数据库的各种操作的抽象方法。public interface CustomerDao { .

2021-01-29 17:11:40 145

原创 04-插入操作&更新操作&删除操作

保存更新删除插入操作 获取插入的最后一个id 更新操作 删除操作查询操作在之前的笔记中~插入操作映射文件 Customer.xml :插入数据的标签为 insert,与查询 select 区分开来。parameterType 是输入参数类型,这里指定为 Customer 对象,即需要传入一个 Customer 类型的参数。由于传入参数不是单个简单类型值,#{} 中的名字必须与类的属性对应。映射文件中的代码如下:<?xml version="1.0" en.

2021-01-29 17:10:43 1354 4

原创 03-映射文件的sql语句中 #{} 和 ${} 的区别以及实现模糊查询

映射文件的sql语句中 #{} 和 ${} 区别以及实现模糊查询sql 语句中的 #{} #{} 模糊查询错误用法 #{} 实现模糊查询 sql 语句中的 ${} ${} 实现模糊查询 #{} 与 ${} 对比sql 语句中的 #{}表示一个占位符号,通过 #{} 可以实现 preparedStatement 向占位符中设置值。 自动进行 java 类型和 jdbc 类型转换。 可以有效防止 sql 注入。 可以接收简单类型值或 pojo 属性值。 如果 .

2021-01-29 17:09:28 189

原创 02-MyBatis配置SQL打印

MyBatis 配置SQL打印在 SqlMappingConfig.xml 中配置以下代码:<!--配置sql打印--><settings> <setting name="logImpl" value="STDOUT_LOGGING"/></settings>运行效果:会显示 SQL 语句,查询结果,总共几条数据,最后把数据封装成对象。Opening JDBC ConnectionCreated connection .

2021-01-29 17:08:18 53 3

原创 01-MyBatis入门程序

MyBatis入门程序1. 下载 Mybatis 核心包 2. 创建工程,引入 MyBatis 核心包及依赖包 3. 创建 customer 表,建立与表对应的 domain 使用 lombok,开启注解 创建 Customer 类 4. 创建 MyBatis 核心配置文件 SqlMappingConfig.xml 5. 创建表对象的关系映射 Mapping 文件编写 sql 语句 6. 在核心配置文件当中引入 Mapping 7. 创建工厂,执行 sql 语句 抽取工具类

2021-01-29 17:07:06 89 4

原创 0-MyBatis简介

MyBatis简介简介 MyBatis 历史 MyBatis特点 为什么要使用 MyBatis? JDBC 缺点 Hibernate 缺点 MyBatis 简介MyBatis 历史MyBatis 原是 apache 的一个开源项目 iBatis;2010年6月这个项目由 apache software foundation 迁移到了 google code,并且改名为MyBatis 。iBATIS 一词来源于 “internet” 和 “ab.

2021-01-29 17:03:05 24

原创 (十一)Spring 基础注解(对象创建相关注解、注入相关注解)

注解编程注解基础概念 注解的作用 Spring 注解的发展历程 Spring 基础注解(Spring 2.x) 对象创建相关注解 @Component @Repository、@Service、@Contoller @Scope @Lazy 生命周期注解 @PostConstruct、@PreDestroy 注入相关注解 用户自定义类型 @Autowired @Autowired 细节 JDK 类型

2021-01-29 16:58:11 139

原创 (十)Spring 与 MVC 框架整合

Spring 整合 MVCMVC 框架整合思想 为什么要整合 MVC 框架 搭建 Web 运行环境 Spring 整合 MVC 框架的核心思路 1. 准备工厂 2. 代码整合 Spring 整合 Struts2MVC 框架整合思想为什么要整合 MVC 框架MVC 框架提供了控制器(Controller)调用 Servlet DAO —> Service 请求响应的处理 接收请求参数request.getParameter("") 控制程序的运行流.

2021-01-29 16:55:52 43

原创 (九)Spring 事务开发、事务属性详解

持久层事务回顾 Spring 控制事务的开发 Spring 中的事务属性(Transaction Attribute) 隔离属性(ISOLATION) 传播属性(PROPAGATION) 只读属性(readOnly) 超时属性(timeout) 异常属性 事务属性常见配置总结 基于标签的事务配置方式事务回顾什么是事务?事务时保证业务操作完整性的一种数据库机制。事务的 4 大特点:A、C、I、DA原子性 C一致性 I隔离性 D持久性如何...

2021-01-29 16:53:04 41

原创 (八)Spring与MyBatis整合

持久层持久层整合总述 Mybatis 开发步骤回顾 Mybatis 开发中存在的问题 Spring 与 Mybatis 整合思路 Spring 与 Mybatis 整合的开发步骤 Spring 与 Mybatis 整合的编码 搭建开发环境 pom.xml Spring 配置文件的配置 编码 Spring 与 Mybatis 整合细节 持久层整合总述1、Spring 框架为什么要与持久层技术进行整合?JavaEE开发需要持久层进行数据库的访问操作 JDBC、Hib

2021-01-29 16:49:50 94

原创 (七)HTML和CSS 、JavaScript 和Java到底有什么区别,今天终于明白了!!!

有人曾经问过,“HTML CSS 和 JavaScript 以及 Java有什么区别”TCP VS UDPJava VS C 功能先上了再说高级开发人员作为一个团队进行编程调试CSS高级开发人员重构代码能一个手指完成的绝不用两只手看实习生编码的时候,我的表情……当我尝试进入BIO...

2021-01-24 20:18:51 484

原创 (六)IT行业名博,你不知道的都在这里!!!

美团团队技术博客:https://tech.meituan.com/ 悦跑圈技术团队:https://joyrun.github.io/ 有赞技术团队:https://tech.youzan.com/ 360核心安全团队:https://blogs.360.cn/ Glow技术团队博客:https://tech.glowing.com/cn/ Google开源技术博客(墙):http://google-opensource.blogspot.hk/ ...

2021-01-24 20:11:19 74

原创 (五)SpringBoot 能挣钱的几个项目!!!

不得不佩服 Spring Boot 的生态如此强大,今天给大家推荐几款 Gitee 上优秀的后台开源版本的管理系统,小伙伴们再也不用从头到尾撸一个项目了,简直就是接私活,挣钱的利器啊。SmartAdmin我们开源一套漂亮的代码和一套整洁的代码规范,让大家在这浮躁的代码世界里感受到一股把代码写好的清流!同时又让开发者节省大量的时间,减少加班,快乐工作,热爱生活。SmartAdmin 让你从认识到忘不了,绝对是你最想要的!项目地址:https://gitee.com/lab1024/smart-adm.

2021-01-24 17:45:16 98

原创 (四)十大经典排序算法(动画图解,代码完全)

1. 冒泡排序1.1 算法步骤 比较相邻的元素。如果第一个比第二个大,就交换他们两个。 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。 针对所有的元素重复以上的步骤,除了最后一个。 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。 1.2 动画演示冒泡排序动画演示1.3 参考代码 1//Java代码实现 2publicclassBubbleSorti...

2021-01-24 17:16:00 244

原创 (三)MySQL入门,看我就够了!!!

课程目标一、为什么要学习数据库二、数据库的相关概念DBMS、DB、SQL三、数据库存储数据的特点四、初始MySQLMySQL产品的介绍MySQL产品的安装 ★MySQL服务的启动和停止 ★MySQL服务的登录和退出 ★MySQL的常见命令和语法规范五、DQL语言的学习 ★基础查询 ★条件查询 ★排序查询 ★常见函数 ★分组函数 ★分组查询 ★连接查询

2021-01-23 23:12:04 87

原创 (二)利用Java WebService调用天气预报实践

最近要和其他业务系统进行数据交换,选择了webservice方案,于是查了一下网上的用法。首先是做一个天气的查询例子,看着挺简单,可实际动手做起来发现坑很多,费了半天劲终于调通了,于是记录下来。1,在eclipse里新建一个java项目,在src里添加一个文件,命名为WeatherWebService.wsdl。2,在浏览器中访问地址:http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl,这个是天气预报的webservice描述

2020-12-17 10:35:43 175

原创 (一)Web Service——基本概念

(一)webservice 基本概念1.1 什么是web服务这里列举一些常见的web服务:手机淘宝、京东….天气预报手机号归属地股票查询发手机短消息手机充值功能中英文翻译银行转账业务公司的“进销存系统”在某商品缺货时自动给供应商下订单1.2 简介(1) webservice 即web服务,它是一种跨编程语言和跨操作系统平台的远程调用技术。(2) JAVA 中共有三种WebService 规范,分别是JAX-WS(JAX-RPC)、

2020-12-15 14:57:17 138

基于SpringBoot实现扫码支付.rar

众多的App或Web网站,一个二维码扫码支付功能是必备 的,那么如何实现支付功能呢?这里有详细的教程包括代码!

2021-02-02

Java_基于人脸识别的登录与注册.rar

通过java开发人脸识别方式的项目的登录与注册模块

2021-02-01

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除