SHARE
TWEET

Untitled

a guest Jun 25th, 2019 60 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. Java数据容器
  2. 1.数组 数据容器的特点:长度固定,类型一致
  3. **2.JavaBean 数据容器的特点:++可重用++,java类 ++类中的属性一般参照表中的字段++,提供属性的set/get方法,类型不要求一致**
  4.  3.集合
  5.  
  6. # 这是一个JavaBean的学生类 #
  7. ```
  8. public class Students {
  9.     private int sid;
  10.     private String sname;
  11.     private String sgender;
  12.     private String sbirthday;
  13.     private String swod;
  14.     private double money;
  15.     private String tele;
  16.  
  17.     public int getSid() {
  18.         return sid;
  19.     }
  20.  
  21.     public void setSid(int sid) {
  22.         this.sid = sid;
  23.     }
  24.  
  25.     public String getSname() {
  26.         return sname;
  27.     }
  28.  
  29.     public void setSname(String sname) {
  30.         this.sname = sname;
  31.     }
  32.  
  33.     public String getSgender() {
  34.         return sgender;
  35.     }
  36.  
  37.     public void setSgender(String sgender) {
  38.         this.sgender = sgender;
  39.     }
  40.  
  41.     public String getSbirthday() {
  42.         return sbirthday;
  43.     }
  44.  
  45.     public void setSbirthday(String sbirthday) {
  46.         this.sbirthday = sbirthday;
  47.     }
  48.  
  49.     public String getSwod() {
  50.         return swod;
  51.     }
  52.  
  53.     public void setSwod(String swod) {
  54.         this.swod = swod;
  55.     }
  56.  
  57.     public double getMoney() {
  58.         return money;
  59.     }
  60.  
  61.     public void setMoney(double money) {
  62.         this.money = money;
  63.     }
  64.  
  65.     public String getTele() {
  66.         return tele;
  67.     }
  68.  
  69.     public void setTele(String tele) {
  70.         this.tele = tele;
  71.     }
  72. }
  73.  
  74. ```
  75.  
  76.  
  77.  
  78. # 这是一个JavaBean员工类 #
  79. ```//java的类都是直接或间接继承Object类
  80. public class EMP extends Object{
  81.     private int eid;
  82.     private String ename;
  83.     private double salary;
  84.     public int getEid() {
  85.         return eid;
  86.     }
  87.     public String getEname() {
  88.         return ename;
  89.     }
  90.     public double getSalary() {
  91.         return salary;
  92.     }
  93.     public void setEid(int eid) {
  94.         //这个方法是调用父类的  即Object类  
  95. //      this.getClass();
  96.         this.eid = eid;
  97.     }
  98.     public void setEname(String ename) {
  99.         this.ename = ename;
  100.     }
  101.     public void setSalary(double salary) {
  102.         this.salary = salary;
  103.     }  
  104. }
  105.  
  106. ```
  107. # DB里面使用了方法重载比较方法参数的通用型,同时在方法参数为Object obj里面使用了两种解决方案,分别是面向对象和面向注解 #
  108. ```public class DB {
  109.  
  110.     // 1,这个方法通用吗 被参数污染
  111.     public void addData(int sid, String sname, String sgender, String sbirthday, String swod, double money,
  112.             String tele) {
  113.  
  114.     }
  115.  
  116.     // 2,这个方法通用吗 2>1 方法参数的通用性提高了
  117. //  public void addData(Students s) {
  118. //
  119. //      //System.out.println(s.getSid()+","+s.getSname());
  120. //  }
  121. //  public void addData(EMP e) {
  122. //     
  123. //  }
  124.     // 3,这个方法通用吗 方法参数的通用性更加提高了 可以指向一切的java类型
  125.     public void addData(Object obj) {
  126.        
  127.         //第一种方式 面向反射的解决方案
  128.         Class c = obj.getClass();
  129.         String str = c.getName();
  130.         // System.out.println(str);
  131.  
  132.         String name = str.substring(str.lastIndexOf(".") + 1);
  133.         // System.out.println(name);
  134.         // System.out.println(name.length());
  135.         String tableName = "t_" + name;
  136.         String sql = "insert into ";
  137.         sql += tableName + "(";
  138.         System.out.println(sql);
  139.  
  140.         Field[] ds = c.getDeclaredFields();
  141.         String info = "";
  142. //      for(Field f:ds) {
  143. //          info+=f.getName()+",";
  144. //          System.out.println(f.getName());
  145. //      }
  146. //      System.out.println(info);
  147.  
  148.         for (int i = 0; i < ds.length; i++) {
  149.             if (i == ds.length - 1) {
  150.                 info += ds[i].getName() + ")";
  151.             } else {
  152.                 info += ds[i].getName() + ",";
  153.             }
  154.         }
  155.         System.out.println(info);
  156.        
  157. //      第二种方式  面向对象的解决方案
  158. //      如果obj对象是EMP类的一个实例
  159. //      if(obj instanceof EMP) {
  160. //          //父类向子类强制类型转换
  161. //          EMP e = (EMP) obj;
  162. //          String sql = "insert into t_emp(id,name,slary) values(?,?,?)";
  163. //      }
  164. //      else if(obj instanceof Students) {
  165. //          Students s = (Students) obj;
  166. //          String sql = "insert into t_emp(id,name,gender,birthday,swod,money,tele) values(?,?,?,?,?,?,?)";
  167. //      }
  168.     }
  169. }
  170.  
  171. ```
  172. # 最后在测试类中去执行代码 #
  173. ```public class Test {
  174.     public static void main(String[] args) {
  175.         //可重用
  176.         Students s1 = new Students();
  177.         //设置数据
  178.         s1.setSid(1);
  179.         s1.setSname("刘强东");
  180.         s1.setSgender("男");
  181.         s1.setSbirthday("1976-02-18");
  182.         s1.setSwod("123456");
  183.         s1.setMoney(1234.12);
  184.         s1.setTele("18261250677");
  185.        
  186.         //可重用
  187.         Students s2 = new Students();
  188.         //设置数据
  189.         s2.setSid(1);
  190.         s2.setSname("张曼玉");
  191.         s1.setSgender("女");
  192.         s2.setSbirthday("1966-02-18");
  193.         s2.setSwod("123453");
  194.         s2.setMoney(2234.12);
  195.         s2.setTele("18261250622");
  196.        
  197.         EMP e = new EMP();
  198.         e.setEid(1);
  199.         e.setEname("王宝强");
  200.         e.setSalary(2222.22);
  201.        
  202.         DB db = new DB();
  203.         //db.addData(s1);
  204.         db.addData(e);
  205.     }
  206. }
  207. ```
  208. **调试了一段面向反射的拼接数据库的代码,执行结果如下
  209. insert into t_Students(sid,sname,sgender,sbirthday,swod,money,tele)
  210. insert into t_EMP(eid,ename,salary)**
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top