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";
            }
    
        }
    
    
  • 相关阅读:
    Python变量状态保持四种方法
    Python参数基础
    Django Form 表单
    Python开发第四篇
    Python开发第三篇
    设计模式(一)概述
    Python自学之路——自定义简单装饰器
    Python开发第二篇
    Python开发第一篇
    Python核心编程——多线程threading和队列
  • 原文地址:https://www.cnblogs.com/lanqie/p/14771760.html
Copyright © 2011-2022 走看看