• 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";
            }
    
        }
    
    
  • 相关阅读:
    [Leetcode]@python 76. Minimum Window Substring
    [Leetcode]@python 75. Sort Colors
    HTNL表单
    第二天
    开学心德
    HTML表单
    网页制作
    2nd day
    开课心得
    CF10D/POJ2127 LCIS 题解
  • 原文地址:https://www.cnblogs.com/lanqie/p/14771760.html
Copyright © 2020-2023  润新知