import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Properties;import org.apache.tools.ant.Project;
import org.hibernate.tool.ant.ConfigurationTask;
import org.hibernate.tool.ant.HibernateToolTask;
public class TestHibernateTools {
/**
* 创建hibernate.cfg.xml
* 这个方法会生成hibernate.cfg.xml文件
*/
public void createCfgXML(
String showSQL,String dialect, String driverClass,
String url,String username,String password){
try {
Project project = new Project(); //新建ant project
HibernateToolTask hibernateToolTask = new HibernateToolTask(); //新建一个task
hibernateToolTask.setProject(project);//设置task的project
hibernateToolTask.setDestDir(new File("F:/new/Test/src/hbm"));//目标文件的物理地址
//先生成properties文件
Properties properties = new Properties();
properties.setProperty("hibernate.show_sql", showSQL);
properties.setProperty("hibernate.dialect", dialect);
properties.setProperty("hibernate.connection.driver_class", driverClass);
properties.setProperty("hibernate.connection.url", url);
properties.setProperty("hibernate.connection.username", username);
properties.setProperty("hibernate.connection.password", password);
properties.store(new FileOutputStream ("F:/new/Test/src/hbm/cfg.properties"), "cfg");//输出cfg.properties文件
//加载properties文件
ConfigurationTask cfgTask = hibernateToolTask.createJDBCConfiguration();
cfgTask.setPropertyFile(new File("F:/new/Test/src/hbm/cfg.properties"));
//生成hibernate.cfg.xml文件
hibernateToolTask.createHbm2CfgXml();
hibernateToolTask.execute();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e){
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* 读取hibernate.cfg.xml
* 从数据库表结构创建mapping文件
* 一张表对应一个mapping文件
*/
public void createMappingXML(){
Project project = new Project();
HibernateToolTask hibernateToolTask = new HibernateToolTask();
hibernateToolTask.setProject(project);
hibernateToolTask.setDestDir(new File("F:/new/Test/src/hbm"));//设置映射文件的存放目录
//载入hibernate.cfg.xml
ConfigurationTask cfgTask = hibernateToolTask.createJDBCConfiguration();
cfgTask.setConfigurationFile(new File("F:/new/Test/src/hbm/hibernate.cfg.xml"));
//生成mapping文件
hibernateToolTask.createHbm2HbmXml();
hibernateToolTask.execute();
}
/**
* 读取hibernate.cfg.xml
* 从数据库表结构创建POJO类
* 一张表对应一个pojo类
*/
public void createPOJO(){
Project project = new Project();
HibernateToolTask hibernateToolTask = new HibernateToolTask();
hibernateToolTask.setProject(project);
hibernateToolTask.setDestDir(new File("F:/new/Test/src/hbm"));
//载入hibernate.cfg.xml
ConfigurationTask cfgTask = hibernateToolTask.createJDBCConfiguration();
cfgTask.setConfigurationFile(new File ("F:/new/Test/src/hbm/hibernate.cfg.xml"));
//生成pojo类
hibernateToolTask.createHbm2Java();
hibernateToolTask.execute();
}
}
这是一个根据一个记录了数据库信息的properties文件,生成hibernate的映射文件和pojo类,但是每次执行到hibernateToolTask.execute()的时候,它都会报如下的错误:Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/velocity/exception/MethodInvocationException
at org.hibernate.tool.hbm2x.AbstractExporter.setupTemplates(AbstractExporter.java:127)
at org.hibernate.tool.hbm2x.AbstractExporter.start(AbstractExporter.java:88)
at org.hibernate.tool.ant.ExporterTask.execute(ExporterTask.java:39)
at org.hibernate.tool.ant.HibernateToolTask.execute(HibernateToolTask.java:143)
at optimizer.TestHibernateTools.createCfgXML(TestHibernateTools.java:49)
at optimizer.Ant.main(Ant.java:20)我用包分别是:hibernate-3.1.2.jar
hibernate-tools-3.1.0-beta2.jar
ant-1.7.1.jar
请教,这个是什么原因,万分感激~~能解决这个问题,马上给分~~
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Properties;import org.apache.tools.ant.Project;
import org.hibernate.tool.ant.ConfigurationTask;
import org.hibernate.tool.ant.HibernateToolTask;
public class TestHibernateTools {
/**
* 创建hibernate.cfg.xml
* 这个方法会生成hibernate.cfg.xml文件
*/
public void createCfgXML(
String showSQL,String dialect, String driverClass,
String url,String username,String password){
try {
Project project = new Project(); //新建ant project
HibernateToolTask hibernateToolTask = new HibernateToolTask(); //新建一个task
hibernateToolTask.setProject(project);//设置task的project
hibernateToolTask.setDestDir(new File("F:/new/Test/src/hbm"));//目标文件的物理地址
//先生成properties文件
Properties properties = new Properties();
properties.setProperty("hibernate.show_sql", showSQL);
properties.setProperty("hibernate.dialect", dialect);
properties.setProperty("hibernate.connection.driver_class", driverClass);
properties.setProperty("hibernate.connection.url", url);
properties.setProperty("hibernate.connection.username", username);
properties.setProperty("hibernate.connection.password", password);
properties.store(new FileOutputStream ("F:/new/Test/src/hbm/cfg.properties"), "cfg");//输出cfg.properties文件
//加载properties文件
ConfigurationTask cfgTask = hibernateToolTask.createJDBCConfiguration();
cfgTask.setPropertyFile(new File("F:/new/Test/src/hbm/cfg.properties"));
//生成hibernate.cfg.xml文件
hibernateToolTask.createHbm2CfgXml();
hibernateToolTask.execute();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e){
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* 读取hibernate.cfg.xml
* 从数据库表结构创建mapping文件
* 一张表对应一个mapping文件
*/
public void createMappingXML(){
Project project = new Project();
HibernateToolTask hibernateToolTask = new HibernateToolTask();
hibernateToolTask.setProject(project);
hibernateToolTask.setDestDir(new File("F:/new/Test/src/hbm"));//设置映射文件的存放目录
//载入hibernate.cfg.xml
ConfigurationTask cfgTask = hibernateToolTask.createJDBCConfiguration();
cfgTask.setConfigurationFile(new File("F:/new/Test/src/hbm/hibernate.cfg.xml"));
//生成mapping文件
hibernateToolTask.createHbm2HbmXml();
hibernateToolTask.execute();
}
/**
* 读取hibernate.cfg.xml
* 从数据库表结构创建POJO类
* 一张表对应一个pojo类
*/
public void createPOJO(){
Project project = new Project();
HibernateToolTask hibernateToolTask = new HibernateToolTask();
hibernateToolTask.setProject(project);
hibernateToolTask.setDestDir(new File("F:/new/Test/src/hbm"));
//载入hibernate.cfg.xml
ConfigurationTask cfgTask = hibernateToolTask.createJDBCConfiguration();
cfgTask.setConfigurationFile(new File ("F:/new/Test/src/hbm/hibernate.cfg.xml"));
//生成pojo类
hibernateToolTask.createHbm2Java();
hibernateToolTask.execute();
}
}
这是一个根据一个记录了数据库信息的properties文件,生成hibernate的映射文件和pojo类,但是每次执行到hibernateToolTask.execute()的时候,它都会报如下的错误:Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/velocity/exception/MethodInvocationException
at org.hibernate.tool.hbm2x.AbstractExporter.setupTemplates(AbstractExporter.java:127)
at org.hibernate.tool.hbm2x.AbstractExporter.start(AbstractExporter.java:88)
at org.hibernate.tool.ant.ExporterTask.execute(ExporterTask.java:39)
at org.hibernate.tool.ant.HibernateToolTask.execute(HibernateToolTask.java:143)
at optimizer.TestHibernateTools.createCfgXML(TestHibernateTools.java:49)
at optimizer.Ant.main(Ant.java:20)我用包分别是:hibernate-3.1.2.jar
hibernate-tools-3.1.0-beta2.jar
ant-1.7.1.jar
请教,这个是什么原因,万分感激~~能解决这个问题,马上给分~~
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货