@SuppressWarnings("unchecked")
//数据插入操作
public boolean insertData(Object obj) throws Exception {
boolean result=false;
if(obj!=null){
Class cla=obj.getClass();
String tableName=cla.getSimpleName();
StringBuffer sql=new StringBuffer();
ArrayList list=new ArrayList();
sql.append("insert into ");
sql.append(tableName+"(");
Field[] fieldArray=cla.getDeclaredFields();
for(int i=0;i<fieldArray.length;i++){
ArrayList listChild=new ArrayList();
String fieldName=fieldArray[i].getName();
sql.append(fieldName+",");
String newfieldName=fieldName.substring(0,1).toUpperCase()+fieldName.substring(1);
Method meth=cla.getDeclaredMethod("get"+newfieldName);
listChild.add(i+1);
listChild.add(fieldName);
listChild.add(meth.invoke(obj));
listChild.add(meth.getReturnType().getSimpleName());
list.add(listChild);
}
sql.deleteCharAt(sql.lastIndexOf(","));
sql.append(") values(");
for(int i=0;i<fieldArray.length;i++){
sql.append("?,");
}
sql.deleteCharAt(sql.lastIndexOf(","));
sql.append(")");
int resultNum=connection.executeUpdate(sql.toString(), list);
if(resultNum>0){
result=true;
}
}
return result;
}
@SuppressWarnings("unchecked")
//数据更新操作
public boolean updateData(Object obj) throws Exception {
boolean result=false;
if(obj!=null){
Class cla=obj.getClass();
String tableName=cla.getSimpleName();
StringBuffer sql=new StringBuffer();
ArrayList list=new ArrayList();
ArrayList listByID=new ArrayList();
String fieldID="";
Object fieldIDvalue="";
String fieldIDType="";
sql.append("update ");
sql.append(tableName);
sql.append(" set ");
Field[] fieldArray=cla.getDeclaredFields();
for(int i=0;i<fieldArray.length;i++){
ArrayList listChild=new ArrayList();
String fieldName=fieldArray[i].getName();
String newfieldName=fieldName.substring(0,1).toUpperCase()+fieldName.substring(1);
Method meth=cla.getDeclaredMethod("get"+newfieldName);
if(meth.invoke(obj)!=null){
if(fieldName.lastIndexOf("ID")!=-1){
fieldID=fieldName;
fieldIDvalue=meth.invoke(obj);
fieldIDType=meth.getReturnType().getSimpleName();
}else{
sql.append(fieldName+"=?,");
listChild.add(list.size()+1);
listChild.add(fieldName);
listChild.add(meth.invoke(obj));
listChild.add(meth.getReturnType().getSimpleName());
list.add(listChild);
}
}
}
sql.deleteCharAt(sql.lastIndexOf(","));
sql.append(" where "+fieldID+"=?");
listByID.add(list.size()+1);
listByID.add(fieldID);
listByID.add(fieldIDvalue);
listByID.add(fieldIDType);
list.add(listByID);
System.out.println(sql.toString());
int resultNum=connection.executeUpdate(sql.toString(), list);
if(resultNum>0){
result=true;
}
}
return result;
}
@SuppressWarnings("unchecked")
//数据删除操作
public boolean deleteData(Object obj) throws Exception {
boolean result=false;
if(obj!=null){
Class cla=obj.getClass();
String tableName=cla.getSimpleName();
StringBuffer sql=new StringBuffer();
ArrayList list=new ArrayList();
ArrayList listByID=new ArrayList();
String fieldID="";
Object fieldIDvalue="";
String fieldIDType="";
sql.append("delete ");
sql.append(tableName);
Field[] fieldArray=cla.getDeclaredFields();
for(int i=0;i<fieldArray.length;i++){
String fieldName=fieldArray[i].getName();
String newfieldName=fieldName.substring(0,1).toUpperCase()+fieldName.substring(1);
Method meth=cla.getDeclaredMethod("get"+newfieldName);
if(meth.invoke(obj)!=null){
if(fieldName.lastIndexOf("ID")!=-1){
fieldID=fieldName;
fieldIDvalue=meth.invoke(obj);
fieldIDType=meth.getReturnType().getSimpleName();
}
}
}
sql.append(" where "+fieldID+"=?");
listByID.add(list.size()+1);
listByID.add(fieldID);
listByID.add(fieldIDvalue);
listByID.add(fieldIDType);
list.add(listByID);
System.out.println(sql.toString());
int resultNum=connection.executeUpdate(sql.toString(), list);
if(resultNum>0){
result=true;
}
}
return result;
}
@SuppressWarnings("unchecked")
//根据ID取某个实例数据,并返回ArrayList
public ArrayList<Object> getDataById(Object obj, Object Id) throws Exception {
ArrayList list_obj=null;
if(obj!=null){
list_obj=new ArrayList<Object>();
Class cla=obj.getClass();
String tableName=cla.getSimpleName();
StringBuffer sql=new StringBuffer();
ArrayList list=new ArrayList();
ArrayList listByID=new ArrayList();
String fieldID="";
Object fieldIDvalue="";
String fieldIDType="";
sql.append("select ");
Field[] fieldArray=cla.getDeclaredFields();
for(int i=0;i<fieldArray.length;i++){
String fieldName=fieldArray[i].getName();
String newfieldName=fieldName.substring(0,1).toUpperCase()+fieldName.substring(1);
Method meth=cla.getDeclaredMethod("get"+newfieldName);
if(meth.invoke(obj)!=null){
if(fieldName.lastIndexOf("ID")!=-1){
fieldID=fieldName;
fieldIDvalue=Id;
fieldIDType=meth.getReturnType().getSimpleName();
}
}
sql.append(fieldName+",");
}
sql.deleteCharAt(sql.lastIndexOf(","));
sql.append(" from ");
sql.append(tableName);
sql.append(" where "+fieldID+"=?");
listByID.add(list.size()+1);
listByID.add(fieldID);
listByID.add(fieldIDvalue);
listByID.add(fieldIDType);
list.add(listByID);
System.out.println(sql.toString());
ResultSet rs=connection.executeQuery(sql.toString(), listByID);
Object obj_n=null;
while(rs.next()){
obj_n=obj.getClass().newInstance();
Class obj_n_cla=obj_n.getClass();
Field[] obj_n_cla_array=obj_n_cla.getDeclaredFields();
for(int i=0;i<obj_n_cla_array.length;i++){
String fieldName=obj_n_cla_array[i].getName();
String newfieldName=fieldName.substring(0,1).toUpperCase()+fieldName.substring(1);
Method meth=obj_n_cla.getDeclaredMethod("set"+newfieldName,obj_n_cla_array[i].getType());
if(meth!=null){
meth.invoke(obj_n, new Object[]{rs.getObject(fieldName)});
}
}
list_obj.add(obj_n);
}
}
return list_obj;
}
分享到:
相关推荐
反射给指定字段赋值
使用反射技术对java实体类进行操作,得到所有属性并赋值给属性
java 子类对象赋值给父类对象的使用,包括代码及详解,个人笔记
1、$.ajax后需要接受的JSON源码;2、 JSON和JAVA的POJO的相互转换源码;3、实体类反射赋值操作util源码
很多公司里面不会用到H 所以只需要用SS不用h 相反来说用jdbc实现H的功能。
利用反射给属性赋值,利用反射给属性赋值,利用反射给属性赋值
主要介绍了Java 通过反射给实体类赋值操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
项目中需要过滤前面表单页面中传过来的实体类的中的String类型变量的前后空格过滤,由于前几天看过一个磨砺营的java反射讲解,非常受益。于是,哈哈哈 public static <T> void modelTrim(T model){ Class<T> ...
java 给指定字符赋值 java 给指定字符赋值 java 给指定字符赋值
java 反射 实现现实业务处理。。。。。。。。。。。。。。。。。。。。。。。。。。。
给目标对象赋值另一个对象时,只是将源对象的地址指向了目标对象,而并没有执行对象属性的set器,有时需要使用set做通知,本实例通过构造及反射实现类属性自动赋值。
该资源简述了对所有方法进行调用,属性进行赋值.一般情况下private protected 访问修饰符号的方法和属性不能被调用,受到限制.该资源得到了很好的解决!
9.java赋值运算符.zip9.java赋值运算符.zip9.java赋值运算符.zip9.java赋值运算符.zip9.java赋值运算符.zip9.java赋值运算符.zip9.java赋值运算符.zip9.java赋值运算符.zip9.java赋值运算符.zip9.java赋值运算符.zip...
30.java赋值运算符.zip30.java赋值运算符.zip30.java赋值运算符.zip30.java赋值运算符.zip30.java赋值运算符.zip30.java赋值运算符.zip30.java赋值运算符.zip30.java赋值运算符.zip30.java赋值运算符.zip30.java赋值...
下面小编就为大家带来一篇java反射遍历实体类属性和类型,并赋值和获取值的简单方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
主要介绍了 java 利用反射机制,获取实体所有属性和方法,并对属性赋值的相关资料,需要的朋友可以参考下
当初为了做项目的实时报警,想到使用反射功能,查了很多资料,最后在论坛发帖一位大神教我的,有这方面需求的可以看看,大神可以路过。
利用java反射达到两个不同bean字段名相同,类型不相同的字段相互赋值的转换函数
3.4 获取私有的变量(利用暴力反射) 4. 反射获取构造方法 4.1有参构造 4.2无参构造 4.3无参构造简便写法 5.反射获取成员方法 5.1无参方法 5.2 有参方法 5.3 获取所有方法(包含Object的方法)
java代码-使用java增强for循环 string数组赋值的源代码 ——学习参考资料:仅用于个人学习使用!