- 浏览: 243490 次
- 性别:
- 来自: 西安
文章分类
最新评论
-
243035985:
顶红色的那段
eclipse增加struts.xml智能提示(绝对能用) -
spiritdyh:
不错!!!
eclipse增加struts.xml智能提示(绝对能用) -
xiarilian12:
lovelimx 写道{myEquipSN:encodeURI ...
以"对象"方式接收json数据.(解决乱码问题) -
xiarilian12:
qiaolevip 写道用不成,应该是版本的问题吧。JSONO ...
以"对象"方式接收json数据.(解决乱码问题) -
qiaolevip:
用不成,应该是版本的问题吧。JSONObject jsonOb ...
以"对象"方式接收json数据.(解决乱码问题)
一个接口ReadWriteInt ,一个实现类ReadWriteIntImp ,代码如下:
效率:1W两秒,10W溢出
package com.netunit.workbench.util; import java.io.IOException; import java.util.List; /** * 读写XML接口 * @author Ming.He * * @Data 2009-12-21 */ public interface ReadWriteInt { /** * 把数据写入xml文件 * @param list * @param cls * @throws IOException */ public void writeXML(List list, Class cls) throws IOException; /** * 把数据重xml读出来 * @param cls * @return * @throws Exception */ public List readXML(Class cls) throws Exception; }
package com.netunit.workbench.util; import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.lang.reflect.Field; import java.lang.reflect.Method; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import org.dom4j.Document; import org.dom4j.DocumentHelper; import org.dom4j.Element; import org.dom4j.io.OutputFormat; import org.dom4j.io.SAXReader; import org.dom4j.io.XMLWriter; /** * 读写XML的实现 * @author Ming.He * * @Data 2009-12-21 */ public class ReadWriteIntImp implements ReadWriteInt { /** * 文件名 */ private File file ; /** * 设置编码 */ private String encoding = "GBK"; private String roots = "root"; public ReadWriteIntImp(File file) { this.file = file; } public void writeXML(List list, Class cls) throws IOException{ String className = cls.getName(); //类名包含包名 String classes = className.substring(className.lastIndexOf(".")+1,className.length());//类名 XMLWriter writer = null; // 声明写XML的对象 OutputFormat format = OutputFormat.createPrettyPrint(); format.setEncoding(encoding); // 设置XML文件的编码格式 Document document = DocumentHelper.createDocument(); Element root = document.addElement(roots);//根节点 Element two = root.addElement(classes+"s"); two.addAttribute("class", className); Element three = null; for (int i=0;i<list.size();i++){ three = two.addElement(classes); insert(three,list.get(i),cls); } writer = new XMLWriter(new FileWriter(file), format); writer.write(document); writer.close(); } private void insert(Element three,Object object,Class cls){ Element tem = null; String name = null; Field[] field = cls.getDeclaredFields(); //所有字段 for (int i=0;i<field.length;i++){ name = field[i].getName(); tem = three.addElement(name); try { Method methodTitle = cls.getMethod(getOnetoUpperCase(name));//查找这个字段的get方法 tem.setText(methodTitle.invoke(object)+""); //执行get方法 } catch (Exception e) { e.printStackTrace(); } } } /** * 生成get方法 * @param str * @return */ private String getOnetoUpperCase(String str){ return "get"+ firsttoUpperCase(str); } /** * 生成set方法 * @param str * @return */ private String setOnetoUpperCase(String str){ return "set"+ firsttoUpperCase(str); } /** * 第一个字母大写 * @param str * @return */ private String firsttoUpperCase(String str){ return Character.toUpperCase(str.charAt(0)) + str.substring(1); } public List readXML(Class cls) throws Exception{ List list = new ArrayList(); String className = cls.getName();//类名包含包名 String classes = className.substring(className.lastIndexOf(".")+1,className.length());//类名 // 取文件 SAXReader sr = new SAXReader(); Document doc = sr.read(file); // 取根节点 Element root = doc.getRootElement(); // 跌带跟节点. Iterator it = root.elementIterator(); while (it.hasNext()) { Element two = (Element) it.next(); // 当根节点等于datas时 if (two.getName().equalsIgnoreCase(classes+"s")) { for (Iterator i = two.elementIterator(); i.hasNext();) { Element three = (Element) i.next(); Object object = cls.newInstance(); //创建对象 Element element = null ; Field[] field ; for (Iterator y = three.elementIterator(); y.hasNext();){ element = (Element) y.next(); field = cls.getDeclaredFields(); //所有字段 for (int tem=0;tem<field.length;tem++){ if (field[tem].getName().equals(element.getName())){ field[tem].setAccessible(true); //设置属性可以修改 setObject(field[tem],object,element); } } } list.add(object); } } } return list; } private void setObject(Field field,Object object,Element element){ try { if (field.getType().toString().equals("int")) field.set(object, new Integer(element.getTextTrim())); else if (field.getType().toString().equals("double")) field.set(object, new Double(element.getTextTrim())); else if (field.getType().toString().equals("long")) field.set(object, new Long(element.getTextTrim())); else field.set(object, element.getTextTrim()); } catch (Exception e) { e.printStackTrace(); } } }
效率:1W两秒,10W溢出
发表评论
-
debug模式启动resin
2011-04-11 14:11 1602只做记录用: http://www.vinceruan.inf ... -
JAVA实现压缩/解压缩zip文件
2011-02-18 12:49 17381.import java.io.BufferedInputS ... -
MD5
2011-01-20 22:15 1345package com.zyg.security.md5; ... -
揭开正则表达式的神秘面纱(1)
2010-12-29 22:43 1070揭开正则表达式的神秘面纱(1) http://blog.cs ... -
Cookie读取与写入 Java
2010-12-29 22:39 4052Cookie读取与写入有两种方法,用程序写和用js写的两种方法 ... -
在Eclipse中导入dtd和xsd文件,使XML自动提示
2010-12-29 22:37 3368DTD 类型约束文件 1. Window->Pr ... -
MD5加密
2010-12-29 22:35 990public class MD5 { public MD5 ... -
动态页面静态化 Java
2010-12-29 22:19 2099import java.io.*; import java.n ... -
lucene整理2 -- 主要的类
2010-12-29 22:13 859http://blog.csdn.net/xiaoping84 ... -
lucene整理3 -- 排序、过滤、分词器
2010-12-29 22:11 17741. 排序 1.1. Sort类 public Sort ... -
MMAnalyzer极易中文分词组件
2010-12-29 21:46 6223支持英文、数字、中文 ... -
MathContext RoundingMode BigDecimal
2010-12-29 21:41 1201import java.math.BigDecimal; i ... -
分页助手类
2010-12-29 21:37 1328/** * 分页操作助手类 * ... -
数字操作助手类
2010-12-29 21:33 1228public class NumberHelper { ... -
java实现断点续传
2010-11-08 09:46 989/** * @{#} MainThre ... -
总结Ext grid中得到选择行的方法
2010-09-07 16:21 1164(1)grid.getStore().getRange(0,s ... -
Tomcat5.5配置-多域名绑定和虚拟目录(转载)
2010-07-05 16:53 860今天帮一个朋友搭建ospo ... -
web.xml配置详细解释(2)
2010-04-15 16:32 1434这里讨论控制servlet和JSP页面的启动行为的方法。特别是 ... -
web.xml的详细配置(1)
2010-04-15 16:31 5261 定义头和根元素 部 ... -
applicationContext.xml
2010-04-07 18:15 766<?xml version="1.0" ...
相关推荐
Java反射机制是Java语言提供的一种强大功能,它允许运行中的Java程序对自身进行...通过结合XML序列化和解析,我们可以方便地在Java对象和XML数据之间进行转换,这对于数据交换、持久化存储或者网络通信都有很大的帮助。
Java对象与XML之间的相互序列化是软件开发中常见的任务,特别是在数据交换、持久化或配置存储等场景。XML4J是一个用于Java对象到XML转换的工具,它提供了方便的方法将Java对象序列化为XML文档,同时也能从XML文档中...
Java提供了一个方便的机制来实现这一点,即`java.io.Serializable`接口。当一个类实现此接口时,它的实例可以被序列化。在某些情况下,我们可能希望将这些序列化对象以XML格式存储,以便于阅读和编辑。`java.beans`...
【标题】"dom4j+xml仿hibernate"是一个项目,旨在通过使用dom4j库处理XML文档,结合反射机制,来实现类似Hibernate的核心功能。这个项目有助于学习者深入理解和掌握Hibernate的工作原理。 【描述】在Java开发中,...
- 数据持久化框架如Hibernate利用反射操作数据库对象。 - 测试工具如JUnit利用反射来调用私有方法或构造器。 结合"XmlAndReflect"这个压缩包文件,可能包含了示例代码或教程,帮助开发者了解如何在Java中解析XML...
6. **序列化**:理解对象持久化的过程,以及如何实现Serializable接口。 7. **数据库**:使用JDBC进行数据库操作,包括连接、查询、事务处理等。 8. **Servlet**:学习Web应用程序开发,使用Servlet处理HTTP请求。...
熟悉XML处理API,如JAXP(Java API for XML Processing)、JDOM、DOM4J等,掌握Java与Web服务的交互技术,包括JAX-RPC、SAAJ、JAXB、JAXM、JAXR等。 ### 13. 依赖注入与控制反转 学习常用的应用框架,如Spring、...
标题中的“list输出xml”...总结来说,这个方法是通过DOM4J库,结合Java的反射和泛型技术,将List对象的元素转换为XML结构,实现数据的序列化。这在需要将业务对象持久化为XML格式或者与XML格式的数据交换时非常有用。
本项目名为"简单Java&XML数据库版网络日志",其核心是利用Java的反射机制来处理XML文件,实现一个网络日志系统。下面将详细介绍这个项目中的关键知识点。 首先,我们来理解Java反射机制。反射是Java提供的一种强大...
5. **数据库技术与ORM**:学习JDBC API,使用ORM框架如Hibernate、JDO、iBatis等进行持久化操作。理解对象关系映射(ORM)的挑战和解决方案,熟悉多种数据库系统,如Oracle、MySQL、SQL Server。 6. **安全与认证**...
14. 序列化与反序列化:将对象持久化到磁盘,或在网络间传输。 六、多线程编程 15. 线程概念:了解线程的生命周期,掌握创建线程的方法(Thread类和Runnable接口)。 16. 线程同步:synchronized关键字、wait/...
1. **反射**:深入讲解Java反射机制,如何动态获取和修改类的信息,以及动态代理的实现。 2. **注解(Annotation)**:介绍注解的使用,元注解,自定义注解以及如何通过反射处理注解。 3. **Java集合高级主题**:...
1. **面向对象分析与设计**:理解OOA(面向对象分析)和OOD(面向对象设计),掌握设计模式,如GOF(GoF设计模式)和J2EEDP(Java企业版设计模式)。学习UML(统一建模语言),特别是类图、对象图、交互图和状态图。...
XStream的工作原理是通过反射机制来理解Java对象的结构,并将其转换为XML表示。这个过程叫做序列化。同样,它可以将XML数据转换回对应的Java对象,这个过程称为反序列化。XStream的一个显著特点是其易于使用,用户只...
3. **Java反射机制**:反射是Java的一种高级特性,允许运行时动态访问和修改类的属性和方法。在ORM中,反射用于在运行时动态获取类的信息,如类名、属性名、字段名和类型,以便于根据这些信息执行对应的set方法,将...
针对企业级应用,Java提供了一系列的API,如Servlet、JSP、EJB、JMS、JPA等,用于构建Web应用、分布式计算、消息传递和持久化数据等。 1. **Servlet**:`javax.servlet`和`javax.servlet.http`包定义了服务器端应用...
5. **数据库技术**:学习SQL和至少一种持久化/ORM框架,如Hibernate、JDO、iBatis等,以及如何处理对象关系映射(ORM)的挑战。熟悉不同类型的数据库系统,如Oracle、MySQL和SQL Server。 6. **Web开发**:掌握...
5. **数据库技术与持久化/ORM框架**:JAVA程序员应熟悉数据库技术,至少掌握一种持久化/ORM框架如Hibernate、JDO或iBatis,这有助于数据访问和管理。同时,了解不同数据库产品(如Oracle、MySQL、MS SQL Server)的...
总的来说,学习Java需要从基础理论到实践操作全面覆盖,通过不断的学习、实践和项目经验积累,才能成为一名合格的Java开发者。在每个阶段,都应重视理论与实践的结合,以便更好地理解和运用所学知识。
- 反射:了解如何通过反射机制动态调用方法和访问属性。 - IO流:熟练掌握文件读写、网络流和对象序列化。 2. **JavaWeb技术**: - JavaScript:基础的前端脚本语言,用于页面交互和动态效果。 - jQuery:简化...