JeeSite使用(一)大步跑起来
背景:近期准备换个工作,想对之前自己写的代码进行重构,选择了JeeSite
需求:跑起来才是硬道理
方法:1.官方文档有坑,别信他
2.官方文档有坑,别信他
3.官方文档有坑,别信他
一、检出项目
git clone https://gitee.com/thinkgem/jeesite4.git
二、个性化配置
1、修改文件夹名为 myjeesite
2、IDEA —— Import Project —— myjeesit/root/pom.xml —— NEXT —— 勾选【
Import Maven projects automatically
】—— 一路NEXT —— FINISH
3、配置application.yml
#======================================#
#========== Project settings ==========#
#======================================# # 产品或项目名称、软件开发公司名称
productName: myjeesite
companyName: ThinkGem # 产品版本、版权年份
productVersion: V4.1
copyrightYear: 2018 #是否演示模式
demoMode: false #======================================#
#========== Server settings ===========#
#======================================# server: port: 8980
servlet:
context-path: /jessite-web
tomcat:
uri-encoding: UTF-8 #======================================#
#========== Database sttings ==========#
#======================================# # 数据库连接
jdbc: # Mysql 数据库配置
type: mysql
driver: com.mysql.jdbc.Driver
url: jdbc:mysql://192.168.0.131:3306/jeesite?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull
username: root
password: root
testSql: SELECT 1 # # Oracle 数据库配置
# type: oracle
# driver: oracle.jdbc.driver.OracleDriver
# url: jdbc:oracle:thin:@127.0.0.1:1521/orcl
# username: jeesite
# password: jeesite
# testSql: SELECT 1 FROM DUAL # # Sql Server 数据库配置
# type: mssql
# driver: net.sourceforge.jtds.jdbc.Driver
# url: jdbc:jtds:sqlserver://127.0.0.1:1433/jeesite
# username: jeesite
# password: jeesite
# testSql: SELECT 1 # # PostgreSql 数据库配置
# type: postgresql
# driver: org.postgresql.Driver
# url: jdbc:postgresql://127.0.0.1:5432/jeesite
# username: jeesite
# password: jeesite
# testSql: SELECT 1 # # 连接信息加密
# encrypt:
#
# # 加密连接用户名
# username: false
# # 加密连接密码
# password: true
#
# # 数据库连接池配置
# pool:
#
# # 初始化连接数
# init: 1
# # 最小连接数
# minIdle: 3
# # 最大连接数
# maxActive: 20 # 数据库连接池配置
#
# # 获取连接等待超时时间,单位毫秒(1分钟)(4.0.6+)
# maxWait: 60000
#
# # 从池中取出连接前进行检验,如果检验失败,则从池中去除连接并尝试取出另一个(4.0.6+)
# testOnBorrow: false
# testOnReturn: false
#
# # 间隔多久才进行一次检测,检测需要关闭的空闲连接,单位毫秒(1分钟)(4.0.6+)
# timeBetweenEvictionRunsMillis: 60000
#
# # 一个连接在池中最小空闲的时间,单位毫秒(20分钟)(4.0.6+)
# minEvictableIdleTimeMillis: 1200000
# # 一个连接在池中最大空闲的时间,单位毫秒(30分钟)(4.1.2+)
# maxEvictableIdleTimeMillis: 1800000
#
# # 是否自动回收泄露的连接和超时时间,单位秒(35分钟)(4.0.6+)
# removeAbandoned: true
# removeAbandonedTimeout: 2100
#
# # Oracle 下会自动开启 PSCache,并指定每个连接上 PSCache 大小。若不指定,则与 maxActive 相同(4.1.5+)
# maxPoolPreparedStatementPerConnectionSize: ~ # # 多数据源名称列表,多个用逗号隔开,使用方法:@MyBatisDao(dataSourceName="ds2")
# dataSourceNames: ds2
#
# # 多数据源配置:ds2
# ds2:
# type: mysql
# driver: com.mysql.jdbc.Driver
# url: jdbc:mysql://127.0.0.1:3306/jeesite2?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull
# username: root
# password: 123456
# testSql: SELECT 1
# encrypt:
# username: false
# password: true
# pool:
# init: 1
# minIdle: 3
# maxActive: 20 # # JTA 分布式事务(v4.0.4+)
# jta:
# enabled: false
# 注意:如果报 oracle.jdbc.xa.OracleXAResource.recover 错误,则需要授权如下:
# grant select on sys.dba_pending_transactions to jeesite;
# grant select on sys.pending_trans$ to jeesite;
# grant select on sys.dba_2pc_pending to jeesite;
# grant execute on sys.dbms_system to jeesite; # # 事务超时时间,单位秒(30分钟)(v4.1.5+)
# transactionTimeout: 1800 # # 表名前缀
# tablePrefix: js_ #======================================#
#========== Spring settings ===========#
#======================================# spring: # 应用程序名称
application:
name: jeesite-web # 当前环境名称(注意:不可设置为 test 它是单元测试专用的名称)
profiles:
active: default # 打印横幅
main:
bannerMode: "off" # # Redis 连接参数 (RedisProperties)
# redis:
# host: 127.0.0.1
# port: 6379
# ssl: false
# database: 0
# password: 1234
# timeout: 2000
# lettuce:
# pool:
# # 最大空闲连接数
# maxIdle: 3
# # 最大活动连接数
# maxActive: 20 # # 缓存配置
# cache:
# # 缓存及会话共享(专业版)
# isClusterMode: false
# # 清理全部缓存按钮所清理的缓存列表
# clearNames: sysCache,corpCache,userCache,cmsCache,msgPcPoolCache # 日志配置
logging:
config: classpath:config/logback-spring.xml #======================================#
#========== System settings ===========#
#======================================# # 管理基础路径
#adminPath: /a # 前端基础路径
#frontPath: /f # 分页相关
#page:
#
# # 分页默认大小
# pageSize: 20 # 用户相关
#user:
#
# # 指定超级管理员编号(研发团队使用的账号)
# superAdminCode: system
#
# # 超级管理员获取菜单的最小权重(默认20;>=40二级管理员;>=60系统管理员;>=80超级管理员)
# superAdminGetMenuMinWeight: 40
#
# # 系统管理员角色编号(客户方管理员使用的角色)
# corpAdminRoleCode: corpAdmin
#
# # 用户类型配置信息(employee员工,member会员,btype往来单位,persion个人,expert专家,...),JSON 格式说明如下:
# # {"用户类型":{"dao":"Dao的Bean名称","loginView":"登录页面视图","indexView":"主框架页面视图,支持 redirect: 前缀"}}
# userTypeMap: >
# {
# "employee":{"dao":"employeeDao","loginView":"","indexView":"modules/sys/sysIndex"},
# "member":{"dao":"memberDao","loginView":"","indexView":"modules/sys/sysIndexMember"},
# "btype":{"dao":"btypeInfoDao","loginView":"","indexView":"modules/sys/sysIndexBtype"},
# "expert":{"dao":"expertDao","loginView":"","indexView":"modules/sys/sysIndexExpert"}
# }
#
# # 数据权限设置参数,可新增自定义数据权限,moduleCode: 针对模块, ctrlPermi: 权限类型, 0全部 1拥有权限 2管理权限
# dataScopes: >
# [{
# moduleCode: "core",
# ctrlPermi: "0",
# ctrlName: "机构权限",
# ctrlName_en: "Office",
# ctrlType: "Office",
# ctrlDataUrl: "/sys/office/treeData",
# chkboxType: {"Y":"ps","N":"ps"},
# expandLevel: -1,
# remarks: ""
# },{
# moduleCode: "core",
# ctrlName: "公司权限",
# ctrlName_en: "Company",
# ctrlType: "Company",
# ctrlPermi: "0",
# ctrlDataUrl: "/sys/company/treeData",
# chkboxType: {"Y":"ps","N":"ps"},
# expandLevel: -1,
# remarks: ""
# },{
# moduleCode: "core",
# ctrlName: "角色权限",
# ctrlName_en: "Role",
# ctrlType: "Role",
# ctrlPermi: "2",
# ctrlDataUrl: "/sys/role/treeData",
# chkboxType: {"Y":"ps","N":"ps"},
# expandLevel: -1,
# remarks: ""
# }]
#
# # 管理功能的控制权限类型(1拥有的权限 2管理的权限)(v4.1.5+)
# adminCtrlPermi: 2
#
# # 多租户模式(SAAS模式)(专业版)
# useCorpModel: false # 菜单管理
#menu:
# # 根据模块状态去更新相连的菜单状态(仅作为微服务时设为false)
# updateStatusByModuleStatus: true # 国际化管理(专业版)
#lang:
# enabled: false
#
# # 默认语言(4.1.3+)
# defaultLocale: zh_CN
# # 默认时区(4.1.3+)
# defaultTimeZone: GMT+08:00 # 任务调度(个人版)
#job:
# enabled: false
#
# # 是否自动启动任务调度(可关闭)
# autoStartup: true
#
# # 任务调度启动延迟设置(单位:秒)(建议设置项目启动完成后的时间)
# startupDelay: 60
#
# # 任务调度线程池
# threadPool:
# threadCount: 10
# threadPriority: 5
#
# # 调度设置,集群中每一个实例都必须使用相同的instanceName名称 (区分特定的调度器实例)
# # 每一个instanceId必须不同,设置AUTO则自动生成
# scheduler:
# instanceName: JeeSiteScheduler
# instanceId: AUTO
#
# # 任务调度集群设置
# jobStore:
# isClustered: true
# dataSourceName: job
# clusterCheckinInterval: 1000
#
# # 调度日志
# log:
# # 计划调度日志
# scheduler:
# enabled: true
# # 是否只保存错误日志
# errorLevel: true
# # 任务执行日志
# jobDetail:
# enabled: true
# # 是否只保存错误日志
# errorLevel: true
# # 计划触发日志
# trigger:
# enabled: false # 代码生成
#gen:
# enabled: true # 系统监控
#state:
# enabled: true #======================================#
#========= Framework settings =========#
#======================================# # Shiro 相关配置
#shiro:
#
# #索引页路径
# defaultPath: ${shiro.loginUrl}
#
# # 登录相关设置
# loginUrl: ${adminPath}/login
# logoutUrl: ${shiro.loginUrl}
# successUrl: ${adminPath}/index
#
## # Apereo CAS 相关配置(个人版)
## casServerUrl: http://127.0.0.1:8981/cas
## casClientUrl: http://127.0.0.1:8980/js
## loginUrl: ${shiro.casServerUrl}?service=${shiro.casClientUrl}${adminPath}/login-cas
## logoutUrl: ${shiro.casServerUrl}/logout?service=${shiro.loginUrl}
## successUrl: ${shiro.casClientUrl}${adminPath}/index
#
# # 简单 SSO 登录相关配置
# sso:
#
# # 如果启用/sso/{username}/{token}单点登录,请修改此安全key并与单点登录系统key一致。
# secretKey: ~
#
# # 是否加密单点登录安全Key
# encryptKey: true
#
# # 登录提交信息加密(如果不需要加密,设置为空即可)
# loginSubmit:
#
# # 登录提交信息安全Key,加密用户名、密码、验证码,后再提交(key设置为3个,用逗号分隔)
# secretKey: thinkgem,jeesite,com
#
# # 记住我密钥设置(设置为空则使用默认)
# rememberMe:
# # 密钥必须通过 com.jeesite.common.shiro.web.RememberMeManager 的main方法生成
# secretKey: ~
#
# # 指定获取客户端IP的Header名称,防止IP伪造。指定为空,则使用原生方法获取IP。
# remoteAddrHeaderName: X-Forwarded-For
#
# # 允许的请求方法设定,解决安全审计问题
# allowRequestMethods: GET,POST
#
# # 是否允许账号多地登录,如果设置为false,同一个设备类型的其它地点登录的相同账号被踢下线
# isAllowMultiAddrLogin: true
#
# # 是否允许多账号多设备登录,如果设置为false,其它地点登录的相同账号全部登录设备将被踢下线
# isAllowMultiDeviceLogin: true
#
# # 是否允许刷新主框架页,如果设置为false,刷新主页将导致重新登录。如安全性比较高的,如银行个人首页不允许刷新。
# isAllowRefreshIndex: true
#
# # 是否允许嵌入到外部网站iframe中(true:不限制,false:不允许)
# isAllowExternalSiteIframe: true
#
# # 是否允许跨域访问,如果允许,设置允许的域名,全部域名设置*号,如果不允许,此设置应该为空
## accessControlAllowOrigin: http://demo.jeesite.com
## accessControlAllowOrigin: '*'
#
# # 是否允许接收跨域的Cookie凭证数据
## accessControlAllowCredentials: true
#
# # 允许的网站来源地址,不设置为全部地址(避免一些跨站点请求伪造CSRF)
# allowReferers: http://127.0.0.1,http://localhost
# allowReferers: ~
#
# # 是否在登录后生成新的Session(默认false)
# isGenerateNewSessionAfterLogin: false
#
# # 内部系统访问过滤器,可设置多个允许的内部系统IP地址串,多个用逗号隔开
# innerFilter.allowIp: 127.0.0.1
#
# # URI 权限过滤器定义
# filterChainDefinitions: |
# /ReportServer/** = user
# ${adminPath}/** = user # Session 相关
#session:
#
# # 全局会话超时,单位:毫秒, 20m=1200000ms, 30m=1800000ms, 60m=3600000ms, 12h=43200000ms, 1day=86400000ms
# sessionTimeout: 1800000
#
# # 手机APP设备会话超时参数设置,登录请求参数加 param_deviceType=mobileApp 时有效
# mobileAppSessionTimeout: 43200000
#
# # 定时清理失效会话,清理用户直接关闭浏览器造成的孤立会话
# sessionTimeoutClean: 1200000
#
# # 会话唯一标识SessionId在Cookie中的名称。
# sessionIdCookieName: jeesite.session.id
#
# # 共享的SessionId的Cookie名称,保存到跟路径下,第三方应用获取。同一域名下多个项目时需设置共享Cookie的名称。
# #shareSessionIdCookieName: ${session.sessionIdCookieName} # MyBatis 相关
#mybatis:
#
# # @MyBatisDao、Aliases 扫描基础包,如果多个,用“,”分隔
# scanBasePackage: com.jeesite.modules
#
# # TypeHandlers 扫描基础包,如果多个,用“,”分隔
# scanTypeHandlersPackage: ~
#
# # Mapper文件刷新线程
# mapper:
# refresh:
# enabled: true
# delaySeconds: 60
# sleepSeconds: 3
# mappingPath: mappings # Web 相关
#web:
#
# # MVC 视图相关
# view:
#
# # 系统主题名称,主题视图优先级最高,如果主题下无这个视图文件则访问默认视图
# # 引入页面头部:'/themes/'+themeName+'/include/header.html'
# # 引入页面尾部:'/themes/'+themeName+'/include/footer.html'
# themeName: default
#
# # MVC 拦截器
# interceptor:
#
# # 后台管理日志记录拦截器
# log:
# enabled: true
# addPathPatterns: >
# ${adminPath}/**
# excludePathPatterns: >
# ${adminPath}/index,
# ${adminPath}/login,
# ${adminPath}/desktop,
# ${adminPath}/index/menuTree,
# ${adminPath}/sys/online/count,
# ${adminPath}/state/server/rtInfo,
# ${adminPath}/**/treeData,
# ${adminPath}/file/**,
# ${adminPath}/tags/*,
# ${adminPath}/msg/**
#
# # 前台自动切换到手机视图拦截器
# mobile:
# enabled: false
# addPathPatterns: >
# ${frontPath}/**
# excludePathPatterns: ~
#
# # 静态文件后缀,过滤静态文件,以提高访问性能。
# staticFile: .css,.js,.map,.png,.jpg,.gif,.jpeg,.bmp,.ico,.swf,.psd,.htc,.crx,.xpi,.exe,.ipa,.apk,.otf,.eot,.svg,.ttf,.woff,.woff2
#
# # 静态文件后缀,排除的url路径,指定哪些uri路径不进行静态文件过滤。
# staticFileExcludeUri: /druid/
#
# # 静态资源路径前缀,可做CDN加速优化
# staticPrefix: /static
#
# # 严格模式(更严格的数据安全验证)
# strictMode: false
#
# # 自定义正则表达式验证(主键、登录名)
# validator:
# id: '[a-zA-Z0-9_\-/#\u4e00-\u9fa5]{0,64}'
# user.loginCode: '[a-zA-Z0-9_\u4e00-\u9fa5]{4,20}'
#
# # 核心模块的Web功能(仅作为微服务时设为false)
# core:
# enabled: true
#
# # 在线API文档工具
# swagger:
# enabled: true # 错误页面500.html是否输出错误信息(正式环境,为提供安全性可设置为false)
#error:
# page:
# printErrorInfo: true #======================================#
#======== FileUpload settings =========#
#======================================# #file:
# enabled: true
#
# # 文件上传根路径,设置路径中不允许包含“userfiles”,在指定目录中系统会自动创建userfiles目录,如果不设置默认为contextPath路径
## baseDir: D:/jeesite
#
# # 上传文件的相对路径(支持:yyyy, MM, dd, HH, mm, ss, E)
# uploadPath: '{yyyy}{MM}/'
#
# # 上传单个文件最大字节(500M),在这之上还有 > Tomcat限制 > Nginx限制,等。
# maxFileSize: 500*1024*1024
#
# # 设置允许上传的文件后缀
# imageAllowSuffixes: .gif,.bmp,.jpeg,.jpg,.ico,.png,.tif,.tiff,
# mediaAllowSuffixes: .flv,.swf,.mkv,webm,.mid,.mov,.mp3,.mp4,.m4v,.mpc,.mpeg,.mpg,.swf,.wav,.wma,.wmv,.avi,.rm,.rmi,.rmvb,.aiff,.asf,.ogg,.ogv,
# fileAllowSuffixes: .doc,.docx,.rtf,.xls,.xlsx,.csv,.ppt,.pptx,.pdf,.vsd,.txt,.md,.xml,.rar,.zip,7z,.tar,.tgz,.jar,.gz,.gzip,.bz2,.cab,.iso,.ipa,.apk,
#
# # 允许上传的文件内容类型(图片、word、excel、ppt)防止修改后缀恶意上传文件(默认不启用验证)
## allowContentTypes: image/jpeg,image/gif,image/bmp,image/png,image/x-png,
## application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document,
## application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,
## application/vnd.ms-powerpoint,application/vnd.openxmlformats-officedocument.presentationml.presentation
#
# # 是否开启分片上传
# chunked: false
# # 分片大小,单位字节(10M)
# chunkSize: 10485760
# # 最大上传线程数
# threads: 1
#
# # 是否用文件流方式下载(支持断点续传)
# isFileStreamDown: true #视频转码
#video:
#
# # 视频格式转换 ffmpeg.exe 所放的路径
# ffmpegFile: d:/tools/video/ffmpeg-4.9/bin/ffmpeg.exe
## ffmpegFile: d:/tools/video/libav-10.6-win64/bin/avconv.exe
#
# # 视频格式转换 mencoder.exe 所放的路径
# mencoderFile: d:/tools/video/mencoder-4.9/mencoder.exe
#
# # 将mp4视频的元数据信息转到视频第一帧
# qtFaststartFile: d:/tools/video/qt-faststart/qt-faststart.exe #======================================#
#========== Message settings ==========#
#======================================# # 消息提醒中心(专业版)
#msg:
# enabled: true
#
# # 是否开启实时发送消息(保存消息后立即检查未读消息并发送),分布式部署下请单独配置消息发送服务,不建议开启此选项。
# realtime:
# # 是否开启
# enabled: true # # 推送失败次数,如果推送次数超过了设定次数,仍不成功,则放弃并保存到历史
# pushFailNumber: 3 # # 邮件发送参数
# email:
# beanName: emailSendService
# fromAddress: test@163.com
# fromPassword: 123456
# fromHostName: smtp.163.com
# sslOnConnect: false
# sslSmtpPort: 994
#
# # 短信网关
# sms:
# beanName: smsSendService
# url: http://localhost:80/msg/sms/send
# data: username=jeesite&password=jeesite.com
# prefix: 【JeeSite】
# suffix: ~ #======================================#
#========== Project settings ==========#
#======================================#
4、初始化数据库用web里的 init-data.sh 会报错,所以用官方推荐的方法处理(用完之后记得删,要不然哪天就又初始化了)
5、修改后执行可初始化数据库
6、启动项目(system————admin)
JeeSite使用(一)大步跑起来的更多相关文章
- DevOps让金融业数字化转型更敏捷 | 分享实录
以下为博云近期在活动中分享的关于<如何通过 DevOps 让数字化转型变得更加敏捷>的主题演讲实录. 01 金融科技进入VUCA时代 大家好,今天分享的题目是<如何通过 DevOps ...
- JeeSite环境搭建及运行和打包(master20161117)
涉及的软件: 1.phpStudy(主要用MySql) 2.maven3(用于依赖包,下面我将上传已经下载好所有依赖包的版本,保证运行正常) 具体操作: 0.前言 由于GitHub上的Release版 ...
- JeeSite试用
JeeSite主要定位于企业信息化领域.网址:http://www.oschina.net/p/jeesite 从描述来看,各种NB,下来看的最主要原因是最近还在更新,觉得有问题可以有一批人一起研究研 ...
- JeeSite如何正确连接SQL SERVER 数据库
JeeSite如何正确连接SQL SERVER 数据库 jeesite介绍 感谢jeesite项目的作者thinkgem. 没有你我也不会更改这数据源非了恁大的劲,,,,嘻嘻嘻说多了. JeeSite ...
- 解决jeesite开发java.lang.String cannot be cast to com.thinkgem.jeesite.modules.sys.security.SystemAuthorizingRealm$Principal问题
解决jeesite问题java.lang.String cannot be cast to SystemAuthorizingRealm问题 这些天在jeesite项目上进行二次开发,遇到许多莫名其妙 ...
- Jeesite开垦
1. userIndex里面,$ctx是在哪里定义的? 就是request.context 2. 增加新的包后,扫描配置修改1) spring-context.xml文件中,扫描非@controlle ...
- JeeSite(2):导入数据,进入系统
本文的原文连接是: http://blog.csdn.net/freewebsys/article/details/50954485 未经博主同意不得转载. 博主地址是:http://blog.csd ...
- 【Java】jeesite使用学习
初始配置环境及软件: 名称 版本 作用 Tomcat 7.0 微小型服务器,版本无所谓,装个Tomcat 9估计也没事 IntelliJ IDEA 2021.1.3 x64 2021.1.3 编译器, ...
- jq跑马灯效果
这几天公司产品有个无缝循环滚动的广告跑马灯要做,最开始想到的是<marquee>标签,但在PC端正常,在安卓广告屏上却怎么都跑不动,后来用的css3的animation,结果也是PC端及其 ...
随机推荐
- HTML设置span宽度
CSS中的 width 属性并不总是有效的如果对象是 inline 对象,width 属性就会被忽略,Firefox 和 IE 是遵循CSS标准,因而直接设置span宽度会无效. 解决:span { ...
- Thymeleaf 遇到的问题
1. 后台传递long类型的值作为 js 执行方法的参数,精准度失效解决办法 解决办法:用thymeleaf的拼接字符串方法来解决 例:<button class="btn btn-p ...
- Django 上下文管理器的应用
使用场景:模板继承可以减少页面内容的重复定义,实现页面内容的重用.个人博客右侧的导航栏都是继承base页面从而让代码得到最大程度的复用.但是当父模板中有动态数据的话,这些动态数据在子模版中是不会显示的 ...
- UVA 12672 Eleven(DP)
12672 - Eleven Time limit: 5.000 seconds In this problem, we refer to the digits of a positive integ ...
- go读写excel文件
首先,需要安装golang用来操作excel文档的类库: go get github.com/Luxurioust/excelize 一.excel文件创建与写入 package main impor ...
- 批量授一种权限给用户程序 plm enovia
set context user DanielDai;add program LUX_UserAssignment java execute immediate code 'import com.ma ...
- 割点的tarjan算法模板
基本思路: 朴素的思想是删除每一个点,然后去dfs,这样无疑会爆炸 换一种思路,怎样判断是割点呢,如果是根节点的话毫无疑问只要看子树的数目,但是如果不是根节点呢,不知大牛是怎样想到的 利用两个数组df ...
- C++ 浅谈 strlen 与 sizeof的区别
先举个栗子: 字符串数组跟字符串指针,然后分别使用sizeof跟strlen看输出结果. char strA[] = "2017-7-19"; char *strB = " ...
- SQL中的DQL查询语句
目录 1. DQL:查询语句 排序查询 聚合函数 分组查询 分页查询 2. 约束 3. 多表之间的关系 4. 范式 DQL:查询语句 1. 排序查询 语法:order by 子句 order by 排 ...
- 【leetcode】908. Smallest Range I
题目如下: 解题思路:简单的不能再简单的题目了,对于任意一个A[i]来说,其可能的最小的最大值是A[i]-K,最大的最小值是A[i]+K.遍历数组,求出所有元素中最大的最小值和最小的最大值,两者之差( ...