entity

springBoot+mybatisPlus小demo

倾然丶 夕夏残阳落幕 提交于 2021-01-23 07:56:34
项目介绍:采用restful api进行接口规范 / 项目框架SpringBoot+mybatis Plus / 采用mysql进行数据存储 / 采用swaggerUI进行前后端业务分离式开发。 开发环境:JDK1.8+Mysql8.0.12+IDEAL 实现功能:springboot搭建整体框架,MybatisPlus动态生成Dao+Services+Entity+Controller结构 项目介绍:无实际的业务操作,都是测试功能。其中为了区别mybastis和mybatisPlus,特意写了两个接口分别采用mapper.xml进行dao层操作和采用Iservice提供的CRUD操作进行数据查询。 ps:如果对springboot和mybayisPlus已了解,可直接访问码云进行demo下载 https://gitee.com/xc199534/SpringBootMybatisPlus/ ----------------------------------------------------------分割线--------------------------------------------- 1.项目整体结构 其中Config中包括MybatisPlusConfig和SwaggerConfig两个类,分别用于初始化MybatisPlus和Swagger基础设置。

网站性能优化小结和spring整合redis

眉间皱痕 提交于 2021-01-23 07:04:15
现在越来越多的地方需要非关系型数据库了,最近网站优化,当然从页面到服务器做了相应的优化后,通过在线网站测试工具与之前没优化对比,发现有显著提升。 服务器优化目前主要优化tomcat,在tomcat目录下的server.xml文件配置如下内容: <Connector port="1818"   protocol="HTTP/1.1"   maxHttpHeaderSize="8192"   maxThreads="1000"   minSpareThreads="100"   maxSpareThreads="1000"   minProcessors="100"   maxProcessors="1000"   enableLookups="false"   compression="on"   compressionMinSize="2048" compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"   connectionTimeout="20000"   URIEncoding="utf-8"   acceptCount="1000"   redirectPort="8443"   disableUploadTimeout="true"/> 参数说明: Protocol

SSM整合实例

可紊 提交于 2021-01-23 04:29:53
一、思路 SSH --> Spring+SpringMVC+MyBatis SM整合 --> SS整合 -->SSM 二、大体框架 三、Spring整合MyBatis SqlSessionFactory ->SqlSession -> StudentMapper ->CRUD MyBatis最终通过SqlSessionFactory 来操作数据库,Spring整合MyBatis,其实就是将MyBatis的SqlSessionFactory交给Spring。 1、jar包 2、配置 与spring整合时,mybatis的配置文件conf.xml(数据源+mapper.xml)可省,将其配置在applicationContext.xml中。 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"

Cesium中级教程4

谁说胖子不能爱 提交于 2021-01-20 07:31:59
Cesium中文网: http://cesiumcn.org/ | 国内快速访问: http://cesium.coinidea.com/ Viewer中的Entity功能 让我们看看 Viewer 为操作entities提供出来的功能函数。 选中和描述 点击Viewer中的entity将在entity的位置上呈现 SelectionIndicator 控件,提供一个 InfoBox 用于呈现更多的信息。我们可以设置 name ,来定义 InfoBox 的标题。我们也以HTML样式来提供 Entity.description 的属性。 wyoming.name = 'wyoming'; wyoming.description = '\ <img\ width="50%"\ style="float:left; margin: 0 1em 1em 0;"\ src="//cesium.com/docs/tutorials/creating-entities/Flag_of_Wyoming.svg"/>\ <p>\ Wyoming is a state in the mountain region of the Western \ United States.\ </p>\ <p>\ Wyoming is the 10th most extensive, but the least

HttpClient介绍和简单使用流程

会有一股神秘感。 提交于 2021-01-19 07:13:48
HttpClient SpringCloud中服务和服务之间的调用全部是使用HttpClient,还有前面使用SolrJ中就封装了HttpClient,在调用SolrTemplate的saveBean方法时就调用HttpClient技术。 当前大部分项目暴漏出来的接口是Http请求,数据格式是JSON格式,但在一些老项目使用的仍然是webService。 HttpClient 提供的主要的功能 (1)实现了所有 HTTP 的方法(GET,POST,PUT,DELETE 等) (2)支持自动转向 (3)支持 HTTPS 协议 (4)支持代理服务器等 1、关于Http的请求类型(常见) get、put、post、delete含义与区别 1、GET请求会向数据库发索取数据的请求,从而来获取信息,该请求就像数据库的select操作一样,只是用来查询一下数据,不会修改、增加数据,不会影响资源的内容,即该请求不会产生副作用。无论进行多少次操作,结果都是一样的。 2、与GET不同的是,PUT请求是向服务器端发送数据的,从而改变信息,该请求就像数据库的update操作一样,用来修改数据的内容,但是不会增加数据的种类等,也就是说无论进行多少次PUT操作,其结果并没有不同。 3、POST请求同PUT请求类似,都是向服务器端发送数据的,但是该请求会改变数据的种类等资源,就像数据库的insert操作一样

SpringBoot结合MyBatis Plus 自动生成代码

偶尔善良 提交于 2021-01-17 08:39:04
SpringBoot结合MyBatis Plus 自动生成代码 本来这一章要介绍Redis+AOP优化权限,可是发现还是需要先介绍一些MyBatis Plus自动生成代码 MyBatis Plus简介 MyBatis-Plus (opens new window)(简称 MP)是一个 MyBatis (opens new window)的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。 MyBatis Plus特性 无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑 损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作 强大的 CRUD 操作:内置通用 Mapper、通用 Service,仅仅通过少量配置即可实现单表大部分 CRUD 操作,更有强大的条件构造器,满足各类使用需求 支持 Lambda 形式调用:通过 Lambda 表达式,方便的编写各类查询条件,无需再担心字段写错 支持主键自动生成:支持多达 4 种主键策略(内含分布式唯一 ID 生成器 - Sequence),可自由配置,完美解决主键问题 支持 ActiveRecord 模式:支持 ActiveRecord 形式调用,实体类只需继承 Model 类即可进行强大的 CRUD 操作 支持自定义全局通用操作:支持全局通用方法注入( Write once,

java并发笔记一之java线程模型

点点圈 提交于 2021-01-14 06:24:49
警告⚠️:本文耗时很长,先做好心理准备 需要jni知识才能理解本篇文章(扫盲链接:https://www.jianshu.com/p/87ce6f565d37) java当中的线程和操作系统的线程是什么关系? 猜想: java thread —-对应-—> OS thread Linux关于操作系统的线程控制源码:pthread_create() Linux命令: man pthread_create int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine) ( void *), void *arg); 根据man配置的信息可以得出pthread_create会创建一个线程,这个函数是linux系统的函数,可以用C或者C++直接调用,上面信息也告诉程序员这个函数在pthread.h, 这个函数有四个参数: 然后我们来在linux上启动一个线程的代码: 创建一个后缀名.c的文件: // 引入头文件 #include <pthread.h> #include <stdio.h> // 定义一个变量,接受创建线程后的线程id pthread_t pid; // 定义子线程的主体函数 void * thread_entity( void * arg) { while (

从递归到非递归

跟風遠走 提交于 2021-01-14 00:37:07
递归确实是一种优雅强大的技术, 但是好多代码库都偏爱使用迭代,即使使用递归, 也都往往对递归调用的最大栈深度提前做预估或限制等。可能考虑递归性能一般低于迭代。有些问题,我们可能先是使用递归解决, 然后再转变成对应的迭代版本, 练习递归到迭代的转换,也有助于我们理解问题的递归结构。 树是典型的递归定义数据结构, 对应的操作也是递归的实现,如二叉树的遍历: type node struct { link [2]*node data rune } func preOrder(root *node) { if root != nil { fmt.Printf("%c ", root.data) preOrder(root.link[0]) //left subtree preOrder(root.link[1]) //right subtree } } func inOrder(root *node) { if root != nil { inOrder(root.link[0]) //left subtree fmt.Printf("%c ", root.data) inOrder(root.link[1]) //right subtree } } func postOrder(root *node) { if root != nil { postOrder(root.link[0])

MybatiPlus的BaseMapper和IService详解

大兔子大兔子 提交于 2021-01-13 17:23:44
一、MybatiPlus的BaseMapper和IService详解以及自定义实现 1.BaseMapper的源码 (1)Mapper.java的接口里面没有任何方法,只是定义了一个接口类。 public interface Mapper<T> { } (2)BaseMapper.java接口,该接口定义了很多用于操作数据库实现增删查改(CRUD)功能的函数,源码中已有说明。 /** * Mapper 继承该接口后,无需编写 mapper.xml 文件,即可获得CRUD功能 * <p>这个 Mapper 支持 id 泛型</p> * * @author hubin * @since 2016-01-23 */ public interface BaseMapper<T> extends Mapper<T> { /** * 插入一条记录 * * @param entity 实体对象 */ int insert(T entity); /** * 根据 ID 删除 * * @param id 主键ID */ int deleteById(Serializable id); /** * 根据 columnMap 条件,删除记录 * * @param columnMap 表字段 map 对象 */ int deleteByMap(@Param(Constants.COLUMN_MAP)

浏览器缓存知识归纳

别来无恙 提交于 2021-01-13 14:12:29
浏览器缓存(Browser Catching)是为了节约网络的资源加速浏览,浏览器在用户磁盘上对最近请求过的文档进行存储,当访问者再次请求这个页面时,浏览器就可以从本地磁盘显示文档,这样就可以加速页面的阅览。 —-摘自《百度百科》 浏览器缓存是提升网页性能的一大利器,但是,也是一把双刃剑。利用的好网页的性能会有大幅度提升,服务器的压力也会减小。利用的不好,也会遇到很多的问题。本文结合浏览器缓存的知识,结合真实案例进行分析,希望对读者有所帮助。 浏览器缓存分类 浏览器缓存分为强缓存和协商缓存,浏览器加载一个页面的简单流程如下: 浏览器先根据这个资源的http头信息来判断是否命中强缓存。如果命中则直接加在缓存中的资源,并不会将请求发送到服务器。 如果未命中强缓存,则浏览器会将资源加载请求发送到服务器。服务器来判断浏览器本地缓存是否失效。若可以使用,则服务器并不会返回资源信息,浏览器继续从缓存加载资源。 如果未命中协商缓存,则服务器会将完整的资源返回给浏览器,浏览器加载新资源,并更新缓存。 强缓存 命中强缓存时,浏览器并不会将请求发送给服务器。在Chrome的开发者工具中看到http的返回码是200,但是在Size列会显示为(from cache)。 强缓存是利用http的返回头中的Expires或者Cache-Control两个字段来控制的,用来表示资源的缓存时间。 Expires