Advertisement
Guest User

Untitled

a guest
Jun 25th, 2019
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.62 KB | None | 0 0
  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)**
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement