zoukankan      html  css  js  c++  java
  • JDBC操作数据封装Java Bean

                Connection conn = DriverManager.getConnection(dbURL, properties);
                if (conn != null) {
                    Statement statement = conn.createStatement();
                    ResultSet resultSet = statement.executeQuery("  select * from student");
    
                    BeanInfo beanInfo = Introspector.getBeanInfo(Student.class, Object.class);
    
                    while (resultSet.next()) {
                        Student student = new Student();
                        for (PropertyDescriptor propertyDescriptor : beanInfo.getPropertyDescriptors()) {
                            String propertyName = propertyDescriptor.getName();//属性名
                            Class<?> propertyType = propertyDescriptor.getPropertyType();//属性类型
                            String columnName = getTableMapperColumnName(propertyName);
                            String resultMethodStr = getResultMethod(propertyType.toString());//结果集取数方法
                            Method resultMethod = ResultSet.class.getMethod(resultMethodStr, String.class);
                            Object columnValue = resultMethod.invoke(resultSet, columnName);//结果集的值
    
                            Method writeMethod = propertyDescriptor.getWriteMethod();//Setter
                            writeMethod.invoke(student, columnValue);
    
                        }
                        System.out.println(student.toString());
                    }
    
                }
    
        private static String getTableMapperColumnName(String propertyName) {
            if (propertyName.equals("firstName")) {
                return "first_name";
            } else if (propertyName.equals("lastName")) {
                return "last_name";
            } else {
                return propertyName;
            }
        }
    
        private static String getResultMethod(String propertyType) {
    
            //return "get"+propertyType.substring(0,1).toUpperCase()+propertyType.substring(1,propertyType.length());
            switch (propertyType) {
                case "Integer":
                    return "getInteger";
                case "int":
                    return "getInt";
                case "String":
                    return "getString";
                case "Long":
                    return "getLong";
                default:
                    return "getString";
            }
    
        }
    
    
  • 相关阅读:
    前端学习之jquery
    Http协议
    JavaScript 的简单学习2
    面向对象高级编程(1)-使用__slots__
    面向对象编程(4)-获取对象信息
    面向对象编程(3)-继承和多态
    面向对象编程(2)-访问限制
    面向对象编程(1)-类和实例
    模块(2)-安装第三方模块
    模块(1)-使用模块
  • 原文地址:https://www.cnblogs.com/lanqie/p/14771760.html
Copyright © 2011-2022 走看看