Java
文章平均质量分 74
iihero
微信:_iihero 原创文章集中在公众号: 数据库杂记
SAP研究院数据库技术专家, PostgreSQL ACE
涉猎于Sybase,Oracle,HANA,MySQL等多种数据库。
三本著作:<Java2网络协议内幕><OracleSpatial及OCI高级编程>
<SybaseASE15.X In Action>
同时也是中国武术六段 陈式太极拳教练 国家一级段位考评员
北京陈式太极拳研究会副秘书长
也欢迎联系我学太极拳,强身健体!
展开
-
关于PostgreSQL JDBC中的log输出是怎么回事?
挖一挖:PostgreSQL Java里的double类型存储到varchar精度丢失问题写完之后,有热心的朋友, 就发留言问,那个log配置了半天,好像不太管用。就是说,用了自定义的配置文件,最后都不起作用,看不到有效的输出。首先强调一下,PG数据库的外围生态是非常完善的,就是说,它几乎支持各种主流的访问接口,这个完全为亚于当规模最大使用范围最广的一些大型商用数据库。从这个角度来看,它的发展前景不可限量 ,最贴近它自身的外围用户不就是使用这些访问接口的广大开发人员吗?内容与上边定义的相同。原创 2024-04-04 13:50:58 · 594 阅读 · 0 评论 -
挖一挖:PostgreSQL Java里的double类型存储到varchar精度丢失问题
try {// 连接到数据库)";= null) {发现 PostgreSQL11和12及以后的版本,插入到表t1中的记录值不一样。a48(3 rows)a------4848.148.9(3 rows)这个问题如何分析?从驱动层来看,发送过去的内容或指令应该是一样的。原创 2024-04-01 07:32:27 · 1040 阅读 · 0 评论 -
小小狠招:巧妙使用HANA数据库的jdbc driver
一个小小的jdbc驱动,HANA数据库为它提供的功能还是比较强悍的。在关键的时候,能起到非常大的作用。如果只是一些非常简单的连接性需求,甚至不需要任何第三方工具,直接使用简单的命令行就可以顺利完成。原创 2024-03-31 07:00:23 · 1055 阅读 · 0 评论 -
java 去掉字符串中的‘\‘字符
最近发现比较简单的去掉'\'字符居然不能直接用'\'去替。public class TestString {public TestString() {}public String replace(String a) {return a.replaceAll("\\u005c", "");}public static void main(String[] args) {TestStrin...原创 2006-11-03 20:00:00 · 4959 阅读 · 1 评论 -
应用服务器中ClassLoader有关内存的问题
近几天在比较系统时发现一个奇怪的现象,就是ClassLoader会hold住它所Load的大部分class,导致系统更新时,内存上涨,并且一直不降。看了看sun的jdk文档(官网上),指明ClassLoader并不负责Class的unload,Class的unload依然取决于它的引用计数是否为0。当一个AppClassLoader由于应用更新时,需要重新生成一个AppClassLoader时...原创 2006-08-21 21:16:00 · 235 阅读 · 1 评论 -
获取访问目标主机的有效SSL/TLS证书 (无法直接得到证书时)
现在,很多网站或者服务,都实现成基于SSL,并且提供证书下载安装才能访问。如果它能提供下载,当然什么问题有没有。可是,如果你无权下载,并且它不是CA证书,只是自签名的Server端证书。只知道它的端口和地址,你强行通过程序访问,可能会得到这样的错误:javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorExcept原创 2012-05-20 06:11:14 · 9458 阅读 · 3 评论 -
设计模式(14)-行为型-命令模式(Command)
概述将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤消的操作。适用性抽象出待执行的动作以参数化某对象,你可用过程语言中的回调(c a l l b a c k )函数表达这种参数化机制。所谓回调函数是指函数先在某处注册,而它将在稍后某个需要的时候被调用。C o m m a n d 模式是回调机制的一个面向对象的替代品。 在不同的时刻指定、排列和原创 2012-11-22 06:29:46 · 2162 阅读 · 3 评论 -
sqlite3 jdbc、c接口、python接口处理中文时遇到的问题及其解决方法
sqlite(版本3),以下简称sqlite3,目前功能已经非常强大。目前支持的字符集,包括UTF-8, UTF-16,UTF-16le,UTF-16be。可是在我们直接使用gbk编码的时候,很可能就会遇到问题。因为目前,很多人会使用c/c++接口来访问sqlite3数据库,当然,也有人使用python接口来访问它。1. 使用python时,要想正确的取到c++接口insert/update以后的原创 2008-03-03 12:41:00 · 3469 阅读 · 0 评论 -
使用命令行快速找出class文件所在的jar文件
由于jar命令去查找class文件速度比较慢,我个人尝试使用7z.exe,7z.dll,结合批处理,效果非常不错。请看示例:for %i in (dir/b/s *.jar) do 7z l %i | findstr XDatabase.class 结果:D:\shared\xsql>for %i in (dir/b/s *.jar) do 7z l %i |findstr XDatabase.原创 2012-03-08 05:57:04 · 5210 阅读 · 2 评论 -
设计模式(13)-行为型-责任链模式(Chain of Responsibility)
概述 使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链, 并沿着这条链传递该请求,直到有一个对象处理它为止。 这一模式的想法是,给多个对象处理一个请求的机会,从而解耦发送者和接受者. 适用性 1.有多个的对象可以处理一个请求,哪个对象处理该请求运行时刻自动确定。 2.你想在不明确指定接收者的情况下,向多个对象中的一个原创 2012-11-21 21:01:33 · 1843 阅读 · 0 评论 -
SQLite指南(6)-处理database is locked的方法
解决方法有:1。使用进程或线程间的同步机制以避免同时操作;如用信号量,互斥锁等(pthread_mutex_lock,pthread_mutex_unlock),如果你的项目工程较大要求较高的话建议用此方法自行封装函数处理同步2。使用sqlite提供的两个busy handler函数,但对于一个连接来说,只能有一个busy handle,两个函数会相互影响,设置一个的同时会清除另一个,应根据需要来原创 2012-11-15 20:14:54 · 3082 阅读 · 0 评论 -
DBeaver数据库管理工具连接Sybase数据库使用体验
从http://dbeaver.jkiss.org/下载了一个DBeaver1.4版,该软件完全免费,功能与DBVisualizer相比,稍差一些,但是简单易用,运行效率似乎要高一些。这里以Sybase ASA, Sybase ASE, MySQL为例,介绍一下它的简单配置和使用。1. 下载http://dbeaver.jkiss.org/ DBeaver1.4 我向来只使用解压缩版:http原创 2012-11-15 20:16:41 · 21696 阅读 · 1 评论 -
设计模式(9)-结构型-装饰模式(Decorator)
概述动态地给一个对象添加一些额外的职责。就增加功能来说,Decorator模式相比生成子类更为灵活。可以简称为"修修补补"适用性1.在不影响其他对象的情况下,以动态、透明的方式给单个对象添加职责。 2.处理那些可以撤消的职责。 3.当不能采用生成子类的方法进行扩充时。参与者1.Component 定义一个对象接口,可以给这些对象动态地添加职责。 2.ConcreteCompo原创 2012-11-20 20:07:52 · 1912 阅读 · 0 评论 -
设计模式(16)-行为型-迭代器模式(Iterator)
概述 给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。适用性 1.访问一个聚合对象的内容而无需暴露它的内部表示。 2.支持对聚合对象的多种遍历。 3.为遍历不同的聚合结构提供一个统一的接口(即,支持多态迭代)。 参与者 1.Iterator 迭代器定义访问和遍历元素的接口。 2.Co原创 2012-11-23 04:36:22 · 1889 阅读 · 0 评论 -
Session与Cookie的对应关系
为什么会有cookie呢,大家都知道,http是无状态的协议,客户每次读取web页面时,服务器都打开新的会话,而且服务器也不会自动维护客户的上下文信息,那么要怎么才能实现网上商店中的购物车呢,session就是一种保存上下文信息的机制,它是针对每一个用户的,变量的值保存在服务器端,通过 SessionID来区分不同的客户,session是以cookie或URL重写为基础的,默认使用cookie来实原创 2012-11-19 17:10:05 · 2978 阅读 · 0 评论 -
Windows下OpenSSL创建CA证书以及客户端和服务器端证书
由于实验需要,需要手动制作CA证书以及客户端和服务器端证书,总结如下:最近两天,查阅了一些关于创建证书的资料,发现网上很多介绍并不是很完整,不具有完全的可操作性。创建证书,我目前知道的大概这么几种:1.keytool 不能创建CA证书2.Sybase ASA自带的createcert.exe 好像不能创建PKCS12型证书3.OpenSSL 功能最强大。所以,这里干脆只介绍OpenSS原创 2013-12-28 05:45:21 · 13198 阅读 · 0 评论 -
做了一个获取全国大中城市天气的小工具
<!--google_ad_client = "ca-pub-7104628658411459";/* wide2 */google_ad_slot = "5922063526";google_ad_width = 468;google_ad_height = 60;//-->其实,很早以前就做了。但是一直没怎么整理。http://www.sql6.com上有相关的天气查询示例。主体思原创 2013-02-02 14:21:30 · 3571 阅读 · 1 评论 -
为Sybase ASA创建外部存储过程(java示例)
衡量一个DBMS的功能是否强大,外部存储过程是否很方便创建和使用,是一个重要特征。ASA数据库,很早就开始支持使用C, CLR(.NET)以及java等编程语言来创建存储过程。 下面介绍一个简单的示例,来创建一个基于Java 的ASA存储过程, 数据库(ASA11.0或以上版本), 该示例很简单,输入主机名,返回对应的IP地址,如果不能解析,返回"".先编写一个java类,大致内容如下:impor原创 2013-02-02 14:30:01 · 1874 阅读 · 0 评论 -
关于Java占用内存的研究
这篇文章来自newsmthBBS java版原版主zms的经验总结,感觉挺不错。转到这里,以供参考。 最近对程序占用内存方面做了一些优化,取得了不错的效果,总结了一些经验简要说一下,相信会对大家写出优质的程序有所帮助下面的论述针对32位系统,对64位系统不适用,后叙经常你写了一个程序,一测试,功能没问题,一看内存占用也不多,就不去考虑其它的东西了。但可能程序使用了一个什么数据结构,会当数据规模变大原创 2006-09-23 22:19:00 · 1987 阅读 · 0 评论 -
java 去掉字符串中的'/'字符
最近发现比较简单的去掉'/'字符居然不能直接用'/'去替。public class TestString { public TestString() { } public String replace(String a) { return a.replaceAll("//u005c", ""); } public static void原创 2006-11-03 20:00:00 · 7491 阅读 · 0 评论 -
有关prepare statement在ODBC、JDBC、ADO.NET上的对比使用(以DB2为例)
参数标记的概述对于需要执行多次的 SQL 语句,通常准备 SQL 语句一次并通过在运行时期间使用参数标记来替换输入值以重复使用查询方案比较好。 在 DB2 Everyplace 中,参数标记由“?”字符表示并指示在 SQL 语句中的何处替换应用程序变量。参数标记将按编号引用,且它们是从左至右连续编号的(从 1 开始)。在执行 SQL 语句之前,应用程序必须将变量存储区绑定至在 SQL 语句中指定的原创 2005-12-11 00:02:00 · 4318 阅读 · 0 评论 -
设计模式(19)-行为型-观察者模式(Observer)
概述 定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。 最容易让人联系到的就是GUI用户界面当中数据和视图的对应关系,当数据发生变化时,它对应的所有的视图都自动更新。适用性 1.当一个抽象模型有两个方面,其中一个方面依赖于另一方面。 将这二者封装在独立的对象中以使它们可以各自独立地改变和复用。原创 2012-11-24 06:01:04 · 2220 阅读 · 0 评论 -
设计模式(18)-行为型-备忘录模式(Memento)
概述 在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。适用性 1.必须保存一个对象在某一个时刻的(部分)状态,这样以后需要时它才能恢复到先前的状态。 2.如果一个用接口来让其它对象直接得到这些状态,将会暴露对象的实现细节并破坏对象的封装性。 参与者 1.Memento 备忘录存储原原创 2012-11-24 05:33:38 · 1915 阅读 · 0 评论 -
设计模式(10)-结构型-外观模式(Facade)
概述为子系统中的一组接口提供一个一致的界面,F a c a d e 模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。适用性1.当你要为一个复杂子系统提供一个简单接口时。子系统往往因为不断演化而变得越来越 复杂。大多数模式使用时都会产生更多更小的类。这使得子系统更具可重用性,也更容 易对子系统进行定制,但这也给那些不需要定制子系统的用户带来一些使用上的困难。原创 2012-11-20 20:32:55 · 2273 阅读 · 0 评论 -
设计模式(8)-结构型-组合模式(Composite)
组合模式是结构型设计模式中使用频率非常高的模式之一。 通常它将一个对象包装成树型结构,以表示“整体”与“部分”的层次结构,从用户的角度来看,单个对象与组合对象,看起来,具有一致的接口。适用性描述:你想描述的对象,具有部分-整体的层次结构用户希望能忽略组合对象与单个对象的不同,用户将统一的使用的使用组合结构中的所有对象参与者描述: 1.Component 为组合中的对象声明接口。原创 2012-11-20 07:34:41 · 2180 阅读 · 0 评论 -
设计模式(11)-结构型-享元模式(Flyweight)
概述运用共享技术有效地支持大量细粒度的对象。适用情形 当都具备下列情况时,使用Flyweight模式: 1.一个应用程序使用了大量的对象。 2.完全由于使用大量的对象,造成很大的存储开销。 3.对象的大多数状态都可变为外部状态。 4.如果删除对象的外部状态,那么可以用相对较少的共享对象取代很多组对象。 5.应用程序不依赖于对象标识。由于Flyweight对象可以原创 2012-11-21 07:14:28 · 1821 阅读 · 0 评论 -
jdbf-1.1重新发布:重新整理了我的jdbf库
jdbf库是一个读写dbf文件的能用的java库,对于一般的dbf文件,它都能很好的处理,不依赖于操作系统。以前曾经在http://code.google.com/p/java-dbf上发布了一个,但是整理得不太好。源码文件的字符集设置不合理,导致非中文用户打不开文件或者编译不成功。这次统一迁移到了http://code.google.com/p/jdbf上,源码和库统一存放,有兴趣的可以去下载。原创 2012-06-14 07:44:38 · 3106 阅读 · 0 评论 -
程序实现启动和停止嵌入式Tomcat Web服务器
本文系本人原创性实验工作,如若转载,请尊重个人劳动,注明出处。这阵子,由于实验的需要,需要通过程序启动和停止Tomcat Web Server。很早以前就知道有Embedded tomcat。如果不使用嵌入式服务器,直接调用命令行startup.bat, shutdown.bat,将输入输出重定向,是比较容易的,但是这样的tomcat比较臃肿,也不好看。网上也有一些实例,但只是告诉我们启动tomc原创 2012-04-20 10:30:58 · 8630 阅读 · 3 评论 -
列一份跨平台开发的读书清单[C/C++ (or Java?)]
如果要开一份跨平台开发的读书清单: 0. 深入理解计算机系统 将它列为0,实在是因为它是一本从程序员的角度去解释一个计算机系统。它解释了一些最基本的东西。1. Unix环境高级编程 如果觉得有些深,可找本简单的>垫垫底2. Windows核心编程 这本书内容太厚实了,3比它简单明了些3. Win32多线程程序设计4. Unix网络编程 (Richard那几卷) 这个不说了。原创 2009-03-09 23:20:00 · 4497 阅读 · 4 评论 -
Java Performance 总结(1. Class Loader)
关于Java性能方面的东西,涉及挺多。一直想写个总结。第一部分,还是介绍class loader(类加载器,译文不如原文流畅了,估计用英文原词吧),它主要用于在Java虚拟机运行时加载所需要的类。 一、这些类,有两部分:一部分是你的应用程序中的java类,另一部分是Java API中的类文件。加载器有两个重要的工作: 1. loading: 找到一个类, 并导入它的二进制数据表示2. linkin原创 2010-06-30 06:50:00 · 1628 阅读 · 1 评论 -
Hazelcast: Java分布式内存网格框架(平台)
网址: http://www.hazelcast.com/。下边是它的宣传内容:hazelcast是一个开放源码集群和高度可扩展的数据分发平台,这是为Java:1. 快如闪电;数以千计的运算/秒。2. 故障安全;崩溃后没有丢失数据。3. 作为新服务器的动态调整 。4. 超级简单的使用 ,包括一个单独的jar。Hazelcast与各种分布式数据结构,分布式缓存功能,弹性的性质,memcache的支持翻译 2012-03-23 06:33:38 · 38054 阅读 · 1 评论 -
ejb2.1中ejbQL的缺点,权且作为笔记
1. Object()操作符感觉就是Sun公司创造出来的幌子,什么意义也没有。只是给ejb的实现方确定什么时候那个abstract schema类型成为返回值。对于QL查询本身而言,确实没有什么意义。Sun公司的解释好像是下一代SQL规范里可能包含这个操作符。呵呵。鬼知道SQL2003或者更新版本里是否有这个操作符,反正我是没有看到。2. 缺乏对Date类型的操作缺省对java.util.Date原创 2007-07-25 21:43:00 · 1720 阅读 · 0 评论 -
J2EE应用服务器 兼容性实现(摘自Sun,只帖1.4和java ee5了)
Java EE 5 Compatible Implementations Sun Java System Application ServerPlatform Edition 9原创 2006-08-24 22:22:00 · 2434 阅读 · 1 评论 -
Java JNI Programming基础 1.
一、JNI 的特点: JNI有一个很重要的优点,就是在你充分利用Java的跨平台特性的前提下,你仍然可以利用其它编程语言。JNI是JVM实现很重要的一部分,是允许Java应用调用本地代码(native code)或本地代码调用Java应用的一个双向接口。下图就显示了这两者之间的关系:JNI支持两种类型的native code: 本地库和本地应用程序1. 你可以使用JNI写出本地方法,允许Jav原创 2006-09-24 15:33:00 · 2488 阅读 · 0 评论 -
Jad - the latest version
转自:http://www.kpdus.com/jad.html Jad - the fast JAva Decompiler Whats New Jad main features Known bugs and limitations Download Jad Installation Graphi转载 2006-09-11 12:35:00 · 8145 阅读 · 1 评论 -
简单的整理了一下分页,希望对初学者有帮助
准备工作:在Oracle下,建立一张表:CREATE TABLE mytable(id int, name varchar(32))/ 往表mytable里插入一些值。 testpage.jsp页面程序如下: 简单的分页示例,demo-->%@page import="java.util.*"%>%@page import="java.lang.*"%>%@page import="java.原创 2004-06-23 17:37:00 · 1883 阅读 · 0 评论 -
有关java.net.SocketException: No buffer space available的问题
It's hard to believe that this problem was caused by this (http://support.microsoft.com/kb/196271). The Hudson CI application is currently running on Windows Server 2003 box. This version of Windows S原创 2012-09-28 10:55:08 · 7024 阅读 · 0 评论 -
Eclipse各发行版
简记一下:Eclipse Europa (3.3) 2007 (欧罗巴(腓尼基王阿革诺耳之女);[天] 木卫二)Eclipse Ganymede (3.4) 2008 (木星的最大卫星;伽倪墨得斯(为众神酌酒的美少年,等于Ganymedes);侍童)Eclipse Galileo (3.5), SR1 : 3.5.1 SR2 : 3.5.2 2009 (伽利略)Eclipse Helios (原创 2012-11-07 10:13:00 · 3287 阅读 · 0 评论 -
设计模式(12)-结构型-代理模式(Proxy)
Proxy模式也是最常用的设计模式之一。 在java和.net的反射应用,以及大量开源框架反复被使用。重点推荐。概述为其他对象提供一种代理以控制对这个对象的访问。适用性 1.远程代理(RemoteProxy)为一个对象在不同的地址空间提供局部代表。 2.虚代理(VirtualProxy)根据需要创建开销很大的对象。 3.保护代理(ProtectionProxy)控制对原始对象的访原创 2012-11-21 07:33:51 · 2640 阅读 · 0 评论 -
DBCP连接池的最简单应用(用于ORACLE数据库)
鉴于有人问起DBCP直接用于JDBC连接的问题,我做了一个最简单的示例。所有资源来源于网上。它不需要什么Web容器,就是一简单的控制台应用。资源:http://apache.etoak.com//commons/pool/binaries/commons-pool-1.5.6-bin.ziphttp://labs.renren.com/apache-mirror//commons/dbcp/bin原创 2012-12-04 04:50:32 · 20849 阅读 · 0 评论