十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
这个就要借助hibernate tools跟xdoclet来完成了;
盐城ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:028-86922220(备注:SSL证书合作)期待与您的合作!
首先你要在你的java代码里应用xdoclet标签,例如
Java code
private String name;
/**
* @hibernate.property column = "name" length = "50"
*/
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
其中,写到javadoc上的@hibernate.property column = "name" length = "50"
就是xdoclet标签,它需要xdoclet程序来处理,这里就需要用到hibernate tools。
具体做的话一般情况是建一个ant脚本来完成,例如:
XML code
target name="hibernate-xdoclet" depends="init, init-xdoclet_hibernate"
description="Generate mapping documents"
echo+---------------------------------------------------+/echo
echo| |/echo
echo| R U N N I N G H I B E R N A T E D O C L E T |/echo
echo| |/echo
echo+---------------------------------------------------+/echo
delete
fileset dir="${hibernate.cfg.xml.dir}" includes="hibernate.cfg.xml" /
/delete
echo message="hibernate.cfg.xml at ${hibernate.cfg.xml.dir}"/echo
sleep seconds="1"/
hibernatedoclet
destdir="${hibernate.cfg.xml.dir}"
excludedtags="@version,@author,@todo,@see"
addedtags="@xdoclet-generated at ${TODAY},@copyright The XDoclet Team,@author XDoclet,@version ${version}"
force="false"
verbose="true"
fileset dir="${src.dir}"
include name="com/**/model/**/*.java"/
/fileset
hibernatecfg
version="3.0"
destDir="${hibernate.cfg.xml.dir}"
dialect="org.hibernate.dialect.Oracle9Dialect"
driver="oracle.jdbc.driver.OracleDriver"
jdbcUrl="jdbc:oracle:thin:@localhost:1521:RESDL"
userName="test"
password="123"
showSql="true"
schema="true"
validateXML="true"
/
hibernate version="3.0"/
/hibernatedoclet
/target
上面的代码是生成hbm跟cfg文件的,下面再介绍如何从java类到数据库:
XML code
target name="hibernate-schema" depends="init, init-hibernate-schema"
description="Generate DB schema from the O/R mapping files"
echo+---------------------------------------------------+/echo
echo| |/echo
echo| R U N N I N G D B S C H E M A |/echo
echo| |/echo
echo+---------------------------------------------------+/echo
echo message="mysql.sql at etc/hbm2doc"/echo
sleep seconds="1"/
hibernatetool destdir="etc/hbm2doc"
configuration propertyFile="${src.dir}/hibernate.properties"
fileset dir="${hibernate.cfg.xml.dir}"
include name="com/**/model/**/*.hbm.xml"/
/fileset
/configuration
hbm2ddl drop="true"
outputfilename="mysql.sql"/
hbm2doc/
/hibernatetool
/target
当然ant工程里的一些初始化需要自己定义,我这里只摘录关键部分,具体的东西请查阅相关文档,hibernate tutorail里就有个例子
java中的消息队列消息队列是线程间通讯的手段:import java.util.*public class MsgQueue{ private Vector queue = null; public MsgQueue(){ queue = new Vector(); } public synchronized void send(Object o) { queue.addElement(o); } public synchronized Object recv(){ if(queue.size()==0) return null; Object o = queue.firstElement(); queue.removeElementAt(0);//or queue[0] = null can also work return o;}}因为java中是locked by object的所以添加synchronized 就可以用于线程同步锁定对象可以作为多线程处理多任务的存放task的队列。他的client包括封装好的task类以及thread类Java的多线程-线程间的通信2009-08-25 21:581. 线程的几种状态线程有四种状态,任何一个线程肯定处于这四种状态中的一种:1) 产生(New):线程对象已经产生,但尚未被启动,所以无法执行。如通过new产生了一个线程对象后没对它调用start()函数之前。2) 可执行(Runnable):每个支持多线程的系统都有一个排程器,排程器会从线程池中选择一个线程并启动它。当一个线程处于可执行状态时,表示它可能正处于线程池中等待排排程器启动它;也可能它已正在执行。如执行了一个线程对象的start()方法后,线程就处于可执行状态,但显而易见的是此时线程不一定正在执行中。3) 死亡(Dead):当一个线程正常结束,它便处于死亡状态。如一个线程的run()函数执行完毕后线程就进入死亡状态。4) 停滞(Blocked):当一个线程处于停滞状态时,系统排程器就会忽略它,不对它进行排程。当处于停滞状态的线程重新回到可执行状态时,它有可能重新执行。如通过对一个线程调用wait()函数后,线程就进入停滞状态,只有当两次对该线程调用notify或notifyAll后它才能两次回到可执行状态。2. class Thread下的常用函数函数2.1 suspend()、resume()1) 通过suspend()函数,可使线程进入停滞状态。通过suspend()使线程进入停滞状态后,除非收到resume()消息,否则该线程不会变回可执行状态。2) 当调用suspend()函数后,线程不会释放它的“锁标志”。例11:class TestThreadMethod extends Thread{public static int shareVar = 0;public TestThreadMethod(String name){super(name);}public synchronized void run(){if(shareVar==0){for(int i=0; i5; i ){shareVar ;if(shareVar==5){this.suspend(); //(1)}}}else{System.out.print(Thread.currentThread()
那你 只有 把 代码放到数据库,让后去读数据库,修改的时候改变数据就行了
这样就能实现 修改后 持久化了