package com.test;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.XMLWriter;
public class Create {
public static void main(String[] args) {
//document
Document document = DocumentHelper.createDocument();
//设置DocType
document.addDocType("hibernate-configuration" , "-//Hibernate/Hibernate Configuration DTD 3.0//EN" , "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd");
//hibernate-configuration
Element configuration = document.addElement("hibernate-configuration");
//session-factory
Element sessionfactory = configuration.addElement("session-factory");
sessionfactory.addComment("Database connection settings");
//driver
Element classDriver = sessionfactory.addElement("property");
classDriver.addAttribute("name", "connection.driver_class");
classDriver.setText("com.mysql.jdbc.Driver");
//url
Element url = sessionfactory.addElement("property");
url.addAttribute("name", "connection.url");
url.setText("jdbc:mysql://localhost:3306/1ting");
//username
Element username = sessionfactory.addElement("property");
username.addAttribute("name", "connection.username");
username.setText("root");
//password
Element password = sessionfactory.addElement("property");
password.addAttribute("name", "connection.password");
password.setText("root");
//pool
sessionfactory.addComment("pool size management");
Element pool = sessionfactory.addElement("property");
pool.addAttribute("name", "connection.pool_size");
pool.setText("1");
//dialect
sessionfactory.addComment("dialect management");
Element dialect = sessionfactory.addElement("property");
dialect.addAttribute("name", "dialect");
dialect.setText("org.hibernate.dialect.MySQL5Dialect");
//showsql
sessionfactory.addComment("showsql");
Element showsql = sessionfactory.addElement("property");
showsql.addAttribute("name", "show_sql");
showsql.setText("true");
//hbm2ddl
sessionfactory.addComment("Drop and re-create the database schema on startup");
Element hbm2ddl = sessionfactory.addElement("property");
hbm2ddl.addAttribute("name", "hbm2ddl.auto");
hbm2ddl.setText("update");
//mapping
sessionfactory.addComment("mapping class");
Element mapping1 = sessionfactory.addElement("mapping");
mapping1.addAttribute("class", "edu.hzu.entity.SingerType");
Element mapping2 = sessionfactory.addElement("mapping");
mapping2.addAttribute("class", "edu.hzu.entity.Singer");
//生成xml
XMLWriter writer = null;
//设置输出格式
OutputFormat format = new OutputFormat();
format.setEncoding("utf-8");
format.setIndent(true);
format.setLineSeparator("\n");
format.setNewlines(true);
try {
writer = new XMLWriter(format);
writer.setOutputStream(new FileOutputStream("hibernate.cfg.xml"));
writer.write(document);
writer.flush();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if(writer != null) {
try {
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
package com.test;
import java.io.File;
import java.util.List;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import org.dom4j.xpath.DefaultXPath;
public class Reader {
@SuppressWarnings("unchecked")
public static void main(String[] args) {
SAXReader reader = new SAXReader();
System.out.println("read all properties");
System.out.println("-------------------");
try {
Document document = reader.read(new File("hibernate.cfg.xml"));
DefaultXPath propertyPath = new DefaultXPath("/hibernate-configuration/session-factory/property");
List<Element> selectNodes = propertyPath.selectNodes(document);
for (Element property : selectNodes) {
String name = property.attributeValue("name");
String text = property.getText();
System.out.println(name + " : " + text);
}
System.out.println("-------------------");
System.out.println("Mappings");
System.out.println("-------------------");
DefaultXPath mappingPath = new DefaultXPath("/hibernate-configuration/session-factory/mapping");
List<Element> mappings = mappingPath.selectNodes(document);
for (Element mapping : mappings) {
System.out.println(mapping.attributeValue("class"));
}
} catch (DocumentException e) {
e.printStackTrace();
}
}
}
分享到:
相关推荐
标题中的“Jdom生成hibernate.cfg.xml和读取其中内容”涉及到两个主要知识点:一是JDOM库在Java中解析和生成XML文档的应用,二是利用JDOM操作Hibernate配置文件`hibernate.cfg.xml`。 首先,JDOM是Java Document ...
1. **解析XML配置文件**:使用Java的DOM或SAX解析器读取`hibernate.cfg.xml`,获取到所有`<class>`标签的相关信息。 2. **获取表名和字段信息**:从每个`<class>`标签中提取出表名,并通过JDBC连接查询数据库获取表...
- `dom4j.jar`: 用于XML处理,包括读写XML文件,是Hibernate的默认XML解析库。 - `slf4j-api.jar` 和 `slf4j-log4j12.jar`: 日志框架,SLF4J提供日志接口,而log4j是具体的实现。 - 数据库驱动:根据你使用的...
在Hibernate中,dom4j主要用于读取和解析Hibernate的配置文件,如`hibernate.cfg.xml`,从而动态构建SessionFactory,极大地简化了配置过程。 三、c3p0在Hibernate中的配置与使用 要将c3p0作为Hibernate的连接池,...
1. **dom4j.jar**:用于XML处理,Hibernate使用它来读取和解析配置文件。 2. **slf4j-api.jar**和相应的实现库:日志框架,提供简单易用的日志接口,如log4j、logback等。 3. **javassist.jar**:动态类生成和修改...
7. **dom4j.jar** 或 **jdom.jar**:XML解析库,Hibernate使用它们来读取和写入XML格式的映射文件。 使用Hibernate时,首先需要配置一个`hibernate.cfg.xml`文件,定义数据库连接参数和全局设置。然后,创建实体类...
7. **dom4j-1.6.1.jar**:XML处理库,Hibernate使用它来处理XML配置文件,如.hibernate.cfg.xml,解析并构建对象模型。 8. **jandex-2.0.0.Final.jar**:Jandex是JetBrains开发的Java类索引库,Hibernate利用它快速...
在Hibernate中,dom4j被用作默认的XML解析器,负责解析和生成Hibernate的配置文件(如hibernate.cfg.xml)以及实体类的映射文件(如.hbm.xml)。通过dom4j,Hibernate可以轻松地处理XML元数据,创建和更新数据库表...
5. **dom4j-x.x.x.jar**:这是一个XML处理库,Hibernate使用它来处理XML配置文件,如.hibernate.cfg.xml,以及生成XML形式的查询结果。 6. **javassist-x.x.x.GA.jar**:Hibernate使用javassist动态修改类的字节码...
5. 其他依赖库:如slf4j-api.jar、dom4j.jar等,用于日志和XML处理。 五、使用示例 在实际开发中,我们首先需要在hibernate.cfg.xml中配置数据库连接信息,然后创建实体类,并通过注解@Entity、@Table等定义与...
3. **dom4j-x.x.x.jar**:这是一个XML处理库,Hibernate使用它来处理XML配置文件,如hibernate.cfg.xml,以及XML形式的映射文件,如.hbm.xml,这些文件定义了实体类与数据库表之间的映射关系。 4. **jta-x.x.x.jar*...
在Hibernate中,dom4j被用来读取和写入配置文件,比如Hibernate的配置文件(hibernate.cfg.xml),以及映射文件(hbm.xml)。它提供了灵活的API来处理XML元素和属性,使得Hibernate能够根据XML配置进行数据库的交互。 2...
4. **读取XML数据**:使用`JAXB`或`DOM`等API解析XML文件,提取省市区的三级数据。解析后,将数据封装成对应的实体对象。 5. **配置SessionFactory**:通过`Configuration`类创建`SessionFactory`,它是Hibernate的...
6. **dom4j-1.6.1.jar**:DOM4J是一个Java的XML处理库,用于读写、操作XML文档。Hibernate使用它来处理XML配置文件,如hibernate.cfg.xml。 7. **hibernate-jpa-2.0-api-1.0.1.Final.jar**:包含JPA 2.0的API定义,...
**dom4j.jar** - Hibernate使用dom4j作为XML处理库,用于解析和操作Hibernate配置文件(如hibernate.cfg.xml),以及映射文件(如.hbm.xml)。dom4j提供了一种灵活的方式来处理XML文档,包括读取、创建和修改XML结构...
Xerces-J的SAX解析器可以用于处理Hibernate的配置文件(如hibernate.cfg.xml),解析并验证XML内容,确保数据正确无误地加载到应用程序中。 5. 应用场景 Xerces-J在多个领域有广泛应用: - Web服务:XML是Web服务...
6. **dom4j-1.6.1.jar**:这是一个XML处理库,Hibernate使用它来处理XML配置文件以及生成SQL语句。 7. **jandex.jar**:Jandex是一个Java元数据索引器,用于快速查找和解析注解,这对Hibernate的注解驱动的实体管理...
7. **dom4j-*.jar**:这是一个灵活的XML处理库,Hibernate用它来处理XML配置文件,如hibernate.cfg.xml和实体的映射文件(hbm.xml)。 8. **slf4j-api.jar**和相关的实现库(如logback-classic.jar):SLF4J...
- dom4j.jar:XML处理库,用于映射XML配置文件和结果集。 - slf4j-api.jar及实现:日志框架接口,如log4j或logback,用于记录Hibernate的日志信息。 4. 使用流程: - 配置Hibernate:创建hibernate.cfg.xml文件...