- 浏览: 41871 次
- 性别:
- 来自: 南京
最新评论
-
drinkjava2:
再补充:为了避免插入新节点时对后续节点进行加1操作影响性能,可 ...
发明了一种新的树结构数据库存储方案 -
sp42:
征求IOC/AOP微形开源项目jBeanBox合作者 -
drinkjava2:
anxin1225 写道 大大,你果然骨骼精异。我简单考虑 ...
发明了一种新的树结构数据库存储方案 -
anxin1225:
大大,你果然骨骼精异。我简单考虑了一下,发现这种实现思路 ...
发明了一种新的树结构数据库存储方案 -
drinkjava2:
怎么都反映看不懂? 算你狠,拿把尺来: 按"简单粗暴 ...
发明了一种新的树结构数据库存储方案
文章列表
本文介绍的方法基于多叉树的前序遍历序列,是所有数据库树结构存储方案中查询子树速度最快的方案。最早发表在这里"http://drinkjava2.iteye.com/blog/2353983",但那篇文章太啰嗦了,这是整理后的精简版,其实原理很简单,几 ...
历时一年开发,Java持久层工具jSqlBox终于推出第一个正式版本1.0.0版。详见项目地址:https://gitee.com/drinkjava2/jSqlBox, 以下为项目内容简介:
jSqlBox是一个Java持久层工具,设计目标是用来代替目前的Hibernate/MyBatis/JdbcTemplate/DbUtils等持久层工具。jSqlBox的主要特点:
模块化设计。 jSqlBox将Jdbc工具、事务、方言和数据库脚本生成等功能分成子模块,由不同的子项目实现,每个子项目都可以脱离jSqlBox存在,甚至可供其它ORM工具使用,避免重复发明轮子。同时jSqlBox的 ...
因为在做持久层工具开发,现总结一下各种SQL的写法,也算是清晰一下自已的思路:
第一种写法
public void someMethod(){
try
Connection conn=...;
conn.setAutoCommit(false);
PreparedStatement pst=...;
ResultSet rs= executeSomeSql("some sql... ...
(2018.1.21注:本文已过时,又找到一种好一点的利用注释支持多行字符串的方法,见https://my.oschina.net/drinkjava2/blog/1611028 )
从BeetlSql项目将SQL全放在Beetl模板里得到启发,又想到一个比较偏门的用法。以下代码实测通过,详见jSqlBox项目的test\examples\multipleLineSQL\SqlTemplateDemo.java源程序,此示例特殊点在于:运行时必须将此源程序拷贝一份在类根目录(或Maven管理的Resource目录下), 并将后缀".java"改为".sql&quo ...
jDialects(https://git.oschina.net/drinkjava2/jdialects)是一个收集了大多数数据库方言的Java小项目,通常可用来创建分页SQL和建表DDL语句,可根据不同的数据库方言生成不同的SQL。目前jDialects支持75种数据库方言,包括Hibernate中没有的SQLLite和Access等。jDialects需要 Java7或以上版本支持。
jDialects起初是为了jSqlBox项目而开发的,但它本身是一个独立的项目(发布包只有90k大小且无其它第三方依赖),只要用到了SQL,就可以利用它来创建对应数据库的分页SQL和DDL。例如使用了纯 ...
最近在开发jSqlBox过程中,想研究一下树形结构和VO对象树的转换,突然发现一种新的树结构数据库存储方案,在网上搜索了一下,没有找到雷同的(也可能是我花的时间不够)方案,现介绍如下:
目前常见的树形结构数据库存储方案有以下四种,但是都存在一定问题:
1)Adjacency List::记录父节点。优点是简单,缺点是访问子树需要遍历,发出许多条SQL,对数据库压力大。
2)Path Enumerations:用一个字符串记录整个路径。优点是查询方便,缺点是插入新记录时要手工更改此节点以下所有路径,很容易出错。
3)Closure Table:专门一张表维护Path,缺点是占用空间大,操作不直观 ...
顺便说一下一个老帖子:http://www.blogjava.net/GandofYan/archive/2006/05/30/48954.html关于domain object的讨论,其中的领域逻辑用E-R建模来表示是这样的:
Bid的建立需要满足3个约束条件,仅此而已。
那个贴子中有这样一句 "this.getBids().add(newBid); 在没有Hibernate/JDO这类可以实现“透明的持久化”工具出现之前,这类domain logic是无法实现的"。事实上,如果采用E-R建模,这个问题压根就不存在,至少用这个例子来说明透明持久化(再说一遍透明持久化的本 ...
下面这个类默认使用JDK自带的logger,如系统存在org.apache.commons.logging则动态加载并用反射来调用,如进一步,系统中还存在Log4j及其配置,则自动使用Log4j代替commons logging, 这样程序包发布时根本无须将commons logging或log4j放在POM中。
package com.github.drinkjava2.jsqlbox;
import java.lang.reflect.Method;
import java.util.logging.Level;
import java.util.logging.Logger;
...
再摘一段JDBC多条件查询的单元测试实例(源码可在jSQLBox项目下找到),大家知道在条件不确定的情况下,执行动态拼接生成的SQL,即要保证SQL安全性,防止SQL注入,又要保证编码的简洁性,这一直是一个头痛的问题。 jSQLBox利用ThreadLocal解决了这个问题:
Java代码 收藏代码
public class ConditionQueryTest {
@Before
public void setup() {
TestPrepare.dropAndRecreateTables();
...
冒个泡,jSQLBox项目已启动,欢迎有兴趣的加入:https://github.com/drinkjava2/jSQLBox
jSQLBox项目要完成的基本功能有: CRUD方法、 JDBC包装、一级缓存、脏检查、纯JAVA方式配置,配置可动态生成修改。
在jSQLBox编写过程中,刚完成对JDBC的包装,突然发现一种超简单的将SQL包装成PrepraredStatement的方法,利用ThreadLocal将参数暂存,从而将字符串连接的SQL自动包装为PreparedStatement从而实现防SQL注入,提高性能,且不损害SQL的可读性。 这个比较好, 如果软件怎么写也可以申请专利的话, ...
前言:最近jBeanBox项目收尾,感觉用Java初始化块来代替Spring的XML配置这种模式挺好的,手中有了这把锤子,于是看什么都象钉子,这不,又看上了Hibernate, SSH三兄弟,紧跟在Spring后面,也是用XML或Annotation配置,配置也是固定的 ...
Spring的问题主要是太复杂、配置方式太多,XML配置不支持运行期修改,不支持IDE类名重构、方法提示。jBeanBox是一个单文件源码只有650行的IOC/AOP微型项目,特点是用JAVA代替XML, 简单易懂。目前版本更新到2.0版,添加了AOP联盟和AspectJ接口支持以与其它AOP工具兼容。 声明式事务是AOP的典型运用场合,基本原理是利用线程局部变量来管理连接,本想自已写一个简化版的,但一来水平有限,二来AOP的特点就是服务和内核是插拔式设计,内核和服务可以单独使用。Spring中提供的其它业务支持如 ORM、JTA、JMS等理论上都可以抽取出来在其它IOC/AOP工具上使用,如果 ...
这是十几年前的一些想法,现在看来有些已过时,有些成了预言。
很不习惯带着脚镣跳舞,时间长了会形成条件反射怎么办。
1.人还会进化吗?
2.什么是生命?
3.什么是我?
4.共主义不可能实现?
5.人长生不死的唯一途径?
6.人造不出比自已更聪明的机器?
7.作为创造者,人是不会让聪明的机器夺得统治权的?
8.A之后是B
9.人=物质+人脑神经网络构成方式
10. 生命进化的最终形式?
11.关于时间机器
12.机器智能的存在形式
13.构造智能生命系统的方法及其内部规律之若干猜想
14.意识是什么?
15.为什么机器人不可能有意识?
16.关于围棋,关于人机对话
17.关于生命保护组织
18. ...
理论太枯燥了,以下是我平时的一些科幻构思,全是与人工生命有关的,因本人文笔太差,只能给出个草草的框架 (注:前三个构思曾发表在96年第二期的科幻世界上)。
☆绑架
当生命可能以信息方式传递,队长带人在地底打算拦截敌方将领的中微子波,以实现绑架其之目的,但接收器坏了,最后队长决定用自已的大脑来接收这个信息,于是,当信号被拦截后,队长就变成了敌人的将领......
(自评:这算是生命复制的一个插曲吧,“我”为什么不是“你”?,区别只是脑细胞的排列方式不一样而已。)
☆左和右
左和右是某个蓝球队里的主力,他们两人的配合天衣无缝,只有有他们同时上场,球队就战无不胜。一个偶然的机会,人们发现了他们的 ...
人类还会进化吗?-谈机器智能发展前景
- 博客分类:
- 人工智能
这是二十年前寄给科学院的一篇旧文,大家可以对比看看,关于人工智能,二十年前的人和现在的人是怎么想的。原稿扫描存在造人论坛上。
人类还会进化吗?-谈机器智能发展前景
近年来,随着机算机技术的迅速发展,神经网络、系统论、控制论、非线性理论以及认知科学不断取得突破性进展,使得人们对生命现象的研究进入了一个前所未有的阶段。但是,对于“生命的本质是什么”、“生命的发展有没有最终目标?”、“人类作为生命体还会发展吗?”、“人类最终前途是什么?”这一类问题却始终不能给出明确的答复。下面我将谈谈我个人对这些问题的理解,我的看法中带有不少主观猜测,因此科学性不是很严密,只不过希望借此文引发人们对生命更深层次的 ...