Derby用户名密码后续
前几天我写了一篇:为Derby设置用户名和密码,但是没有考虑周全。现在我再整理一下,发布完整教程。 继续阅读 »
为Derby设置用户名和密码
Derby的embeded数据库默认是不需要用户名和密码即可访问。如果想要设置密码,需要自己写一个名为:derby.properties的文件,将该文件放在数据库所在的目录。注意:该文件derby是不会自动帮你创建的!
比如我的数据库 ’TEST‘ 位于:C:\Program Files\SQuirreL SQL Client, 那么derby.properties也要放在:C:\Program Files\SQuirreL SQL Client 这里。
然后用记事本打开derby.properties,手动填写内容:
derby.connection.requireAuthentication=true
derby.authentication.provider=BUILTIN
derby.user.username=password
将username和password改成你的就好了。
如果允许多个用户操作数据库,相应的加derby.user.username=password就可以。
Derby中Long varchar不能order by,所以……
将long varchar转成varchar就可以了。
具体sql语句是:
select * from 表名 order by cast(字段名 as varchar(长度));
但是据说数据量大了会影响效率。
解决Derby默认大小写敏感的问题
Derby的column值默认是大小写敏感的,查询的时候必须注意这个问题。
但是在客户端传过来的数据可能是千奇百怪的,如果数据库里存的是”Name”,传过来的是“name”就会查不到,但是不能要求客户端那么严格,一般来说,Name和name是一样的。
昨天,我研究了一下,找到一种非常麻烦的解决方法,那就是在创建表的时候加一个column,此column的值引用自某一个column,并且自动转为全大写或全小写,sql 语句如下:
-
(
-
employeeID int,
-
name varchar( 50 ),
-
caseInsensitiveName GENERATED ALWAYS AS( UPPER( name ) )
-
)
-
;
然后,在POJO类要增加一个attribute来对应这个column,当然了,在映射文件同样要加相应的property。
在然后,在需要查询employee的name时,将客户端传入的值先转为大写,注意,这时就不能去查询name这个column了,要查询caseInsensitiveName 。
瞧瞧,是不是很复杂啊。所以,我不推荐用这个方法。
今天我找到一种更简单的方法,废话少说,开始。
其实,在Derby中,支持这样的写法:
select * from employee where upper(name) =’WANG LIHONG’;
所以,我们不需要增加column,也不需要去改POJO和映射文件,只需要在查询时先把客户端传来的值变成大写,再用以下语句查询就好。
如果用HQL(最好用占位符,不要像我这样写,我这里举例就随便一点了):
” from Employee where upper(name)=”+”‘”+upperCname+”‘”;
如果用Criteria,需要用sqlRestriction()方法:
.add(Restrictions.sqlRestriction(“upper(cname)=?”,upperCname,Hibernate.STRING));
真正的Derby新手教程,Derby安装,创建数据库,在Java程序中使用Derby
以下乃本人今天之研究成果,供广大菜鸟借鉴参考,如有高人路过发现错误,请不吝赐教。
1,下载并安装Derby:
下载地址:http://db.apache.org/derby /derby_downloads.html,下载最新版本。
我用的是10.5.3.0。
解压缩到任意文件夹,我的是:E:\Java\Joy\derby
2,配置环境变量:
建立DERBY_HOME,值:E:\Java\Joy\derby\db- derby-10.5.3.0-bin\db-derby-10.5.3.0-bin
在Path加入:%DERBY_HOME%\bin
在CLASSPATH加入:%DERBY_HOME%\lib \derby.jar;%DERBY_HOME%\lib\derbyclient.jar;%DERBY_HOME%\lib\derbytools.jar;%DERBY_HOME%\lib\derbynet.jar
3,测试看看Derby安装成功没有
开始—Run—CMD
运行 sysinfo
如果安装成功,将会看到相关信息,下面是截取的部分信息。 继续阅读 »


