Hibernate Java项目的简单创建和部署。先要在项目中使用hibernate,要创建hibernate的配置文件hibernate.properties,此文件可以在hibernate
的压缩包的解压目录中的project/etc(具体目录谁知道以后还会不会变)目录中找到它的模板,从里面把相应数据库的配置考过来即可。
第二步创建一个持久化类,就是普通的javabean即可,但是一定要有个id属性,对应数据库中表的主键。
第三步再创建一个对像关系映射文件,这个用eclipse的话,可以建起来方便点,就在preferences的xml中xml
catalog中添加上对像关系映射文件[......]
the JDBC Driver has been forcibly unregistered.问题
在用eclipse的时候,发现在关闭tomcat(我的版本是6.029)的时候,会报如下的信息:
2010-10-13 2:50:11 org.apache.catalina.loader.WebappClassLoader clearReferencesJdbc
严重: The web application [/hbtest] registered the JBDC driver [com.mysql.jdbc.Driver] but failed to unregister it when the web application was stopped. To prevent[......]
Ant配置文件
Ant配置文件。Ant
开发
Ant的构建文件
当开始一个新的项目时,首先应该编写Ant构建文件。构建文件定义了构建过程,并被团队开发中每个人使用。Ant构建文件默认命名为build.xml,也可以取其他的名字。只不过在运行的时候把这个命名当作参数传给Ant。构建文件可以放在任何的位置。一般做法是放在项目顶层目录中,这样可以保持项目的简洁和清晰。下面是一个典型的项目层次结构。
(1)
src存放文件。
(2) class存放编译后的文件。
(3) lib存放第三方JAR包。
(4)
dist存放打包,发布以后的代码。
Ant构建文件是XML文件。每个构建文件定义一个唯一[......]
hibernatetools通过hbm.xml生成java POJO源文件和数据库DDL脚本
hibernatetools通过hbm.xml生成java POJO源文件和数据库DDL脚本。hbm2java跟hbm2ddl这两个工具已经跟2的时候完全不一样了,已经全部集成到hibernatetools里了。这个东西的下载已经从hibernate官网链到了https://www.jboss.org/tools/download/stable.html
。我下的是最新的那个3.1GA。这东西是个压缩包,解压到eclipse目录中,就可以作为eclipse的插件来使用。不过要使用hbm2java和
hbm2ddl直接从hbm.xml生成java源文件和ddl的sql脚本,好像在eclips[......]
String.split()方法时要注意的问题
String.split()方法时要注意的问题。在使用String.split方法分隔字符串时,分隔符如果用到一些特殊字符,可能会得不到我们预期的结果。
我们看jdk doc中说明
public String[] split(String regex)
Splits this string around matches of the givenregular expression.
参数regex是一个regular-expression的匹配模式而不是一个简单的String,他对一些特殊的字符可能会出现你预想不到的结果,比如测试下面的代码:
用竖线 | 分隔字符串,你将得不[......]
mysql的表建外键和hbm2java生成many-to-one代码的问题
mysql的表建外键和hbm2java生成many-to-one代码的问题。用hibernate tools生成那个建表的SQL代码会在create语句最后加一个type=MyISAM,这个存储引擎在MYSQL中是不支持外键的。在mysql的参考手册的1.8.5.5. 外键中有如下描述(我这个是5.1版本的,用的是个比较旧的版本,现在的最新版本支持与否我不太清楚,没看手册和测试):
对于InnoDB之外的其他存储引擎,MySQL服务器能够解析CREATE TABLE语句中的FOREIGN KEY语法,但不能使用或保存它。未来将进行扩展,能够将这类信息保存到表规范文件中,以便能被mysql[......]
Hibernate的hbm.xml文件中的property元素中的lazy属性
Hibernate的hbm.xml文件中的property元素中的lazy属性。这个百度上搜的结果里说的挺少的,其实主要也是基本上用不到,不过犯了钻牛角尖的臭毛病,就研究了一下。在hibernate下载的文档中对其的描述是:lazy(可选 — 默认为 false):指定 指定实例变量第一次被访问时,这个属性是否延迟抓取(fetched lazily)( 需要运行时字节码增强)。但这个没看太明白,后来在GOOGLE上很容易找到了JBOSS官网上关于这个问题的描述,网址:http://docs.jboss.org/hibernate/core/3.3/reference/en/html/perfo[......]
Hibernate的inverse属性
Hibernate的inverse属性。
一个双向关联仅仅是在两端
简单地正确设置引用。然而,Hibernate 并没有足够的信息去正确地执行 INSERT 和
UPDATE 语句(以避免违反数据库约束),所以它需要一些帮助来正确的处理双向关联。把关联的
一端设置为 inverse 将告诉 Hibernate 忽略关联的这一端,把这端看成是另外一端的一个镜象
(mirror)。
说实话什么镜像的真是让人有点看不懂。后来照着书上做了做试验,也算是废了些功夫,大概觉得可以这样理解:inverse这个属性就是一个开关,来告诉[......]
Hibernate的UserType接口的几个方法的调用时机
Hibernate的UserType接口的几个方法的调用时机。hibernate文档上有的说的不太明确,在这里对其中的几个我本来不太明确的方法做个简单的记录
/** 告诉hibernate这个类型是不是可变类(不可变类是指创建了这个类的实例后,就不可以再修改它的属性)。有微小的性能优化 */ public boolean isMutable()
/** 从二级缓存中取这个对象数据时要调用的方法 */ public Object assemble(Serializable arg0, Object arg1) throws HibernateException
/** hi[......]
jnlp文件的移除卸载
jnlp文件的移除卸载。我用的是从www.java.com下载的jre7,很容易。其他的一些像linux自带的java版本并不是这样的。
在windows的控制面板中,或在linux设置或其他叫系统之类的菜单项(这个不同的桌面环境所在位置可能不一样)下面,点开java,然后在常规选项卡的临时internet文件框中点 查看,打开java高速缓存查看器,然后在那里就可以看到已经安装的jnlp的应用程序,在这里就可以使用图形化来卸载了。如果找不到java项,则直接在shell里输入javaws -viewer,就会自动打开java高速缓存查看器,剩下的操作跟从图形界面点java是一样的了。[......]