- 浏览: 659277 次
- 性别:
- 来自: 常州
文章分类
- 全部博客 (345)
- java (63)
- Struts2 (11)
- Spring2.5 + (17)
- Hibernate (25)
- Struts2 Spring hibernate (5)
- log4j (3)
- apache tomcat (12)
- oracle (22)
- oracle_存储过程 (4)
- mysql (18)
- jquery (11)
- prototype (5)
- js (19)
- quartz (5)
- 设计模式 (6)
- eclipse/MyEclipse 注意事项 (9)
- eclipse (0)
- css (6)
- 正则表达式 (2)
- linux (18)
- PHP (6)
- 多线程 (20)
- XML (1)
- jstl (3)
- mongoDB (7)
- android (20)
- 反射 (1)
- IOS (46)
- SVN (3)
- C/C++ (4)
- 百度地图 (2)
- IO/SOCKET (3)
- 百度地图JS (1)
- 树莓派/香蕉派 (1)
最新评论
-
anny101:
想转发一下,不知道怎么转发。评论一下吧。方便查看。
fetch = FetchType.EAGER 作用 -
Navee:
果然我这也是是防火墙问题
解决 Linux 安装 httpd局域网无法访问 -
dhyang909:
...
oracle 10g+ 行列转换 -
国产希特勒:
真强,居然有人把公司的面试题挂到javaeye上了
锦江国际的一道面试题(很简单) -
tomfish88:
比如我要拦截不同业务的service类里面的方法 @Poi ...
Spring AOP annotation 拦截表达式 分析
经常要读取txt或者excel到数据库
以前都是读取后然后转成list,然后set到表对象(hibernate映射的表对象),
然后再session.save(entity),
如果文件中的title很多的话,就太麻烦了。
现在用java 反射,可以轻松解决
ClubWinterActivity是表对象,new String[]{}中是txt中的title,就是说取这些值,放入表对象的这些字段:
List<ClubWinterActivity> list = (List<ClubWinterActivity>) ParserTxtFileUtils .getListByFile(file, ClubWinterActivity.class, new String[] { "cwatype", "cwatimes", "cwacustomername", "cwavin","flag"});
读取每行txt,放入getObject()中
public static List<?> getListByFile(File file, Class<?> clazz, String[] fieldNames) throws Exception { List<Object> list = new ArrayList<Object>(); InputStreamReader isr = new InputStreamReader(new FileInputStream(file), "GB2312"); BufferedReader br = new BufferedReader(isr); String line = null; while (null != (line = br.readLine())) { Object o = getObject(line, clazz, fieldNames); if(null != o) list.add(o); } return list; }
private static Object getObject(String line, Class<?> clazz, String[] fieldNames) throws Exception { Object o = null; if (!"".equals(line)) { o = clazz.newInstance(); String[] values = line.split(","); setObjectFieldsValue(o, values, fieldNames); } return o; }
把值set到o中
private static void setObjectFieldsValue(Object o, String[] values, String[] fieldNames) throws Exception { if (null != values && values.length > -1) { for (int i = 0; i < fieldNames.length; i++) { Field field = o.getClass().getDeclaredField(fieldNames[i]); field.setAccessible(true); String typeName = field.getType().getSimpleName(); if ("Long".equals(typeName) || "long".equals(typeName)) field.set(o, Long.parseLong(values[i])); else if ("Date".equals(typeName)) field.set(o, DateUtils.getDateByFormat(values[i], Constants.DATEFORMAT1)); else if ("Integer".equals(typeName) || "int".equals(typeName)) field.set(o, Integer.parseInt(values[i])); else if ("Double".equals(typeName) || "double".equals(typeName)) field.set(o, Double.parseDouble(values[i])); else if ("Float".equals(typeName) || "float".equals(typeName)) field.set(o, Float.parseFloat(values[i])); else if ("Boolean".equals(typeName) || "boolean".equals(typeName)) field.set(o, Boolean.parseBoolean(values[i])); else field.set(o, values[i]); } } }
发表评论
-
fastjson格式化日期 时间
2016-07-19 10:23 751@JSONField (format="HH ... -
将博客搬至CSDN
2014-11-24 10:03 18将博客搬至CSDN -
centos 安装 java7,tomcat7,mysql5.6,mongodb
2014-10-24 11:30 917chkconfig --list tomcat7 ... -
mongodb 分组 得到第一条数据
2014-10-06 13:52 2090业务逻辑: 控制器每分钟上报采集数据,现需得到每个控制器 ... -
2进制,10进制,16进制
2014-08-19 16:39 1017// 1个字节8位,最大可表示255 // 2进 ... -
Buffer的基本用法
2014-08-14 11:47 7331、对buffe.put(**)后,都要buffer.fl ... -
mongodb删除已处理过的数据,即非新增数据
2014-08-12 17:36 549/** * 删除已处理过的数据( ... -
编写一个程序,开启3个线程,这3个线程的ID分别为A、B、C,每个线程将自己的ID在屏幕上打印10遍,要求输出结果必须按ABC的顺序显示;如:ABCABC
2014-08-07 13:10 2324package test1; import j ... -
java 多线程 笔试题
2014-08-07 12:30 12581、4线程,2个对i加,2个对i减 2、实现孙线程 ... -
基于ArrayBlockingQueue的生产者和消费者
2014-08-06 23:02 741学习写的测试,可能有BUG。 有了ArrayBlocki ... -
每隔一秒打印一次日志,共16秒打印完,加4个线程修改程序,使之4秒打印完
2014-08-06 17:20 1166原来的程序: package test1; publ ... -
通过semaphore信号灯,开启多个线程,但只并发3个线程
2014-08-04 22:07 919package com.mhm.test1; ... -
用锁实现缓存机制
2014-08-01 14:11 824package test1; import java. ... -
用Lock和Condition,实现主线程执行5次,子线程再执行10次,孙线程执行15次,如此反复5次
2014-08-01 13:50 857package test1; import java. ... -
用Lock和Condition,实现主线程执行5次,子线程再执行10次,孙线程执行15次,如此反复5次
2014-08-01 13:49 1package test1; import ja ... -
通过代码,解释ExecutorService基本用法
2014-07-29 17:49 596package test1; import ja ... -
4线程,2个对i加,2个对i减
2014-07-29 16:23 857package test1; /** * 设计 ... -
简单多线程卖票代码
2014-07-29 15:45 852public class Thread2 { pu ... -
通过代码,了解ThreadLocal
2014-07-29 14:06 539在看此代码时,先看http://www.iteye.com ... -
子线程先执行10次,主线程执行5次,子线程再执行10次,主线程再执行5次,如此反复3次
2014-07-28 22:21 790package com.mhm.test1; / ...
相关推荐
- **反射与动态代理**:掌握Java反射API的使用,以及如何实现动态代理。 7. **代码优化:** - **代码规范**:遵循良好的命名规则,避免魔法数字和硬编码,以及编写清晰的注释。 - **性能优化**:了解CPU缓存和...
在Java编程领域,掌握一些实用的小技巧能够极大地提高开发效率和代码质量。下面将详细探讨这些"java编程小技巧共享"中的关键知识点。 1. **注释规范**:良好的注释是代码可读性的保障。使用Javadoc为类、方法添加...
这篇文档集合了VC和Java编程的一些小技巧,旨在帮助开发者提高效率,解决实际问题。以下是对这些小技巧的详细解读: 1. **VC++编程技巧**: - **内存管理**:VC++中,理解智能指针如`shared_ptr`和`unique_ptr`的...
Java反射API主要由`java.lang.Class`、`java.lang.reflect.Method`、`java.lang.reflect.Field`等类组成。通过这些类,我们可以获取类的信息,实例化对象,以及动态调用方法和访问字段。 1. **缓存Class对象**:...
这份"Java习惯用法总结编程小技巧共14页.pdf"压缩文件,显然是为了帮助开发者提升编程效率,减少错误,并掌握Java的一些最佳实践。以下是根据标题和描述提炼出的一些关键知识点: 1. **代码风格与格式**:良好的...
9. **反射**:如果程序具有动态加载类或调用方法的能力,可能使用了Java的反射机制。 【学习与实践】 对于初学者,理解并掌握Java语言的基本概念是至关重要的。可以通过阅读Java官方文档,参加在线课程或购买相关...
Java反射机制是一种在运行时查询、监视和操作类、方法、字段和对象的机制,其提供了一种强大的编程能力,允许程序在运行时进行自我检查和调整行为。Java Reflection in Action这本书作为Java反射机制的经典之作,...
Java是一种广泛使用的面向对象的编程语言,以其跨平台、健壮性和高效性而闻名。...通过阅读和实践这些代码,你可以逐步掌握Java编程的基础知识和技巧,从而深化对Java的理解,为成为一名合格的Java开发者打下坚实基础。
总的来说,这个程序集涉及了Java对XML的解析,XML到数据库的映射,以及使用反射进行动态操作的技巧,这些都是Java开发中的核心技能,对于理解Java应用程序的内部工作原理以及提高代码的灵活性和可维护性具有重要意义...
这份"Java常见错误列表Java开发Java经验技巧共20页"的资料旨在帮助初学者和有经验的开发者更好地理解和解决这些问题,提高编程效率。以下是对这份资源中可能包含的关键知识点的详细阐述: 1. **错误类型与分类**: ...
"200个Java初学者必看的小程序"这个压缩包,显然是一个精心整理的学习资料集合,旨在帮助新手逐步理解并掌握Java编程的基础和实践技巧。 1. **基础语法**:Java的基本语法包括变量、数据类型、运算符、控制结构(如...
Java面试是每位Java开发者职业生涯中的重要关卡,它不仅测试技术实力,还考察问题解决能力、团队合作精神以及沟通技巧。以下将详细解析Java面试中常见的知识点,帮助求职者做好充分准备。 一、基础概念 1. Java语言...
在Java编程世界里,"Java源代码小Demo"是一份宝贵的学习资源,它包含了多个精心设计的小型示例项目,旨在帮助初学者快速理解和掌握Java编程的基础知识。这些示例通常涵盖了一些基本概念、语法结构以及常用API的使用...
通过研究“Java小程序集锦”,开发者不仅能巩固基础,还能了解如何将Java的特性应用于实际问题中,提升编程技巧和解决问题的能力。这些小程序就像一个个微缩的实战项目,对于学习和教学Java语言都极具价值。
在Java编程语言中,了解一个对象的大小是重要的性能优化技巧之一。这涉及到内存管理和垃圾回收的细节。本文将深入探讨如何计算Java对象的大小,以及这个知识点在实际开发中的应用。 首先,Java对象的大小不仅仅包括...
13. **反射**:Java反射API允许在运行时检查类、接口、字段和方法的信息,甚至动态调用方法和访问字段。 14. **注解(Annotation)**:注解是一种元数据,可以为编译器或JVM提供有关代码的附加信息,例子可能涉及...
在这个“java小程序带源码”的资源中,初学者将有机会深入理解Java编程的基本概念和实践技巧。 首先,Java语言是面向对象的,它的核心特性包括封装、继承和多态。在源码中,你可以看到类(class)的定义,这是Java...
Java程序设计技巧1001例是一本专为Java初学者和进阶者设计的教程,旨在通过大量的实例,帮助读者深入理解并熟练运用Java语言。这本书覆盖了从基础语法到高级特性的广泛主题,旨在提升读者在实际编程中的技能和效率。...