- 博客(11)
- 收藏
- 关注
原创 逻辑删除与唯一约束冲突问题的一个解决方案
一、问题现在很多系统都不允许真正删除数据库中的数据,而是通过引入删除标记字段的方式进行假删除,即我们通常说的逻辑删除。其它的数据查询都只查询标记为未删除的数据。目前流行的hibernate和 mybatis等框架也提供了对假删除的支持。据我的一些同行说,他们公司甚至不允许在程序中出现删除语句,甚至在实施时,分配给你的数据库用户就不具有删除数据的权限!但是逻辑删除会面临一个违反唯一约束的问题。比如一个商品表:create table goods ( id bigint primary...
2020-08-27 21:19:41 5826 12
原创 MySQL 5.8 初步使用
MySQL 5.8 新鲜出炉。但 MySQL 一贯的风格是,新版本一出,必定要整些妖蛾子出来折腾人。这个版本表现在两方面:1、默认的用户登录方式中,密码的加密方式改了(怎么个原理我也暂时没整明白),导致我若干年来一直使用的 Navicat 无法连接到5.8版本的 MySQL 服务器。后续版本的navicat 肯定会提供支持,但我们不能坐等。或者改用 mysql workbench,但那玩艺...
2019-02-20 11:28:51 6689
原创 理解Java 动态代理和AOP(可以自己动手写AOP框架!)
说到AOP,很容易就想到 spring AOP。因为它是AOP里最优秀的实现框架。但本文不打算讨论 spring AOP,只想把如何通过动态代理方式实现AOP思想说通。当然,整明白了这个道理,理解 spring AOP 也就简单了!首先我觉得需特别强调一下什么是面向接口编程!用本人的意思理解,面向接口编程,有两个方面的角色,一个是接口的实现者,一个是接口的使用者,而接口本质上是一种服务规范...
2018-11-06 11:10:49 1466 1
原创 MySQL 自动维护分区表的分区
一、需求这是一个设备监控系统中用到的数据库。一个设备实时数据表,用于存储系统采集到的设备实时数据,如电压、电流、温度、功率等。数据采集和存储周期最快是一分钟,系统要求支持不低于10W台设备的监控,历史数据存储不低于10年。历史数据查询一般是以时间范围和设备Id作为查询条件,生成报表。从需求上看,历史数据表的数据量将会是非常大的。没有别的办法,必须把历史数据表作分区,否则无法支撑那么大的数据量的查询...
2018-03-07 16:03:49 3819 1
原创 CentOS7 下手动配置服务,以指定用户启动进程
一般配置 systemctl 服务时,会以 root 用户启动进程。但这样做不够安全,特别是象 tomcat 这样的进程,一旦Java Web程序没有写好,给黑客一个漏洞,会让黑客获得部分系统权限。而如果用一般用户启动进程,并作好用户的权限管理,则可以很大程序减少这方面的危害。以 tomcat 为例,在CentOS上配置为系统服务,随操作系统启动而启动1、在 /etc/sy
2017-08-15 17:04:05 27959
原创 JAVA本地方法调用(3)对象参数传递
JAVA可以将一个对象作为参数传递给本地方法,在本地方法中也可以访问这个对象的属性。不过在本地方法中调用这个对象的方法可就不会象在 JAVA 中那么随心所欲了。它必须通过本地方法传进来的第一个参数 env 进行调用,这种方式很象在JAVA中通过反射来创建对象、调用方法。举例说明:1、创建一个类,这个类的对象将作为参数传到本地方法中。package test; p
2011-11-01 16:07:10 2822
原创 JAVA本地方法调用(2)数组参数传递
JAVA可以把数组作为参数传递给本地方法,在本地方法中可以访问数组中的元素。不过,在本地方法却不能直接访问传进来的数组,需要进行一定的转换。举例说明:1、创建 JAVA 类:package test; public class Test { public native void copy(int[] a, int[] b); public stat
2011-11-01 15:50:35 2695
原创 JAVA本地方法调用(1)linux环境下
java 可以通过本地方法调用 C 语言写的子程序。不过,C中的子程序并不能直接被JAVA调用,而必须由JAVA定义对C的访问接口。当然,我说的这个接口不是java语言中的接口,而是java和C语言之间的调用规范。1、写一个 java 类,在类中定义一个本地方法package test; public class Add { public native in
2011-11-01 14:53:50 1707 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人