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";
        }

    }

JDBC操作数据封装Java Bean

上一篇:SQLyog | 连接数据库报错plugin caching_sha2_password could not be loaded


下一篇:数据库练习二