Java 对象属性的遍历
2024-10-18 09:03:25
package com.cn.mybatis.test;
import java.io.IOException;
import java.io.InputStream;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.Date; import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder; import com.cn.mybatis.model.EdiTestTask; public class mybatisTest {
public static void main(String[] args) throws IOException, NoSuchMethodException, SecurityException, IllegalAccessException, IllegalArgumentException, InvocationTargetException{
//mybatis的配置文件
String conf="conf.xml";
//使用类加载器加载mybatis的配置文件(它也加载关联的映射文件)
InputStream is=mybatisTest.class.getClassLoader().getResourceAsStream(conf);
//构建sqlSession的工厂
SqlSessionFactory sessionFactory=new SqlSessionFactoryBuilder().build(is);
SqlSession session=sessionFactory.openSession();
String statement="com.cn.mybatis.mapper.taskMapper.getAllTask";
EdiTestTask editt=session.selectOne(statement,"6c61bffed61141d7a908af0428ae57fb");
if(editt!=null){
Field[] field = editt.getClass().getDeclaredFields();
for (int i = ; i < field.length; i++) {
String name=field[i].getName(); //获得对象的属性名称
String type=field[i].getGenericType().toString();
System.out.println("属性的类型:"+type);
name=name.substring(,).toUpperCase()+name.substring(); //构造get方法的名字
Method m=editt.getClass().getMethod("get"+name);
if(type.equals("int")||type.equals("class java.lang.Integer")){ //如果type是类类型,则前面包含"class ",后面跟类名
int val=(Integer)m.invoke(editt);
System.out.println(name+"的值:"+val);
}
if(type.equals("class java.lang.String")){
String val=(String)m.invoke(editt);
System.out.println(name+"的值:"+val);
} if(type.equals("class java.lang.Short")){
Short value = (Short) m.invoke(editt);
if(value != null){
System.out.println("attribute value:"+value);
}
}
if(type.equals("class java.lang.Double")){
Double value = (Double) m.invoke(editt);
if(value != null){
System.out.println("attribute value:"+value);
}
}
if(type.equals("class java.lang.Boolean")){
Boolean value = (Boolean) m.invoke(editt);
if(value != null){
System.out.println("attribute value:"+value);
}
}
if(type.equals("class java.util.Date")){
Date value = (Date) m.invoke(editt);
if(value != null){
System.out.println("attribute value:"+value.toLocaleString());
}
} }
}
} }
最新文章
- 启动项目的时候报驱动错误: not support oracle driver 1.0
- Android Design Support Library使用详解
- HTML5移动Web开发(三)——在移动网站中使用HTML5
- Codeforces Round #249 (Div. 2) B. Pasha Maximizes
- Jmeter组件1. CSV Data Set Config
- Angularjs Controller 间通信机制
- 九度OJ 1076 N的阶乘 -- 大数运算
- \r \r\n \t 的区别
- mysql用户修改登录密码及开启远程登录
- UICollectionView在Swift3.0中的用法
- 101个Linq例子(40-60)
- maven工程 java 实现文件上传 SSM ajax异步请求上传
- Asp.net Core 2.1新功能Generic Host(通用主机),了解一下
- Hexo优化 | 创建sitemap站点地图并向Google提交
- StreamReader 和 StreamWriter 简单调用
- c/c++ 标准库 插入迭代器 详解
- servlet总结:Servlet基础
- 洛谷P3168 任务查询系统
- scanf函数(初学者)
- kafka 多线程消费