利用Annotation构建针对POJO进行增删改操作

本文详细介绍了数据库操作方法及实体类设计规范,包括插入、更新、删除操作,以及属性注解的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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"));	}}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值