栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java运用反射拼接sql语句

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java运用反射拼接sql语句

public Boolean Regist(Student student) throws IllegalAccessException, SQLException {
        Integer flag=-1;
        StringBuffer stringBuffer=new StringBuffer("insert into tb_student (");
        Class clazz=student.getClass();
        Field[] declaredFields = clazz.getDeclaredFields();
        for (Field field : declaredFields) {
            field.setAccessible(true); //运行修改私有类字段值
            String key = field.getName();//获取字段名
            Object value=field.get(student);//获取字段值
            if (value!=null){
                stringBuffer.append(Stringutil.toSqlString(key) +",");
            }//根据条件拼接sql
        }
        stringBuffer=stringBuffer.deleteCharAt(stringBuffer.length()-1);
        stringBuffer.append(") values(");
        for (Field declaredField : declaredFields) {
            declaredField.setAccessible(true);
            Object value=declaredField.get(student);
            if (value!=null){
                stringBuffer.append("'"+value+"',");
            }
        }
        stringBuffer=stringBuffer.deleteCharAt(stringBuffer.length()-1);
        stringBuffer.append(");");
        System.out.println(stringBuffer);

        Connection connection= DButil.getConnection();
        PreparedStatement preparedStatement = connection.prepareStatement(stringBuffer.toString());
        flag=preparedStatement.executeUpdate();
        if (flag==-1){
            return false;
        }
         return true;
    }

stringUtil类:用来修改字符串格式以便映射数据库 

public class Stringutil {
    public static String toSqlString(String str){
        str= str.replaceAll("([A-Z])","_$1").toLowerCase();
        return str;
    }
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/785927.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号