package com.core.annotation;import static java.lang.annotation.elementtype.type;import static java.lang.annotation.retentionpolicy.runtime;import java.lang.annotation.retention;import java.lang.annotation.target;/** * @author zy * @version 创建时间:jul 2, 2010 2:39:20 pm */@target({type})@retention(runtime)public @interface table { public abstract string name() default ""; public abstract string catalog() default ""; public abstract string schema() default ""; }package com.core.annotation;import static java.lang.annotation.elementtype.field;import static java.lang.annotation.elementtype.method;import static java.lang.annotation.retentionpolicy.runtime;import java.lang.annotation.retention;import java.lang.annotation.target;/** * @author zy * @version 创建时间:jul 2, 2010 2:54:28 pm */@target({field,method})@retention(runtime)public @interface column { public abstract string name() default ""; public abstract boolean unique() default false; public abstract boolean nullable() default true; public abstract string type() default "string"; public abstract string definition() default ""; public abstract int length() default 32; }package com.entity;import java.io.serializable;import com.core.annotation.column;import com.core.annotation.table;/** * @author zy * @version 创建时间:jul 6, 2010 9:15:18 am */@table(name="t_user")public class user implements serializable{ private static final long serialversionuid = 6602217772155966261l; string id; string name; string sex; @column(name="user_name") public string getname() { return name; } public void setname(string name) { this.name = name; } @column(name="sex") public string getsex() { return sex; } public void setsex(string sex) { this.sex = sex; } public string getid() { return id; } public void setid(string id) { this.id = id; }}package com.core.util;import java.io.serializable;import java.lang.reflect.invocationtargetexception;import java.lang.reflect.method;import com.entity.user;import com.core.annotation.column;import com.core.annotation.table;/** * @author zy * @version 创建时间:jul 2, 2010 2:00:55 pm */public class annotationutil { @suppresswarnings("unchecked") public static string save(user u){ string temp = null; stringbuffer sb = new stringbuffer(); string id = string.valueof(u.getid()); if(id == null || id.trim().equals("")){ stringbuffer key = new stringbuffer(); stringbuffer value = new stringbuffer(); sb.append("insert into "); class c = u.getclass(); object [] obj = null; if(c != null && c.isannotationpresent(table.class)){ table table = (table) c.getannotation(table.class); try { temp = table.name(); if(temp.trim().equals("")){ sb.append(c.getname().trim()); }else{ sb.append(temp.trim()); } } catch (exception e) { sb.append(c.getname().trim()); } }else{ sb.append(c.getname().trim()); } method [] method = u.getclass().getdeclaredmethods(); for(method m : method){ if(m != null && m.isannotationpresent(column.class)){ column column = m.getannotation(column.class); temp = column.name(); if(temp.trim().equals("")){ key.append(m.getname().substring(3).trim()).append(","); }else{ key.append(temp.trim()).append(","); } try { temp = string.valueof(m.invoke(u, obj)); value.append("'").append(temp.trim()).append("',"); } catch (illegalargumentexception e) { e.printstacktrace(); value.append("'',"); } catch (illegalaccessexception e) { e.printstacktrace(); value.append("'',"); } catch (invocationtargetexception e) { e.printstacktrace(); value.append("'',"); } } } key.deletecharat(key.lastindexof(",")); value.deletecharat(value.lastindexof(",")); sb.append(" (").append(key).append(") values"); sb.append(" (").append(value).append(")"); }else{ sb.append("update "); class c = u.getclass(); object [] obj = null; if(c != null && c.isannotationpresent(table.class)){ table table = (table) c.getannotation(table.class); try { temp = table.name(); if(temp.trim().equals("")){ sb.append(c.getname().trim()); }else{ sb.append(temp.trim()); } } catch (exception e) { sb.append(c.getname().trim()); } }else{ sb.append(c.getname().trim()); } sb.append(" set "); method [] method = u.getclass().getdeclaredmethods(); for(method m : method){ if(m != null && m.isannotationpresent(column.class)){ column column = m.getannotation(column.class); temp = column.name(); if(temp.trim().equals("")){ sb.append(m.getname().substring(3).trim()).append("="); try { temp = string.valueof(m.invoke(u, obj)); sb.append("'").append(temp.trim()).append("',"); } catch (illegalargumentexception e) { e.printstacktrace(); sb.append("'',"); } catch (illegalaccessexception e) { e.printstacktrace(); sb.append("'',"); } catch (invocationtargetexception e) { e.printstacktrace(); sb.append("'',"); } }else{ sb.append(temp.trim()).append("="); try { temp = string.valueof(m.invoke(u, obj)); sb.append("'").append(temp.trim()).append("',"); } catch (illegalargumentexception e) { e.printstacktrace(); sb.append("'',"); } catch (illegalaccessexception e) { e.printstacktrace(); sb.append("'',"); } catch (invocationtargetexception e) { e.printstacktrace(); sb.append("'',"); } } } } sb.deletecharat(sb.lastindexof(",")); sb.append(" where id='").append(id.trim()).append("'"); } return sb.tostring(); } @suppresswarnings("unchecked") public static string delete(user u,serializable id){ string temp = null; stringbuffer sb = new stringbuffer("delete from "); class c = u.getclass(); if(c != null && c.isannotationpresent(table.class)){ table table = (table)c.getannotation(table.class); try { temp = table.name(); if(temp.trim().equals("")){ sb.append(c.getname().trim()); }else{ sb.append(temp.trim()); } } catch (exception e) { sb.append(c.getname().trim()); } }else{ sb.append(c.getname().trim()); } sb.append(" where id='").append(string.valueof(id)).append("'"); return sb.tostring(); } @suppresswarnings("unchecked") public static void main(string[] args) { user user = new user(); user.setid("234"); user.setname("历史"); user.setsex("男"); system.out.println(save(user)); system.out.println(delete(user,"123")); }}
分享到:
相关推荐
annotation.jar eclipse插件,根据数据库自动生成pojo
本文将深入探讨如何利用注解(Annotation)来实现这一功能,以提高代码的可读性和可维护性。我们将从标题“利用annotation完成对象间的属性拷贝”出发,结合描述中提到的博客链接,探讨这一技术。 首先,注解是一种...
在新的改进中,我们可以利用注解将Action类转化为POJO,摆脱对特定基类的依赖。 2. **Annotation支持**:注解在Java开发中已经成为一种常见的元数据声明方式。通过引入注解,我们可以简化配置,比如在Action类或...
使用jsf1.2+spring3.0+hibernate3.3实现集成,利用annotation实现自动对象管理注入,用户表的登录增删改查操作,包括验证码ajax集成,消息机制,国际化处理,自定义转换器,自定义验证器等 qq:38732796 欢迎讨论
例如,编译器可以根据Annotation发出警告,或者文档生成器可以利用Annotation自动生成API文档。 2. **Annotation的语法**:在Java中,创建Annotation使用类似于访问修饰符的新语法。每个Annotation都有一个名称和零...
Annotation是Java中的注解,它允许程序员在源代码中插入一些元数据,这些元数据可以被编译器、构建工具或者运行时环境用来生成代码、验证代码、配置系统等。它提供了一种安全、可扩展的方式来关联信息到代码中,而...
Java提供了Annotation Processing Tool(apt),可以在编译阶段对带有特定注解的代码进行处理,如生成额外的源代码或修改现有代码,从而实现自动化代码生成或代码检查。 #### 六、标准Annotation与Meta-Annotation ...
本知识点将深入探讨如何利用SpringBoot实现数据库的增删改查操作。 一、SpringBoot入门 SpringBoot的核心理念是“约定优于配置”,它内置了Tomcat服务器,自动配置了Spring MVC、Spring Data JPA等模块,使得开发者...
Java Annotation 是 JDK5.0 引入的一种元数据机制,它允许程序员在代码中嵌入额外的信息,这些信息可以被编译器、构建工具或运行时系统用来执行特定的任务。Annotation 提供了一种安全、灵活的方式来描述代码的属性...
"TsignRecgTrain4170Annotation.rar"数据集是针对手势识别训练的一个资源,尤其是手语识别。它包含了4170个样本,每个样本代表一个特定的手势。数据集中的“Annotation”部分可能指的是每个手势样本的注释信息,例如...
赠送jar包:jakarta.annotation-api-1.3.5.jar; 赠送原API文档:jakarta.annotation-api-1.3.5-javadoc.jar; 赠送源代码:jakarta.annotation-api-1.3.5-sources.jar; 赠送Maven依赖信息文件:jakarta.annotation...
在Java编程中,注解(Annotation)是一种元数据,它提供了在代码中插入信息的方式,这些信息...在IDEA这样的集成开发环境中,利用`annotationProcessor`变得非常方便,只需简单的配置即可享受到这一功能带来的便利。
在Java世界里,注解是一种强大的工具,允许程序员在代码中添加元数据,这些元数据可以被编译器、构建工具或者运行时环境用来进行各种验证和处理。 【描述】"java.lang.ClassNotFoundException: javax.annotation....
在生成的DTO和POJO类中,注解可以用来标记字段,以便于框架如Hibernate或MyBatis进行ORM(对象关系映射)操作。 `JavaBeanTool_2.0`可能是插件的一个版本号,暗示这个工具已经经过了多次迭代和优化。JavaBean是一种...
使用"get-annotation"库,开发者可以方便地进行以下操作: 1. **提取文档元数据**:通过解析JSDoc注释,获取函数的参数、返回值、类的属性等信息,为自动生成API文档提供数据。 2. **代码分析**:注释包含了代码的...
例如,对于`CommonDao_V1.01`这样的子文件,可能包含的是某个具体数据表的DAO实现,它继承自`BaseDao`,并提供针对该表的定制化操作。 总结来说,连接池配置是提升系统性能的重要手段,而`BaseDao`类则是数据库操作...
赠送jar包:javax.annotation-api-1.2.jar; 赠送原API文档:javax.annotation-api-1.2-javadoc.jar; 赠送源代码:javax.annotation-api-1.2-sources.jar; 赠送Maven依赖信息文件:javax.annotation-api-1.2.pom;...