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

Jdom生成hibernate.cfg.xml和读取其中内容

阅读更多
package com.test;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

import org.jdom.Comment;
import org.jdom.DocType;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.output.Format;
import org.jdom.output.XMLOutputter;

public class Create {
	
	public static void main(String[] args) {
		//xml文档
		Document document = new Document();
		//DocType声明
		DocType docType = new DocType("hibernate-configuration" , "-//Hibernate/Hibernate Configuration DTD 3.0//EN" , "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd");
		//使用doc声明
		document.setDocType(docType);
		//根结点 hibernate-configuration
		Element root = new Element("hibernate-configuration");
		//设置document的根结点
		document.setRootElement(root);
		//节点 session-factory
		Element sessionfactory = new Element("session-factory");
		//将session-factory设置到root
		root.addContent(sessionfactory);
		//添加注释
		sessionfactory.addContent(new Comment("Database connection settings"));
		//添加driver-class
		Element driverClass = new Element("property");
		driverClass.setAttribute("name", "connection.driver_class");
		driverClass.setText("com.mysql.jdbc.Driver");
		sessionfactory.addContent(driverClass);
		//添加url
		Element url = new Element("property");
		url.setAttribute("name", "connection.url");
		url.setText("jdbc:mysql://localhost:3306/1ting");
		sessionfactory.addContent(url);
		//添加用户名
		Element username = new Element("property");
		username.setAttribute("name", "connection.username");
		username.setText("root");
		sessionfactory.addContent(username);
		//添加密码
		Element password = new Element("property");
		password.setAttribute("name", "connection.username");
		password.setText("root");
		sessionfactory.addContent(password);
		//添加注释
		sessionfactory.addContent(new Comment("JDBC connection pool (use the built-in)"));
		//添加pool
		Element pool = new Element("property");
		pool.setAttribute("name", "connection.pool_size");
		pool.setText("1");
		sessionfactory.addContent(pool);
		//添加注释
		sessionfactory.addContent(new Comment("SQL dialect"));
		//添加方言
		Element dialect = new Element("property");
		dialect.setAttribute("name", "dialect");
		dialect.setText("org.hibernate.dialect.MySQL5Dialect");
		sessionfactory.addContent(dialect);
		//添加注释
		sessionfactory.addContent(new Comment("Echo all executed SQL to stdout"));
		//添加showsql
		Element showsql = new Element("property");
		showsql.setAttribute("name", "show_sql");
		showsql.setText("true");
		sessionfactory.addContent(showsql);
		//添加注释
		sessionfactory.addContent(new Comment("Drop and re-create the database schema on startup"));
		//添加hbm2ddl
		Element hbm2ddl = new Element("property");
		hbm2ddl.setAttribute("name", "hbm2ddl.auto");
		hbm2ddl.setText("update");
		sessionfactory.addContent(hbm2ddl);
		//添加注释
		sessionfactory.addContent(new Comment("mapping class"));
		//添加mapping
		Element mapping1 = new Element("mapping");
		mapping1.setAttribute("class", "edu.hzu.entity.SingerType");
		sessionfactory.addContent(mapping1);
		
		Element mapping2 = new Element("mapping");
		mapping2.setAttribute("class", "edu.hzu.entity.Singer");
		sessionfactory.addContent(mapping2);
		//生成xml
		XMLOutputter outputter = new XMLOutputter();
		//获得漂亮输出
		Format format = Format.getPrettyFormat();
		outputter.setFormat(format);
		//生成xml文件
		try {
			outputter.output(document, new FileOutputStream("hibernate.cfg.xml"));
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}

 

package com.test;

import java.io.File;
import java.io.IOException;
import java.util.List;

import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.input.SAXBuilder;
import org.jdom.xpath.XPath;

public class Read {
	@SuppressWarnings("unchecked")
	public static void main(String[] args) {
		SAXBuilder builder = new SAXBuilder();
		try {
			System.out.println("Get all properties");
			System.out.println("----------------------");
			Document document = builder.build(new File("hibernate.cfg.xml"));
			//首先获得所有的property节点的name和text
			List<Element> properties = XPath.selectNodes(document, "/hibernate-configuration/session-factory/property");
			for (Element property : properties) {
				System.out.println(property.getAttributeValue("name") + " : " + property.getText());
			}
			System.out.println("----------------------");
			
			System.out.println("Get all Mappings");
			System.out.println("----------------------");
			//再次获得所有mapping节点的class
			List<Element> mappings = XPath.selectNodes(document, "/hibernate-configuration/session-factory/mapping");
			for (Element mapping : mappings) {
				System.out.println(mapping.getAttributeValue("class"));
			}
		} catch (JDOMException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}

 

分享到:
评论

相关推荐

    jdom-1.1.zip jdom-1.1.jar jdom.jar jdom库 jdom操作xml

    在Java应用程序中,JDOM扮演着核心角色,允许开发者以面向对象的方式处理XML数据,极大地简化了XML的解析和生成过程。 JDOM-1.1是该库的一个版本,它包含了对XML标准的全面支持以及一些性能优化。`jdom-1.1.zip`是...

    jdom.zip_jdom-1.0.jar包_xml java JDOM

    JDOM,全称为Java Document Object Model,是一种专为Java设计的XML处理库。...通过下载并导入jdom.zip中的jdom-1.0.jar,开发者可以轻松地集成XML处理功能到他们的Java应用程序中,从而实现各种XML相关的任务。

    jdom-1.0.jar,jdom-1.0.jar,jdom-1.0.jar,jdom-1.0.jar

    jdom-1.0.jar,jdom-1.0.jar,jdom-1.0.jar,jdom-1.0.jar,jdom-1.0.jar

    jdom-1.1.zip_java jdom_jdom-1.0.jar包_jdom-1.1_jdom-1.1.1.tar.gz

    通过导入这个jar包,开发者可以在他们的项目中直接使用JDOM的功能,如读取XML文件、创建新的XML结构、修改现有XML内容以及遍历XML树形结构。 随着技术的发展,JDOM随后发布了1.1版本,带来了性能优化和新功能。`...

    基于java的开发源码-用jdom解析xml.zip

    基于java的开发源码-用jdom解析xml.zip 基于java的开发源码-用jdom解析xml.zip 基于java的开发源码-用jdom解析xml.zip 基于java的开发源码-用jdom解析xml.zip 基于java的开发源码-用jdom解析xml.zip 基于java的开发...

    jdom-1.1.tar.gz

    1. **读取XML**:通过`org.jdom.input.SAXBuilder`,你可以从XML文件构建一个`org.jdom.Document`对象,该对象表示整个XML文档的根节点。例如: ```java SAXBuilder builder = new SAXBuilder(); Document doc = ...

    java.lang.ClassNotFoundException: org.jdom.input.SAXBuilder 处理

    JDOM是一个用于处理XML文档的Java API,它提供了创建、修改和读取XML文档的功能。SAXBuilder是JDOM中的一个关键类,用于将XML数据解析为JDOM对象模型。 首先,让我们深入了解`ClassNotFoundException`的背景。当...

    JDOM创建XML完整实例和jdom-2.0.5.jar

    在工作中发现jdom生成xml标签如&lt;taxML xmlns:xsi="http://www.worg/2001/XMLSchema-instance" xsi:type="Fb1"cnName="附表1" name="Fb1"version="SW5001-2006"&gt; 不能用冒号的问题root.setAttribute("xsi:type", "fb1...

    jdom-1.1.3.jar包用于解析XML文件

    使用Jdom.jar包解析XML文件,JDOM是一个开源项目,它基于树型结构,利用纯JAVA的技术对XML文档实现解析、生成、序列化以及多种操作。JDOM直接为JAVA编程服务。它利用更为强有力的JAVA语言的诸多特性(方法重载、集合...

    jdom 读取XML 文件

    通过上述步骤,你就能使用JDOM有效地读取、解析和修改XML文件了。这个库提供了丰富的功能,能够满足大部分XML处理需求,同时它的API简洁直观,使得开发人员能快速上手。在实际应用中,结合JDOM与其他工具,如XPath...

    jdom-2.0.5.jar(带一个源程序)

    提供的压缩包中包含了一个操作XML的源程序示例,这通常会展示如何使用JDOM API来完成XML的读取、修改和写入。例如: 1. **读取XML**:使用`SAXBuilder`类解析XML文件,将其转化为Document对象。 2. **查找元素**:...

    JDOM中XPath.selectNodes()和XPath.selectSingleNode()用法

    在Java开发中,XML处理是常见的任务之一,而JDOM是一个流行的Java库,用于解析、构建和修改XML文档。XPath是一种强大的查询语言,用于在XML文档中定位元素、属性和其他节点。本文将深入探讨JDOM库中XPath的相关方法...

    jdom-1.0.jar.rar_jdom_jdom-1.0.j_jdom-1.0.jar_jdom.jar 1_jdom1.0

    其中,jdom-1.0.jar是JDOM 1.0的主要实现,而jdom.jar可能是一个早期版本或者特定环境下的优化版本。在实际使用中,根据项目需求和兼容性考虑选择合适的版本。 尽管随着时间的推移,新的XML解析库如DOM4J、Woodstox...

    jdom-1.0.jar

    此外,XML也常作为RESTful API的数据载体,JDOM可以帮助开发者轻松地解析和生成响应数据。 值得注意的是,虽然JDOM-1.0.jar提供了解析XML的强大功能,但它并不包含XML的压缩或解压缩功能。如果你需要处理压缩的XML...

    jdom-1.1.zip_jdom-1.0.jar包_jdom.z_jdom.zip_zip

    标题中的"jdom-1.1.zip_jdom-1.0.jar包_jdom.z_jdom.zip_zip"提及了几个关键的文件和版本,这主要涉及Java的XML处理库——JDOM。JDOM是一个用于处理XML文档的纯Java库,它提供了方便的API来创建、修改和读取XML数据...

    jdom-2.0.3.jar

    jdom-2.0.3.jar是java读取XML文件所需的jar包

    jdom_student.rar_XML通讯录_java通讯录 xml

    本项目以"jdom_student.rar"为例,详细阐述如何使用Java和JDOM库生成XML文件,并通过XLS和HTML两种方式进行通讯录内容的展现。 首先,JDOM是一个Java API,用于处理XML文档,提供了读取、修改和创建XML文档的能力。...

    jdom-2.0.2.zip

    JDOM 2.0.2是JDOM库的一个稳定版本,提供了一套完整的API,使得Java程序员可以方便地创建、修改和读取XML文档。该版本包含了以下几个关键组件: 1. **jdom-2.0.2-javadoc.jar**:这个文件包含了JDOM 2.0.2的API文档...

    jdom-1.1.3.zip

    JDOM 1.1.3是一个Java实现的DOM(Document Object Model)解析器,它专注于提供纯Java解决方案,以实现XML文档的读取、修改和生成。相比其他解析器,如DOM4J或XOM,JDOM更注重性能和内存效率,同时保持了API的简洁性...

Global site tag (gtag.js) - Google Analytics