- 浏览: 543139 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (278)
- freemarker (6)
- flex应用 (12)
- Ext应用 (11)
- 软件 (16)
- java (61)
- 报表 (6)
- 框架基础 (6)
- 登录页面素材 (7)
- oracle (1)
- cas (10)
- lucene (6)
- linux (11)
- 视频 (10)
- springmvc (3)
- 视频服务器相关 (12)
- 开发工具 (7)
- IOS (20)
- 网站相关 (4)
- Java 任务调度系统带图形界面的 (1)
- maven (2)
- android (29)
- hadoop (3)
- SpagoBI (3)
- docx4j (4)
- 多线程 (2)
- storm (2)
- mobile 框架 (3)
- scala (1)
- socket (1)
- saiku (1)
最新评论
-
ZXCLTN:
1.streams目录,在里面放些flv,mp3之类的文件,这 ...
red5 整合到tomcat中(二) -
ZXCLTN:
写的没偷没尾的,还不如提供整个项目下载
red5 整合到tomcat中(二) -
01jiangwei01:
测试方法1:测试50个线 ...
hibernate 乐观锁 测试 -
01jiangwei01:
测试方法1:测试50个线程,同时并发访问。目标:只有一个通过, ...
hibernate 乐观锁 测试 -
xiaobadi:
你每次登陆都是跳到http://localhost:8081/ ...
cas 系统实例 服务端配置(二) 自定义登录
设定bean类
public class TestAnnotation { /** The field descriptor map. * 返回由指定映射支持的同步(线程安全的)映射。为了保证按顺序访问,必须通过返回的映射完成所有对底层实现映射的访问 * 在返回映射的任意 collection 视图上进行迭代时,用户必须手工在返回的映射上进行同步 * */ private static Map<String, Map<String, FieldDescriptor>> fieldDescriptorMap = Collections.synchronizedMap(new HashMap<String, Map<String, FieldDescriptor>>()); @Column(name="id") private int id; @Column(name="name") private String name; @Column(name="age") private double age; @Column(name="birthday") private Date birthday; @Transient private String wifeName; 省略set和get方法 }
读取该类的属性,使用方法
public static List<PropertyMapping> mappingProperty(Class<?> clazz, boolean simpleType) throws SQLException, ClassNotFoundException, InstantiationException, IllegalAccessException { List<PropertyMapping> mappingList = new ArrayList<PropertyMapping>(); Map<String, FieldDescriptor> fieldMap = BeanUtils.getFieldDescriptors(clazz); if (fieldMap == null || fieldMap.isEmpty()) return mappingList; Collection<FieldDescriptor> fields = fieldMap.values(); // Field[] fields = clazz.getDeclaredFields(); // if ( fields==null || fields.length==0 ) return mappingList; Class<?> fieldClass = null; int modifier = 0; boolean isSimpleType = true; PropertyMapping mapping = null; Field field = null; for (FieldDescriptor f : fields) { field = f.getField(); fieldClass = field.getType(); // field.getModifiers():以整数形式返回由此 Field 对象表示的字段的 Java 语言修饰符。应该使用 // Modifier 类对这些修饰符进行解码。 modifier = field.getModifiers(); if ((modifier & Modifier.FINAL) > 0 || (modifier & Modifier.NATIVE) > 0 || (modifier & Modifier.STATIC) > 0 || (modifier & Modifier.TRANSIENT) > 0 || (modifier & Modifier.VOLATILE) > 0) { continue; } isSimpleType = BaseUtils.isBaseType(fieldClass); if (simpleType && isSimpleType) { // 基本类型 mapping = fillBaseTypePropertyMapping(field); if (mapping != null) mappingList.add(mapping); } else if (!simpleType && !isSimpleType) { // 关联对象类型 mapping = fillComplexTypePropertyMapping(field); if (mapping != null) mappingList.add(mapping); } } return mappingList; }
判断类属性使用了匹配注解不,使用下列方法
/** * Fill base type property mapping. * * @param field * the field * @return the property mapping * @throws SQLException * the sQL exception */ private static PropertyMapping fillBaseTypePropertyMapping(Field field) throws SQLException { String propertyName = field.getName(); Class<?> fieldClass = field.getType(); PropertyMapping mapping = new PropertyMapping(); mapping.setPropertyName(propertyName); mapping.setPropertyClass(fieldClass); ColumnMapping columnMapping = new ColumnMapping(); mapping.setColumnMapping(columnMapping); Annotation annotation = null; // process for Column Annotation annotation = field.getAnnotation(Column.class); if (annotation != null) { String columnName = ((Column) annotation).name(); if (columnName == null || columnName.length() == 0) { columnName = getDefaultColumn(propertyName); } columnMapping.setColumnName(columnName); String alias = ((Column) annotation).alias(); if (alias != null && alias.length() > 0) { columnMapping.setAlias(alias); } } else { columnMapping.setColumnName(getDefaultColumn(propertyName)); } // process for Transient Annotation annotation = field.getAnnotation(Transient.class); if (annotation != null) { mapping.setTransientField(true); return mapping; } // process for Id Annotation annotation = field.getAnnotation(Id.class); if (annotation != null) { mapping.setPrimaryKey(true); int strategy = ((Id) annotation).strategy(); if (strategy == GenerationType.SEQUENCE) { String generator = ((Id) annotation).generator(); mapping.setGenerateStrategy(strategy); if (!StringUtils.isBlank(generator)) { mapping.setGenerator(generator); } } } // process for Clob Annotation annotation = field.getAnnotation(Clob.class); if (annotation != null) { if (!"java.lang.String".equals(fieldClass.getName())) throw new SQLException("Clob column must mapping to String. "); columnMapping.setLobType(LobType.CLOB); columnMapping.setLobLazy(((Clob) annotation).lazy()); } // process for Blob Annotation annotation = field.getAnnotation(Blob.class); if (annotation != null) { if (!"[B".equals(fieldClass.getName())) throw new SQLException("Blob column must mapping to byte[]"); columnMapping.setLobType(LobType.BLOB); columnMapping.setLobLazy(((Blob) annotation).lazy()); } annotation = field.getAnnotation(Search.class); if (annotation != null) { if (!((Search) annotation).exclude()) { ColumnSearch searchInfo = ColumnSearch .getDefaultInstance(fieldClass); searchInfo.setType(((Search) annotation).type()); searchInfo.setFetch(((Search) annotation).fetch()); searchInfo.setIgnoreValue(fieldClass.getName(), ((Search) annotation).ignoreValue()); columnMapping.setSearchInfo(searchInfo); } } if (columnMapping.getColumnName() == null) { columnMapping.setColumnName(getDefaultColumn(propertyName)); } return mapping; }
oneToMany 等
private static PropertyMapping fillComplexTypePropertyMapping(Field field) throws SQLException, ClassNotFoundException, InstantiationException, IllegalAccessException { String propertyName = field.getName(); Class<?> fieldClass = field.getType(); PropertyMapping mapping = new PropertyMapping(); mapping.setPropertyName(propertyName); mapping.setPropertyClass(fieldClass); Annotation transientAnnotation = field.getAnnotation(Transient.class); Annotation oneToOneAnnotation = field.getAnnotation(OneToOne.class); Annotation oneToManyAnnotation = field.getAnnotation(OneToMany.class); Annotation manyToManyAnnotation = field.getAnnotation(ManyToMany.class); Annotation idAnnotation = field.getAnnotation(Id.class); Annotation columnAnnotation = field.getAnnotation(Column.class); if (oneToOneAnnotation != null || oneToManyAnnotation != null || manyToManyAnnotation != null) { if (columnAnnotation == null) throw new SQLException( "must assign column for relation mapping"); String foreignColumn = ((Column) columnAnnotation).name(); if (StringUtils.isBlank(foreignColumn)) throw new SQLException( "Relation Type must asign column name for " + mapping.getPropertyName()); mapping.setForeignColumn(foreignColumn); mapping.setComplexType(false); if (oneToOneAnnotation != null) { String refColumn = ((OneToOne) oneToOneAnnotation) .referenceColumn(); boolean lazy = ((OneToOne) oneToOneAnnotation).lazy(); PropertyMapping refPropertyMapping = null; if (refColumn == null) { EntityMapping refEntityMapping = EntityMappingFactory .getEntityMapping(fieldClass); refPropertyMapping = refEntityMapping.getIdMapping(); refColumn = refPropertyMapping.getColumnName(); } mapping.setReloationType(RelationType.oneToOne); mapping.setReferenceClass(fieldClass); mapping.setReferenceColumn(refColumn); mapping.setLoadLazy(lazy); } else if (oneToManyAnnotation != null) { String refColumn = ((OneToMany) oneToManyAnnotation) .referenceColumn(); String orderBy = ((OneToMany) oneToManyAnnotation).orderBy(); boolean lazy = ((OneToMany) oneToManyAnnotation).lazy(); Type gType = field.getGenericType(); if (!(gType instanceof ParameterizedType)) { throw new SQLException( "OneToMany mapping must be a ParameterizedType. reference column=" + refColumn); } ParameterizedType pType = (ParameterizedType) gType; Class<?> rowClass = (Class<?>) pType.getRawType(); if (!"java.util.List".equals(rowClass.getName())) { throw new SQLException( "OneToMany mapping must be a List. reference column=" + refColumn); } Type[] args = pType.getActualTypeArguments(); if (args.length != 1) { throw new SQLException( "ParameterizedType must have a argument. OneToMany mapping reference column=" + refColumn); } Class<?> refClass = (Class<?>) args[0]; mapping.setReloationType(RelationType.oneToMany); mapping.setReferenceClass(refClass); mapping.setReferenceColumn(refColumn); mapping.setReferenceOrder(orderBy); mapping.setLoadLazy(lazy); } else { String refColumn = ((ManyToMany) manyToManyAnnotation) .referenceColumn(); String orderBy = ((ManyToMany) manyToManyAnnotation).orderBy(); String relationTable = ((ManyToMany) manyToManyAnnotation) .relationTable(); String relationRefCol1 = ((ManyToMany) manyToManyAnnotation) .relationRefColumn1(); String relationRefCol2 = ((ManyToMany) manyToManyAnnotation) .relationRefColumn2(); boolean lazy = ((ManyToMany) manyToManyAnnotation).lazy(); Type gType = field.getGenericType(); if (!(gType instanceof ParameterizedType)) { throw new SQLException( "ManyToMany mapping must be a ParameterizedType. reference column=" + refColumn); } ParameterizedType pType = (ParameterizedType) gType; Class<?> rowClass = (Class<?>) pType.getRawType(); if (!"java.util.List".equals(rowClass.getName())) { throw new SQLException( "MayToMany mapping must be a collection. reference column=" + refColumn); } Type[] args = pType.getActualTypeArguments(); if (args.length != 1) { throw new SQLException( "ParameterizedType must have a argument. ManyToMany mapping reference column=" + refColumn); } Class<?> refClass = (Class<?>) args[0]; mapping.setReloationType(RelationType.manyToMany); mapping.setReferenceClass(refClass); mapping.setReferenceColumn(refColumn); mapping.setReferenceOrder(orderBy); mapping.setRelationTable(relationTable); mapping.setRelationRefCol1(relationRefCol1); mapping.setRelationRefCol2(relationRefCol2); mapping.setLoadLazy(lazy); } } else { if (!EntityUtils.isEntity(fieldClass)) { return null; } mapping.setComplexType(true); if (transientAnnotation != null) { mapping.setTransientField(true); } else if (idAnnotation != null) { mapping.setPrimaryKey(true); } ObjectMapping objectMapping = EntityMappingFactory .loadObjectMapping(fieldClass); mapping.setObjectMapping(objectMapping); for (PropertyMapping pm : objectMapping.getPropertyMap().values()) { pm.setPrimaryKey(mapping.isPrimaryKey()); pm.setTransientField(mapping.isTransientField()); } } return mapping; }
发表评论
-
AESUtils
2018-01-17 14:13 520import java.io.UnsupportedEnc ... -
lbs比较两点坐标
2018-01-16 09:56 0int distance = (int) (S2LatLng. ... -
java ftp上传文件
2017-12-25 10:43 601工具类: import org.apache.c ... -
redis应用方法
2017-11-30 11:47 5621:统计一段时间内,某 ... -
风控系统1
2017-10-12 18:40 650... -
可以保持session的java代码片段
2017-07-12 21:04 661import java.io.File; impor ... -
ubuntu 搭建开发环境
2015-06-16 15:39 0jdk 可以参看其他网站; export JAVA_HO ... -
主线程等待10秒钟,无应答返回(一)
2015-06-05 15:26 2519场景需求: 其他应用向我们的应用A发来请求,如果应用 ... -
drools书籍
2015-03-13 18:23 970附件中有drools书籍 -
一个Tomcat支持不同的域名访问各自不同程序的配置方法
2015-03-11 09:56 564更多信息可以参考网址:http://329937021.i ... -
netty5 包简读
2015-02-13 18:16 0io.netty.bootstrap; 启动器i ... -
netty5 入门翻译
2015-02-12 18:01 867翻译网页网址:http://n ... -
spring-jms
2015-01-12 11:45 722这里写篇文章记录一下jms持久化到mysqlde 使用方 ... -
git 命令大全
2014-11-12 10:03 718git 学习网址http://git-scm.com/bo ... -
groovy eclipse 插件
2014-10-06 16:58 741eclipse version 4.4.0 groovy ... -
docx4j word 工具类及测试类
2014-10-02 22:14 1550import java.io.ByteArrayInputS ... -
docx4j 替换文本
2014-09-29 11:25 1481采用docx4j 替换word模板内容,并输出进行保存 ... -
docx4j 动态生成表格 (一 )
2014-09-28 19:18 1835使用docx4j模板动态制作表格代码实现过程(一 ),模 ... -
java 开发的各种例子
2014-08-13 17:55 648springmvc + springsecurity 实 ... -
tomcat 根项目部署方式
2014-07-08 09:50 591<Host name="admin.yid ...
相关推荐
MySQL是一种广泛使用的开源关系型数据库管理系统,而Java实体类则是将数据库表结构映射到编程语言中的对象,便于进行对象关系映射(ORM)。本话题将详细介绍如何通过原生JDBC连接MySQL数据库,自动获取所有表名并...
java利用内存映射读取大文件。并且捉行输出。
在Java编程中,XML(eXtensible Markup Language)是一种常用的数据交换格式,常用于存储配置信息或数据映射。本程序集的核心是利用Java解析XML文件,将XML中的数据映射到数据库,并通过反射机制进行数据库操作。...
### MongoDB、Java与对象关系映射 #### MongoDB简介与特性 MongoDB作为一种强大的NoSQL数据库,在处理非结构化数据方面有着显著的优势。它通过使用JSON(JavaScript Object Notation)格式来存储和检索数据,简化...
将MySQL中的表映射到Java实体类是一种常见的做法,它使得开发者可以通过对象的方式来操作数据库,大大提高了开发效率。这个压缩包文件可能包含了一个示例,展示了如何将MySQL的表结构映射为Java类。 首先,我们要...
- **Maven Plugins**:如maven-jaxb2-plugin,用于自动生成Java类,这些类可以直接映射到XML schema。 - **IDE集成**:Eclipse和IntelliJ IDEA等IDE提供XML到Java对象的绑定功能,简化开发过程。 4. **自定义映射...
在Java编程中,读取数据库并将其...总的来说,"读取数据库类写成java类"涉及了Java的数据库连接、SQL查询、结果集处理、对象映射以及面向对象的属性读写。理解这些概念对于开发与数据库交互的Java应用程序至关重要。
在Java中,我们主要使用`java.net`包下的类来实现端口映射。这些类包括`ServerSocket`、`Socket`、`DatagramSocket`等。`ServerSocket`用于监听特定端口的连接请求,而`Socket`则用于建立客户端和服务端的连接。在...
读取mysql数据库,创建所有的Entity实体类,实体类里面有对应的注释,数据库的comment会作为字段的注释。 生成dao文件以及对应的mapper.xml文件,这是为了mybaits准备的。 mapper.xml文件里面配置了resultMap,实现...
在 Java 应用程序中使用 JDBC 访问数据库时,需要将 SQL 数据类型映射到 Java 类型,以便在 Java 应用程序和数据库之间读写数据。JDBC 提供了 getXXX 和 setXXX 方法集、registerOutParameter 方法和 Types 类来实现...
Java实体类(Entity Class)作为数据模型的表示,与数据库中的表进行映射,使得开发者能够更方便地操作数据库。本主题主要讲解如何利用工具或自定义脚本将MySQL数据表自动生成对应的Java实体类,提高开发效率。 ...
2. `ReadShareMemory.java` 类则负责读取映射文件中的数据。同样,通过`RandomAccessFile`打开文件并获取`FileChannel`,然后映射文件到内存中。读取数据时,检查状态标记,根据标记确定是否可以读取,然后读取并...
这篇博客文章“使用 Spring LDAP 读取数据并映射到 Java Bean 中”主要探讨了如何通过Spring LDAP来查询LDAP目录信息,并将查询结果转换为Java对象,以便在应用程序中进一步处理。 首先,`pom.xml`文件是Maven项目...
读取mysql数据库,创建所有的Entity实体类,实体类里面有对应的注释,数据库的comment会作为字段的注释。 生成dao文件以及对应的mapper.xml文件,这是为了mybaits准备的。 mapper.xml文件里面配置了resultMap,实现...
标题 "USB-IC读写器Java_Jna示例源码.rar" 提供的是一个使用Java通过JNA(Java Native Access)技术调用DLL动态库来读写IC卡的示例项目。这个项目主要关注的是在Java环境中实现对IC卡,如MIFARE One卡的读写操作,这...
如果这是一个Java程序,通常包含一个主类,该类包含运行程序所需的逻辑,包括但不限于读取文件夹路径,查找可用盘符,以及创建并绑定文件夹与选定盘符的映射关系。 对于这类工具的工作原理,一般会涉及以下几个关键...
本教程将深入讲解如何使用Java读取JSON文件,并将其内容转化为Map以便进行取值操作。 首先,我们需要引入处理JSON的库。Java标准库并不直接支持JSON操作,所以我们通常会使用第三方库,如`org.json`或`...
以上就是使用Java读取和解析GRIB2文件的基本步骤和涉及的关键技术。实际应用中,你可能还需要根据具体需求进行数据处理、统计分析或集成到更大的系统中。学习和理解GRIB2格式以及选择合适的库是成功处理这些文件的...
1. 加载KML文件:使用Java的FileInputStream类打开文件,然后通过JAXBContext创建一个上下文,以便将XML数据映射到Java对象。 2. 解析KML文件:使用Unmarshaller接口从KML文件中生成对应的Java对象模型。 3. 遍历KML...
### HDF5 文件结构以及基于 Java 的读写 #### HDF 概述 HDF(Hierarchical Data Format)是一种自我描述、多对象的文件格式,专为高效地存储和分发科学数据而设计。它由美国国家超级计算应用中心(NCSA)开发,...