06 2022 档案

摘要:一、geospatial GEOADD 将指定的地理空间位置(纬度、经度、名称)添加到指定的key中。 GEOADD china:city 116 39 beijing 121 31 shanghai GEOPOS 从key里返回所有给定位置元素的位置(经度和纬度)。 GEOPOS china:ci 阅读全文
posted @ 2022-06-19 16:34 Epiphany8Z 阅读(55) 评论(0) 推荐(0) 编辑
摘要:一. String 1. append key1 “hello” 往key1为键的值后面追加“hello”,如果key1不存在,则创建key1为hello 2. strlen key1 查看key1值的长度 3. incr view 加一 4. decr view 减一 5. increby 10 阅读全文
posted @ 2022-06-19 16:28 Epiphany8Z 阅读(27) 评论(0) 推荐(0) 编辑
摘要:1. select 3 切换到3号数据库 (默认有16个数据库,默认从0开始,即0-15) 2. DBSIZE 查看当前数据库的使用情况 3. keys * 查看所有的key 4. flushdb 清空当前数据库内容 5. flushall 清空所有数据库 6. exist a 是否存在key为a 阅读全文
posted @ 2022-06-19 16:24 Epiphany8Z 阅读(21) 评论(0) 推荐(0) 编辑
摘要:缓存 MyBatis 内置了一个强大的事务性查询缓存机制,它可以非常方便地配置和定制。 为了使它更加强大而且易于配置,我们对 MyBatis 3 中的缓存实现进行了许多改进。 默认情况下,只启用了本地的会话缓存,它仅仅对一个会话中的数据进行缓存。 要启用全局的二级缓存,只需要在你的 SQL 映射文件 阅读全文
posted @ 2022-06-18 21:45 Epiphany8Z 阅读(29) 评论(0) 推荐(0) 编辑
摘要:Log4j: Log4j是Apache的一个开源项目 控制日志信息输送的目的地是控制台、文件、GUI组件,甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等; 控制每一条日志的输出格式; 通过定义每一条日志信息的级别,制日志的生成过程。 通过一个配置文件来灵活地进行配置,而不需要 阅读全文
posted @ 2022-06-16 00:44 Epiphany8Z 阅读(24) 评论(0) 推荐(0) 编辑
摘要:标准日志工厂:STDOUT_LOGGING 通过配置mybaits-config.xml → <settings/> → <setting name="logImpl" value="STDOUT_LOGGING"/> <settings> <setting name="logImpl" value 阅读全文
posted @ 2022-06-15 23:03 Epiphany8Z 阅读(19) 评论(0) 推荐(0) 编辑
摘要:当我们的数据库字段和实体类字段没有保持一直时,会发生查询到某些字段为空的情况。 这时,就要用到ResultMap了。 Demo: 1. User表 2. User.java package org.zx.pojo; public class User { private long id; priva 阅读全文
posted @ 2022-06-15 20:56 Epiphany8Z 阅读(21) 评论(0) 推荐(0) 编辑
摘要:理解我们之前讨论过的不同作用域和生命周期类别是至关重要的,因为错误的使用会导致非常严重的并发问题。 提示:对象生命周期和依赖注入框架 依赖注入框架可以创建线程安全的、基于事务的 SqlSession 和映射器,并将它们直接注入到你的 bean 中,因此可以直接忽略它们的生命周期。 如果对如何通过依赖 阅读全文
posted @ 2022-06-15 19:52 Epiphany8Z 阅读(114) 评论(0) 推荐(0) 编辑
摘要:映射器(mappers) 既然 MyBatis 的行为已经由上述元素配置完了,我们现在就要来定义 SQL 映射语句了。 但首先,我们需要告诉 MyBatis 到哪里去找到这些语句。 在自动查找资源方面,Java 并没有提供一个很好的解决方案,所以最好的办法是直接告诉 MyBatis 到哪里去找映射文 阅读全文
posted @ 2022-06-15 15:38 Epiphany8Z 阅读(119) 评论(0) 推荐(0) 编辑
摘要:数据库厂商标识(databaseIdProvider) MyBatis 可以根据不同的数据库厂商执行不同的语句,这种多厂商的支持是基于映射语句中的 databaseId 属性。 MyBatis 会加载带有匹配当前数据库 databaseId 属性和所有不带 databaseId 属性的语句。 如果同 阅读全文
posted @ 2022-06-15 15:37 Epiphany8Z 阅读(77) 评论(0) 推荐(0) 编辑
摘要:环境配置(environments) MyBatis 可以配置成适应多种环境,这种机制有助于将 SQL 映射应用于多种数据库之中, 现实情况下有多种理由需要这么做。例如,开发、测试和生产环境需要有不同的配置;或者想在具有相同 Schema 的多个生产数据库中使用相同的 SQL 映射。还有许多类似的使 阅读全文
posted @ 2022-06-15 15:36 Epiphany8Z 阅读(171) 评论(0) 推荐(0) 编辑
摘要:插件(plugins) MyBatis 允许你在映射语句执行过程中的某一点进行拦截调用。默认情况下,MyBatis 允许使用插件来拦截的方法调用包括: Executor (update, query, flushStatements, commit, rollback, getTransaction 阅读全文
posted @ 2022-06-15 15:35 Epiphany8Z 阅读(194) 评论(0) 推荐(0) 编辑
摘要:对象工厂(objectFactory) 每次 MyBatis 创建结果对象的新实例时,它都会使用一个对象工厂(ObjectFactory)实例来完成实例化工作。 默认的对象工厂需要做的仅仅是实例化目标类,要么通过默认无参构造方法,要么通过存在的参数映射来调用带有参数的构造方法。 如果想覆盖对象工厂的 阅读全文
posted @ 2022-06-15 15:35 Epiphany8Z 阅读(47) 评论(0) 推荐(0) 编辑
摘要:类型处理器(typeHandlers) MyBatis 在设置预处理语句(PreparedStatement)中的参数或从结果集中取出一个值时, 都会用类型处理器将获取到的值以合适的方式转换成 Java 类型。下表描述了一些默认的类型处理器。 提示 从 3.4.5 开始,MyBatis 默认支持 J 阅读全文
posted @ 2022-06-15 15:34 Epiphany8Z 阅读(69) 评论(0) 推荐(0) 编辑
摘要:类型别名(typeAliases) 类型别名可为 Java 类型设置一个缩写名字。 它仅用于 XML 配置,意在降低冗余的全限定类名书写。例如: <typeAliases> <typeAlias alias="User" type="com.zx.pojo.User"/> </typeAliases 阅读全文
posted @ 2022-06-15 15:33 Epiphany8Z 阅读(360) 评论(0) 推荐(0) 编辑
摘要:设置(settings) 这是 MyBatis 中极为重要的调整设置,它们会改变 MyBatis 的运行时行为。 下表描述了设置中各项设置的含义、默认值等。 设置名 描述 有效值 默认值 cacheEnabled 全局性地开启或关闭所有映射器配置文件中已配置的任何缓存。 true | false t 阅读全文
posted @ 2022-06-15 15:32 Epiphany8Z 阅读(209) 评论(0) 推荐(0) 编辑
摘要:属性(properties) 这些属性可以在外部进行配置,并可以进行动态替换。你既可以在典型的 Java 属性文件(config.properties)中配置这些属性,也可以在 properties 元素的子元素中设置。例如: <properties resource="org/mybatis/ex 阅读全文
posted @ 2022-06-15 15:05 Epiphany8Z 阅读(919) 评论(0) 推荐(0) 编辑
摘要:配置的结构树:(在xml中必须有序书写) configuration(配置) properties(属性) settings(设置) typeAliases(类型别名) typeHandlers(类型处理器) objectFactory(对象工厂) plugins(插件) environments( 阅读全文
posted @ 2022-06-15 14:56 Epiphany8Z 阅读(23) 评论(0) 推荐(0) 编辑
摘要:一、参数类型Map 1. UserMapper接口 public User getById2(Map map); public Integer updateById2(Map map); 2. UserMapper.xml <!--map作为参数--> <select id="getById2" p 阅读全文
posted @ 2022-06-15 14:22 Epiphany8Z 阅读(179) 评论(0) 推荐(0) 编辑
摘要:1. UserMapper接口 public interface UserMapper { public List<User> getList(); public User getById(Integer id); public Integer insertOne(User user); publi 阅读全文
posted @ 2022-06-15 13:48 Epiphany8Z 阅读(35) 评论(0) 推荐(0) 编辑
摘要:流程:搭建环境->导入MyBaits->编写代码->测试 一、搭建环境 新键数据库及user表,并插入几条数据 CREATE DATABASE MyBaits; USE MyBaits; CREATE TABLE `user`( `id` INT UNSIGNED AUTO_INCREMENT, ` 阅读全文
posted @ 2022-06-15 01:10 Epiphany8Z 阅读(24) 评论(0) 推荐(0) 编辑
摘要:来源:https://mybatis.org/mybatis-3/zh/index.html 简介: MyBatis 是一款优秀的持久层框架 它支持自定义 SQL、存储过程以及高级映射。 MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。 MyBatis 可以通过简单的 阅读全文
posted @ 2022-06-14 18:13 Epiphany8Z 阅读(24) 评论(0) 推荐(0) 编辑
摘要:本章节我们主要介绍 MySQL 的运算符及运算符的优先级。 MySQL 主要有以下几种运算符: 算术运算符 运算符作用 + 加法 - 减法 * 乘法 / 或 DIV 除法 % 或 MOD 取余 比较运算符 符号描述备注 = 等于 <>, != 不等于 > 大于 < 小于 <= 小于等于 >= 大于等 阅读全文
posted @ 2022-06-14 02:04 Epiphany8Z 阅读(35) 评论(0) 推荐(0) 编辑
摘要:有些 MySQL 数据表中可能存在重复的记录,有些情况我们允许重复数据的存在,但有时候我们也需要删除这些重复的数据。 一、防止出现重复数据(此时表中没有重复数据) 1. 创建一个person表(双主键约束方式) CREATE TABLE person ( first_name CHAR(20) NO 阅读全文
posted @ 2022-06-14 01:53 Epiphany8Z 阅读(303) 评论(0) 推荐(0) 编辑
摘要:我们有时想知道MySQL以下三种信息: 查询结果信息: SELECT, UPDATE 或 DELETE语句影响的记录数。 数据库和数据表的信息: 包含了数据库及数据表的结构信息。 MySQL服务器信息: 包含了数据库服务器的当前状态,版本号等。 命令 描述 SELECT VERSION( ) 服务器 阅读全文
posted @ 2022-06-14 01:08 Epiphany8Z 阅读(25) 评论(0) 推荐(0) 编辑
摘要:复制MySQL的数据表,包括表的结构,索引,默认值等。 如果仅仅使用CREATE TABLE ... SELECT 命令,是无法实现的。 步骤如下: 使用 SHOW CREATE TABLE 命令获取创建数据表(CREATE TABLE) 语句,该语句包含了原数据表的结构,索引等。 复制以下命令显示 阅读全文
posted @ 2022-06-14 01:07 Epiphany8Z 阅读(73) 评论(0) 推荐(0) 编辑
摘要:MySQL 临时表在我们需要保存一些临时数据时是非常有用的。临时表只在当前连接可见,当关闭连接时,Mysql会自动删除表并释放所有空间。 相比于创建表,多了一个TEMPORARY CREATE TEMPORARY TABLE IF NOT EXISTS `student`( `id` INT UNS 阅读全文
posted @ 2022-06-13 22:29 Epiphany8Z 阅读(106) 评论(0) 推荐(0) 编辑
摘要:MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度。 拿汉语字典的目录页(索引)打比方,我们可以按拼音、笔画、偏旁部首等排序的目录(索引)快速查找到需要的字。 索引分单列索引和组合索引。 单列索引,即一个索引只包含单个列,一个表可以有多个单列索引,但这不是组 阅读全文
posted @ 2022-06-13 22:25 Epiphany8Z 阅读(23) 评论(0) 推荐(0) 编辑
摘要:MySQL 事务主要用于处理操作量大,复杂度高的数据。比如说,在人员管理系统中,你删除一个人员,你既需要删除人员的基本资料,也要删除和该人员相关的信息,如信箱,文章等等,这样,这些数据库操作语句就构成一个事务! 在 MySQL 中只有使用了 Innodb 数据库引擎的数据库或表才支持事务。 事务处理 阅读全文
posted @ 2022-06-13 22:20 Epiphany8Z 阅读(26) 评论(0) 推荐(0) 编辑
摘要:下表中的正则模式可应用于 REGEXP 操作符中。 模式 描述 ^ 匹配输入字符串的开始位置。如果设置了 RegExp 对象的 Multiline 属性,^ 也匹配 '\n' 或 '\r' 之后的位置。 $ 匹配输入字符串的结束位置。如果设置了RegExp 对象的 Multiline 属性,$ 也匹 阅读全文
posted @ 2022-06-13 22:15 Epiphany8Z 阅读(22) 评论(0) 推荐(0) 编辑
摘要:对于NULL值处理,MySQL提供了三大运算符: IS NULL: 当列的值是 NULL,此运算符返回 true。 IS NOT NULL: 当列的值不为 NULL, 运算符返回 true。 <=>: 比较操作符(不同于 = 运算符),当比较的的两个值相等或者都为 NULL 时返回 true。 关于 阅读全文
posted @ 2022-06-13 22:08 Epiphany8Z 阅读(67) 评论(0) 推荐(0) 编辑
摘要:在实际的应用中经常需要从多个数据表中读取数据。此时就使用到了表连接。 JOIN 按照功能大致分为如下三类: INNER JOIN(内连接,或等值连接):获取两个表中字段匹配关系的记录。 LEFT JOIN(左连接):获取左表所有记录,即使右表没有对应匹配的记录。 RIGHT JOIN(右连接): 与 阅读全文
posted @ 2022-06-13 01:33 Epiphany8Z 阅读(48) 评论(0) 推荐(0) 编辑
摘要:GROUP BY 语句根据一个或多个列对结果集进行分组。在分组的列上我们可以使用 COUNT, SUM, AVG,等函数。 语法: SELECT column_name, function(column_name) FROM table_name WHERE column_name operator 阅读全文
posted @ 2022-06-13 01:16 Epiphany8Z 阅读(29) 评论(0) 推荐(0) 编辑
摘要:语法: SELECT field1, field2,...fieldN FROM table_name1, table_name2... ORDER BY field1 [ASC [DESC][默认 ASC]], [field2...] [ASC [DESC][默认 ASC]] 可以使用任何字段来作 阅读全文
posted @ 2022-06-13 01:03 Epiphany8Z 阅读(21) 评论(0) 推荐(0) 编辑
摘要:UNION 操作符用于连接两个以上的 SELECT 语句的结果组合到一个结果集合中。多个 SELECT 语句会删除重复的数据。 语法: SELECT expression1, expression2, ... expression_n FROM tables [WHERE conditions] U 阅读全文
posted @ 2022-06-13 00:34 Epiphany8Z 阅读(22) 评论(0) 推荐(0) 编辑
摘要:语法: SELECT field1, field2,...fieldN FROM table_name WHERE field1 LIKE condition1 [AND [OR]] filed2 = 'somevalue' 你可以在 WHERE 子句中指定任何条件。 你可以在 WHERE 子句中使 阅读全文
posted @ 2022-06-13 00:31 Epiphany8Z 阅读(49) 评论(0) 推荐(0) 编辑
摘要:语法: SELECT field1, field2,...fieldN FROM table_name1, table_name2... [WHERE condition1 [AND [OR]] condition2..... 查询语句中你可以使用一个或者多个表,表之间使用逗号, 分割,并使用WHE 阅读全文
posted @ 2022-06-13 00:27 Epiphany8Z 阅读(165) 评论(0) 推荐(0) 编辑
摘要:1. 插入数据 INSERT INTO table_name ( field1, field2,...fieldN ) VALUES ( value1, value2,...valueN ); 注意:如果数据是字符型,必须使用单引号或者双引号,如:"value"。 2. 删除数据 DELETE FR 阅读全文
posted @ 2022-06-13 00:22 Epiphany8Z 阅读(157) 评论(0) 推荐(0) 编辑
摘要:1. 创建数据表: CREATE TABLE table_name (column_name column_type); demo: CREATE TABLE IF NOT EXISTS `student`( `id` INT UNSIGNED AUTO_INCREMENT, `name` VARC 阅读全文
posted @ 2022-06-13 00:09 Epiphany8Z 阅读(41) 评论(0) 推荐(0) 编辑
摘要:数值类型 类型大小范围(有符号)范围(无符号)用途 TINYINT 1 Bytes (-128,127) (0,255) 小整数值 SMALLINT 2 Bytes (-32 768,32 767) (0,65 535) 大整数值 MEDIUMINT 3 Bytes (-8 388 608,8 38 阅读全文
posted @ 2022-06-12 23:37 Epiphany8Z 阅读(26) 评论(0) 推荐(0) 编辑
摘要:操作 命令 创建数据库 create databse 数据库名; 删除数据库 drop database 数据库名; 选择数据库 use 数据库名; 阅读全文
posted @ 2022-06-12 23:29 Epiphany8Z 阅读(14) 评论(0) 推荐(0) 编辑
摘要:模拟ORM的类注解和属性注解 //模拟ORM public class Demo11 { public static void main(String[] args) { Class clazz = Role.class; //获取类的注解信息 Annotation[] classAnnotatio 阅读全文
posted @ 2022-06-12 03:04 Epiphany8Z 阅读(20) 评论(0) 推荐(0) 编辑
摘要:Java采用泛型擦除的机制来引入泛型,Java中的泛型仅仅是给编译器javac使用的,确保数据的安全性和免去强制类型转换问题,但是,一旦编译完成,所有和泛型有关的类型全部擦除 为了通过反射操作这些类型,Java新增了ParameterizedType, GenericArrayType, TypeV 阅读全文
posted @ 2022-06-12 02:30 Epiphany8Z 阅读(23) 评论(0) 推荐(0) 编辑
摘要:1.普通方式 2.反射但不关闭安全检查的方式方式 3.反射并关闭安全检查的方式 public class Demo09 { public static void main(String[] args) throws ClassNotFoundException, InvocationTargetEx 阅读全文
posted @ 2022-06-12 02:03 Epiphany8Z 阅读(41) 评论(0) 推荐(0) 编辑
摘要:创建类的对象:调用Class对象的newlnstance()方法 类必须有一个无参数的构造器。 类的构造器的访问权限需要足够 思考:难道没有无参的构造器就不能创建对象了吗?并非如此,因此,只要在操作的时候明确的调用类中的构造器,并将参数传递进去之后,就可以实例化操作。 步骤如下: 通过Class类的 阅读全文
posted @ 2022-06-12 01:50 Epiphany8Z 阅读(78) 评论(0) 推荐(0) 编辑
摘要:通过反射获取运行时类的完整结构Field、Method、Constructor、Superclass、Interface、Annotation public class Demo07 { public static void main(String[] args) throws ClassNotFo 阅读全文
posted @ 2022-06-12 00:18 Epiphany8Z 阅读(21) 评论(0) 推荐(0) 编辑
摘要:类加载器作用是用来把类(class)装载进内存的。JVM规范定义了如下类型的类的加载器。 引导类加载器:用C++编写的,是JVM自带的类加载器,负责Java平台核心库(rt.jar),用来装载核心类库。该加载器无法直接获取 扩展类加载器:负责jre/lib/ext目录下的jar包或-D java.e 阅读全文
posted @ 2022-06-11 00:10 Epiphany8Z 阅读(41) 评论(0) 推荐(0) 编辑
摘要:发生类的初始化(主动): 当虚拟机启动,先初始化main方法所在的类 new一个类的对象 调用类的静态成员(除了final常量)和静态方法 使用java.lang.reflect包的方法对类进行反射调用 当初始化一个类,如果其父类没有被初始化,则先会初始化它的父类 不发生类的初始化(被动): 当访问 阅读全文
posted @ 2022-06-10 23:52 Epiphany8Z 阅读(28) 评论(0) 推荐(0) 编辑
摘要:加载:将class文件字节码内容加载到内存中,并将这些静态数据转换成方法区的运行时数据结构然后生成一个代表这个类的java.lang.Class对象. 链接:将Java类的二进制代码合并到JVM的运行状态之中的过程。 验证:确保加载的类信息符合JVM规范,没有安全方面的问题 准备:正式为类变量(st 阅读全文
posted @ 2022-06-10 22:49 Epiphany8Z 阅读(23) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2022-06-10 22:47 Epiphany8Z 阅读(8) 评论(0) 推荐(0) 编辑
摘要:public class Demo03 { public static void main(String[] args) { //1.对象 Class c1 = Object.class; //2.接口 Class c2 = Comparable.class; //3.一维数组 Class c3 = 阅读全文
posted @ 2022-06-10 22:06 Epiphany8Z 阅读(52) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示