您好,欢迎光临本网站![请登录][注册会员]  
文件名称: Java反射机制
  所属分类: Java
  开发工具:
  文件大小: 481kb
  下载次数: 0
  上传时间: 2019-07-02
  提 供 者: aba****
 详细说明:简单的来说,反射机制指的是程序在运行时能够获取自身的信息。在java中,只要给定类的名字,那么就可以通过反射机制来获得类的所有信息。基本原理;保存数据时,把需要保存的对象的属性值全部取岀来再拼凑sq语句 查询时,将查询到的数据全部包装成一个java对象 游戏规则:俗话说的好,无规矩不成方圆,特别是程序来说,它只能做有规则的事情,没有规则的 它干不了,好,那就 先定规贝 1)数据库的每一个表对象一个poj类,表中的每一个字段对应pojo类的中的一个属性。 并且pojo类的名字和表的名字相同,属性名和字段名相同,大小写没有关系,因为数据 库一般不区分大小写 2)为pojo类中的每一个属性添加标准的set和ge方法。 有了游戏规则,那么开始游戏吧。 1、首先数据库的有一个表,假设数据库名称为: blogsystem,里面的一个表名 userinfo如图 Column Name Datatype L°Fag8 Id √ UNSIGNED口 ZEROFIL 命Name VARCHAR(45) □ TNARY o PWd AR.(45)√口日 BIAR丫 IN(45) √uNGD□ROFL 2、创建对应的pojo类 package cn. netjava. pojci public class UserInfo 4 String name rivate string p nt age override ublic string tostr 012345 reTurn"UserInfo [id="+id age int getId( i 16 return id: 17 1122 id setId(int id)t 89012 this, id= id c string ge return naine i 23 24 public void seLName(String name) 25 this, name name 26 b1 ic String getpvd()「 eur 22233333 78901234 Pwd(St pwd)I this pwd= pwd; bl return ag 35 36 37 38 39 2、编写获得数据库连接的工厂类 mpor import java. sql DriverManager oublic class ConnecL2 D3FacLory i 4 pubL⊥ c staL⊥ c ConnecTion 6 ass forName(com. mys q1·chc. Driver" 10 string 11 jdbc: mysql: //localhost: 3306/blo 12 13 string user =wroot"i 14 String password 15 " net java"冫 Conn 16 17 r⊥ verManager, geLConnec t⊥on(r1 user,password) 8 catch (Exception e) 19 e. printstackfrace()i 20 21 return conn 3、好戏开始啦,编写操作数据库的dao类 package cn. netjava. session; f⊥ec七.Fie⊥d; mpor java. sql Connection; import java. sql. PreparedsLaLemenLi mpor- java. sql Resultset import java. sql SQT,Except import java. sql Statement 10 import java.ut.il Arraylist. 11 mpor javautil. List 12 13 import cn.netjava factory Connect2 14 DBFactoryi 15 mport cn. netjava pojo UserInfo; 16 17 public class etJavaSession i 18 19 解析出保存对象的sc1语句 20 21 k param object 22 需要保存的对象 23 artur 保存对象的sq语句 24 public static String 26 getsaveobjectsql(Object object)( 27 //定义一个sq1字符串 28 sql=insert int 29 30 //得到对象的类 32 ject getclass()i 33 /得到对象中所有的方法 34 35 Methods 36 //得到对象中所有的属性 37 38 c getFields(i 39 //得到对象类的名字 40 String cName =C getName()i 41 //从类的名字中解析出表名 42 String LableNarre 43 CName substring(cName. lastIndexO 44 f 45 cName length())i 46 sql+- table 47 ist mList-new Arraylist() 48 List vlist= new 49 isto 50 for (Method me thod 51 ethods) t 52 53 method. getName ( 54 f(mName. startsiith( 55 56 mName startswith(getClass")) 57 String fieldname 58 mName substring(3, 59 mName length()) 60 mT ist. add (fieldName 61 62 System. out.printIn 63 ("字段名字--->"-fie1Name); 64 try i 65 Object val 66 method. invoke(object, null)i 67 System. out. pr- 68 L1n("执行方法返回的值:"+ value); 69 nstanceof st 70 71 72 out 73 ("字段值 74 else i 75 T ist. add( 78 9012345678 7888888 e. printstackTr for (int t size if (i< mList size( 8 89 sq⊥|=mist.get(i) 90 j else i 92 1 L⊥sL.geL(i) 9999 3456 values (i for (int 1-0 97 VList.size() +){ 98 if(i vList size( 1){ 111 9000000 0 I+=vlist. get(i) 2 y else i 10 st get(i) 105 06 108 return sq- 109 110 pub⊥⊥ c static 112 List getDatasFromDB (String tab⊥ eName, int ld) 114 115 eturn nulli 116 将对象保存到数据库中 120 121 param object 122 需要保存的对象 123 k artur:方法执行的结果;1:表示 124 成功,0:表示失败 125 126 127 int saveObject(Object object)( 128 129 Connect2DBeactory. getDBConnec-lo 130 () 131 132 getsaveobiec-Sa_(object)i 133 try 134 // Statement 135 taterent=(Statement) 136 Restatement ( 37 Preparedstatement psmt 38 it(sq) 139 psmt. executeUpdate( 140 return 1 4 catch (SQLException e) 142 e printstackTrace() return 14 3456 147 *从数据库中取得对象 1111 89012 dit d 对象所属的类 55 m id 对象的 53 * retur:需要查找的对象 154 155 public Object getobject(string 156 C⊥ assname, int ld) 157 //得到表名字 158 String tableWare 566 className. subsTring(className.la 1111 9012 stIndexof(.)+l, className. length( 162 ); 63 /根据类名来创建c1ass对象 164 Class c=nulli 165 167 =Class forName(cl assName 68 169 170 (ClassNoLFouGExcepLion el)i 171 172 //拼凑查询sq1语句 String sql-"select from t tableName + h where t="+ td System.out, println("查找 sq1语句:"+sq1) /′获得数据库链接 =ConnecL2DBFacLory geLDBConnectio //创建类的实例 J try i lestat //得到执行查寻语句返回的 结果集 Resultset set = stm executeQuery(sql)i //得到对象的方法数组 d[] -C getMethods ( //遍历结果集 Thile (set next() c newinstance oi /遍历对象的方法 for (Method method tring ne LhodName=me Lhod. getName (i //如果对象的方 法以set开头 if(methodName starswith("set") /根据方法 名字得到数据表格中字段的名字 string me thodName substring(3 hodName. leng Lh() //得到方法 的参数类型 CLass[] parts method get ParameterTypes() if(parts String class) //如果 参数为 String类型,则从结果集中按照列名 取待对应的值,并且执行改set方法 setgetString(columnName)); if (parts t class) i thod Invo
(系统自动生成,下载前可以参看下载内容)

下载文件列表

相关说明

  • 本站资源为会员上传分享交流与学习,如有侵犯您的权益,请联系我们删除.
  • 本站是交换下载平台,提供交流渠道,下载内容来自于网络,除下载问题外,其它问题请自行百度
  • 本站已设置防盗链,请勿用迅雷、QQ旋风等多线程下载软件下载资源,下载后用WinRAR最新版进行解压.
  • 如果您发现内容无法下载,请稍后再次尝试;或者到消费记录里找到下载记录反馈给我们.
  • 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
  • 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.
 相关搜索: Java反射机制
 输入关键字,在本站1000多万海量源码库中尽情搜索: