`
shuaigg.babysky
  • 浏览: 567627 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

使用dom4j生成和读取hibernate.cfg.xml

阅读更多
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生成hibernate.cfg.xml和读取其中内容”涉及到两个主要知识点:一是JDOM库在Java中解析和生成XML文档的应用,二是利用JDOM操作Hibernate配置文件`hibernate.cfg.xml`。 首先,JDOM是Java Document ...

    根据hibernate.cfg.xml文件生成POJO数据库表的工具类

    1. **解析XML配置文件**:使用Java的DOM或SAX解析器读取`hibernate.cfg.xml`,获取到所有`&lt;class&gt;`标签的相关信息。 2. **获取表名和字段信息**:从每个`&lt;class&gt;`标签中提取出表名,并通过JDBC连接查询数据库获取表...

    hibernate.rar

    - `dom4j.jar`: 用于XML处理,包括读写XML文件,是Hibernate的默认XML解析库。 - `slf4j-api.jar` 和 `slf4j-log4j12.jar`: 日志框架,SLF4J提供日志接口,而log4j是具体的实现。 - 数据库驱动:根据你使用的...

    hibernate-release-5.2.16.Final源码包

    在Hibernate中,dom4j主要用于读取和解析Hibernate的配置文件,如`hibernate.cfg.xml`,从而动态构建SessionFactory,极大地简化了配置过程。 三、c3p0在Hibernate中的配置与使用 要将c3p0作为Hibernate的连接池,...

    hibernate-3.2.6.ga.zip

    1. **dom4j.jar**:用于XML处理,Hibernate使用它来读取和解析配置文件。 2. **slf4j-api.jar**和相应的实现库:日志框架,提供简单易用的日志接口,如log4j、logback等。 3. **javassist.jar**:动态类生成和修改...

    hibernate包jar

    7. **dom4j.jar** 或 **jdom.jar**:XML解析库,Hibernate使用它们来读取和写入XML格式的映射文件。 使用Hibernate时,首先需要配置一个`hibernate.cfg.xml`文件,定义数据库连接参数和全局设置。然后,创建实体类...

    Hibernate.zip

    7. **dom4j-1.6.1.jar**:XML处理库,Hibernate使用它来处理XML配置文件,如.hibernate.cfg.xml,解析并构建对象模型。 8. **jandex-2.0.0.Final.jar**:Jandex是JetBrains开发的Java类索引库,Hibernate利用它快速...

    Hibernate第三方类库

    在Hibernate中,dom4j被用作默认的XML解析器,负责解析和生成Hibernate的配置文件(如hibernate.cfg.xml)以及实体类的映射文件(如.hbm.xml)。通过dom4j,Hibernate可以轻松地处理XML元数据,创建和更新数据库表...

    hibernate 中所要使用的jar文件

    5. **dom4j-x.x.x.jar**:这是一个XML处理库,Hibernate使用它来处理XML配置文件,如.hibernate.cfg.xml,以及生成XML形式的查询结果。 6. **javassist-x.x.x.GA.jar**:Hibernate使用javassist动态修改类的字节码...

    java使用hibernate操作数据库jar

    5. 其他依赖库:如slf4j-api.jar、dom4j.jar等,用于日志和XML处理。 五、使用示例 在实际开发中,我们首先需要在hibernate.cfg.xml中配置数据库连接信息,然后创建实体类,并通过注解@Entity、@Table等定义与...

    hibernate里面常用jar包

    3. **dom4j-x.x.x.jar**:这是一个XML处理库,Hibernate使用它来处理XML配置文件,如hibernate.cfg.xml,以及XML形式的映射文件,如.hbm.xml,这些文件定义了实体类与数据库表之间的映射关系。 4. **jta-x.x.x.jar*...

    hibernate必须用到的jar

    在Hibernate中,dom4j被用来读取和写入配置文件,比如Hibernate的配置文件(hibernate.cfg.xml),以及映射文件(hbm.xml)。它提供了灵活的API来处理XML元素和属性,使得Hibernate能够根据XML配置进行数据库的交互。 2...

    完整XML读取数据,省市区三级插入数据库的Hibernate的实现。

    4. **读取XML数据**:使用`JAXB`或`DOM`等API解析XML文件,提取省市区的三级数据。解析后,将数据封装成对应的实体对象。 5. **配置SessionFactory**:通过`Configuration`类创建`SessionFactory`,它是Hibernate的...

    Hibernate必备jar文件

    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定义,...

    hibernate所需jar包.rar

    **dom4j.jar** - Hibernate使用dom4j作为XML处理库,用于解析和操作Hibernate配置文件(如hibernate.cfg.xml),以及映射文件(如.hbm.xml)。dom4j提供了一种灵活的方式来处理XML文档,包括读取、创建和修改XML结构...

    Xerces-J-src.1.3.0.zip

    Xerces-J的SAX解析器可以用于处理Hibernate的配置文件(如hibernate.cfg.xml),解析并验证XML内容,确保数据正确无误地加载到应用程序中。 5. 应用场景 Xerces-J在多个领域有广泛应用: - Web服务:XML是Web服务...

    hibernate需要的10个jar

    6. **dom4j-1.6.1.jar**:这是一个XML处理库,Hibernate使用它来处理XML配置文件以及生成SQL语句。 7. **jandex.jar**:Jandex是一个Java元数据索引器,用于快速查找和解析注解,这对Hibernate的注解驱动的实体管理...

    hibernate jar包

    7. **dom4j-*.jar**:这是一个灵活的XML处理库,Hibernate用它来处理XML配置文件,如hibernate.cfg.xml和实体的映射文件(hbm.xml)。 8. **slf4j-api.jar**和相关的实现库(如logback-classic.jar):SLF4J...

    hibernate-release-4.3.9.Final.rar

    - dom4j.jar:XML处理库,用于映射XML配置文件和结果集。 - slf4j-api.jar及实现:日志框架接口,如log4j或logback,用于记录Hibernate的日志信息。 4. 使用流程: - 配置Hibernate:创建hibernate.cfg.xml文件...

Global site tag (gtag.js) - Google Analytics