小米稳定版怎么root:SUN JDO+DataNucleus+mysql配置

来源:百度文库 编辑:偶看新闻 时间:2024/04/29 20:12:51
新项目像使用JDO来避免以后数据库移植带来的不必要的工作量~其实一直不明白使用Hibernate就好了~也比较稳定也比较成熟了。用户也多~干吗非要用一个以前没有用过的乜~不过既然领导这么定了。那咱也就只能执行。于是开始了JDO之旅。不过话说在刚刚配置的时候确实是纠结了好久。网上到处寻找都没有确切的答案~不过好在最后是解决了。于是马上记录下来方便自己也方便一下大家~~~。

APACHE JDO网址:http://db.apache.org/jdo/  (其实大部分问题都是官网上解决的。虽然公开始觉得的写的比较粗糙~但后来发现其实人家写的很清楚。只是不习惯老外很多阐述东西的方式所以忽略了很多关键点。)
JDO下载地址:http://db.apache.org/jdo/downloads.html (咱用的是jdo2-api-2.3-ea.jar)也就是JDO 2.3 "Early Access"这个版本。后来发现有jdo2-api-2.3-eb.jar了但是没有敢使用。还是保守着来吧。
JDO的具体执行第三方有很多。同样选择了目前一直保持更新对数据库支持比较全面的DataNucleus Access Platform。
DataNucleus Access Platform官网地址:http://www.datanucleus.org/
下载地址:http://sourceforge.net/projects/datanucleus/files/ (eclipse插件也在此。)
这里我使用的是datanucleus-core-1.1.0.jar,datanucleus-enhancer-1.1.0.jar,datanucleus-rdbms-1.1.0.jar(关系型数据库的。db4o等其他的需要下载相应其他的jar包)。eclipse的插件版本为:org.datanucleus.ide.eclipse_1.0.0.final.zip。直接解压到eclipse的plugins目录下然后重启eclipse即可。如何配置后边说。
其实这时候datanucleus已经有了2.0.0。但是jdo官网写的是jdo2.3对应datanucleus1.1。于是为了避免弯路就使用了1.1版本。

datanucleus1.1的用户指南:http://www.datanucleus.org/products/accessplatform_1_1/guides/jdo/tutorial.html
根据用户指南一步一步来。
第一步:创建你自己的数据模型类。其实就是普通的一个bean。
package com.study.jdo;
public class Product {
String name = null;
String description = null;
double price = 0.0;

protected Product(){}

public Product(String name, String desc, double price){
this.name = name;
this.description = desc;
this.price = price;
}
}

package com.study.jdo;
public class Book extends Product{
String author=null;
String isbn=null;
String publisher=null;

public Book(String name, String desc, double price, String author, String isbn, String publisher){
super(name,desc,price);
this.author = author;
this.isbn = isbn;
this.publisher = publisher;
}
}
然后第二步:定义你的持久类
这部其实就是为你的bean来创建一个.orm的xml文件来进行映射。

"-//Sun Microsystems, Inc.//DTD Java Data Objects Metadata 2.0//EN"
"http://java.sun.com/dtd/orm_2_0.dtd">


























但其实后来这部我是由插件来代劳的。于是这里没有仔细研究。
第三步:类增强
这步感觉比较重要。就是在你的bean所在的package里创建一个package.jdo来对你定义的bean进行类增强。
当然这步也可以由插件代劳。不过我最开始是手写的。结果就出现问题了。导致程序运行的时候总是会出现一个纠结的ClassNotPersistenceCapableException错误异常。
这里的时候就要说一下~项目的lib下必须引用的jar包。
asm.jar
datanucleus-core-1.1.0.jar
datanucleus-enhancer-1.1.0.jar
datanucleus-rdbms-1.1.0.jar
jdo2-api-2.3-ea.jar
还有就是.jdo文件已经部署好。最好就放在bean所在的package下。其实不放也没事,官方上是这么说~~是说程序会自动找到这个.jdo为止。不过我没有去试呵呵。
然后就是第四步:.properties文件
这个是为了在程序中创建PersistenceManagerFactory实例的一些属性需要所以有了配置文件。我是定义为datanucleus.properties。因为是用datanucleus作为PersistenceManagerFactory的具体实现。
配置如下:
javax.jdo.PersistenceManagerFactoryClass=org.datanucleus.jdo.JDOPersistenceManagerFactory
javax.jdo.option.ConnectionDriverName=com.mysql.jdbc.Driver
javax.jdo.option.ConnectionURL=jdbc:mysql://127.0.0.1:3306/test?characterEncoding=utf-8
javax.jdo.option.ConnectionUserName=root
javax.jdo.option.ConnectionPassword=123456

datanucleus.autoCreateSchema=true
datanucleus.validateTables=false
datanucleus.validateConstraints=false

http://db.apache.org/jdo/pmf.html这里介绍了每个属性的作用。唯独要注意的就是javax.jdo.PersistenceManagerFactoryClass这个属性。这里是指定了其具体实现类。用不同的实现工具这里就是不同的值了。
最后就是具体实现程序。这个在http://db.apache.org/jdo/pm.html写得很详细。没有什么特别的地方。


最后要说的就是datanucleus的eclipse插件的使用。其实最开始没用插件的时候程序一直不行。已经无计可施的时候在datanucleus的官网上看到了eclipse的插件使用。于是抱着死马就当活马医的心试试果然竟然成了。
地址是:http://www.datanucleus.org/products/accessplatform_1_0/guides/eclipse/index.html

目前就这么多。如果遇到其他问题会随时更新。也希望看到的人能留言一起讨论把遇到的问题都能解决方便更多的使用者。