Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Java数据容器
- 1.数组 数据容器的特点:长度固定,类型一致
- **2.JavaBean 数据容器的特点:++可重用++,java类 ++类中的属性一般参照表中的字段++,提供属性的set/get方法,类型不要求一致**
- 3.集合
- # 这是一个JavaBean的学生类 #
- ```
- public class Students {
- private int sid;
- private String sname;
- private String sgender;
- private String sbirthday;
- private String swod;
- private double money;
- private String tele;
- public int getSid() {
- return sid;
- }
- public void setSid(int sid) {
- this.sid = sid;
- }
- public String getSname() {
- return sname;
- }
- public void setSname(String sname) {
- this.sname = sname;
- }
- public String getSgender() {
- return sgender;
- }
- public void setSgender(String sgender) {
- this.sgender = sgender;
- }
- public String getSbirthday() {
- return sbirthday;
- }
- public void setSbirthday(String sbirthday) {
- this.sbirthday = sbirthday;
- }
- public String getSwod() {
- return swod;
- }
- public void setSwod(String swod) {
- this.swod = swod;
- }
- public double getMoney() {
- return money;
- }
- public void setMoney(double money) {
- this.money = money;
- }
- public String getTele() {
- return tele;
- }
- public void setTele(String tele) {
- this.tele = tele;
- }
- }
- ```
- # 这是一个JavaBean员工类 #
- ```//java的类都是直接或间接继承Object类
- public class EMP extends Object{
- private int eid;
- private String ename;
- private double salary;
- public int getEid() {
- return eid;
- }
- public String getEname() {
- return ename;
- }
- public double getSalary() {
- return salary;
- }
- public void setEid(int eid) {
- //这个方法是调用父类的 即Object类
- // this.getClass();
- this.eid = eid;
- }
- public void setEname(String ename) {
- this.ename = ename;
- }
- public void setSalary(double salary) {
- this.salary = salary;
- }
- }
- ```
- # DB里面使用了方法重载比较方法参数的通用型,同时在方法参数为Object obj里面使用了两种解决方案,分别是面向对象和面向注解 #
- ```public class DB {
- // 1,这个方法通用吗 被参数污染
- public void addData(int sid, String sname, String sgender, String sbirthday, String swod, double money,
- String tele) {
- }
- // 2,这个方法通用吗 2>1 方法参数的通用性提高了
- // public void addData(Students s) {
- //
- // //System.out.println(s.getSid()+","+s.getSname());
- // }
- // public void addData(EMP e) {
- //
- // }
- // 3,这个方法通用吗 方法参数的通用性更加提高了 可以指向一切的java类型
- public void addData(Object obj) {
- //第一种方式 面向反射的解决方案
- Class c = obj.getClass();
- String str = c.getName();
- // System.out.println(str);
- String name = str.substring(str.lastIndexOf(".") + 1);
- // System.out.println(name);
- // System.out.println(name.length());
- String tableName = "t_" + name;
- String sql = "insert into ";
- sql += tableName + "(";
- System.out.println(sql);
- Field[] ds = c.getDeclaredFields();
- String info = "";
- // for(Field f:ds) {
- // info+=f.getName()+",";
- // System.out.println(f.getName());
- // }
- // System.out.println(info);
- for (int i = 0; i < ds.length; i++) {
- if (i == ds.length - 1) {
- info += ds[i].getName() + ")";
- } else {
- info += ds[i].getName() + ",";
- }
- }
- System.out.println(info);
- // 第二种方式 面向对象的解决方案
- // 如果obj对象是EMP类的一个实例
- // if(obj instanceof EMP) {
- // //父类向子类强制类型转换
- // EMP e = (EMP) obj;
- // String sql = "insert into t_emp(id,name,slary) values(?,?,?)";
- // }
- // else if(obj instanceof Students) {
- // Students s = (Students) obj;
- // String sql = "insert into t_emp(id,name,gender,birthday,swod,money,tele) values(?,?,?,?,?,?,?)";
- // }
- }
- }
- ```
- # 最后在测试类中去执行代码 #
- ```public class Test {
- public static void main(String[] args) {
- //可重用
- Students s1 = new Students();
- //设置数据
- s1.setSid(1);
- s1.setSname("刘强东");
- s1.setSgender("男");
- s1.setSbirthday("1976-02-18");
- s1.setSwod("123456");
- s1.setMoney(1234.12);
- s1.setTele("18261250677");
- //可重用
- Students s2 = new Students();
- //设置数据
- s2.setSid(1);
- s2.setSname("张曼玉");
- s1.setSgender("女");
- s2.setSbirthday("1966-02-18");
- s2.setSwod("123453");
- s2.setMoney(2234.12);
- s2.setTele("18261250622");
- EMP e = new EMP();
- e.setEid(1);
- e.setEname("王宝强");
- e.setSalary(2222.22);
- DB db = new DB();
- //db.addData(s1);
- db.addData(e);
- }
- }
- ```
- **调试了一段面向反射的拼接数据库的代码,执行结果如下
- insert into t_Students(sid,sname,sgender,sbirthday,swod,money,tele)
- insert into t_EMP(eid,ename,salary)**
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement