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());
}
} }
}
} }

最新文章

  1. 启动项目的时候报驱动错误: not support oracle driver 1.0
  2. Android Design Support Library使用详解
  3. HTML5移动Web开发(三)——在移动网站中使用HTML5
  4. Codeforces Round #249 (Div. 2) B. Pasha Maximizes
  5. Jmeter组件1. CSV Data Set Config
  6. Angularjs Controller 间通信机制
  7. 九度OJ 1076 N的阶乘 -- 大数运算
  8. \r \r\n \t 的区别
  9. mysql用户修改登录密码及开启远程登录
  10. UICollectionView在Swift3.0中的用法
  11. 101个Linq例子(40-60)
  12. maven工程 java 实现文件上传 SSM ajax异步请求上传
  13. Asp.net Core 2.1新功能Generic Host(通用主机),了解一下
  14. Hexo优化 | 创建sitemap站点地图并向Google提交
  15. StreamReader 和 StreamWriter 简单调用
  16. c/c++ 标准库 插入迭代器 详解
  17. servlet总结:Servlet基础
  18. 洛谷P3168 任务查询系统
  19. scanf函数(初学者)
  20. kafka 多线程消费

热门文章

  1. [转]IIS上部署网站
  2. t-sql 中between and 的一种写法
  3. 排序算法_HeapSort
  4. ManagerDay-2
  5. java的IO学习,字节流与字符流的编码讲解
  6. Jsp_demo:自定义标签
  7. head tail 命令
  8. windows mobile 6.5 隐藏 左下角(左上角)的开始按钮 叉号关闭按钮
  9. Nice validator领先的表单验证解决方案 转
  10. winform中如何在TextBox中只能输入数字(可以带小数点)