首页 > 数据库技术 > 详细

根据JavaBean创建数据库的操作SQL

时间:2019-02-19 15:23:06      阅读:168      评论:0      收藏:0      [点我收藏+]

根据JavaBean创建数据库的操作SQL

import java.lang.reflect.Field;

public class GenerateSQL {

    public static void main(String[] args) {

        Field[] fileds = User.class.getDeclaredFields();
        System.out.println(generateFieldsLine(fileds));
        System.out.println(generateInsertSql("user", fileds, "user"));
        System.out.println(generateUpdateSql("user", fileds, "user"));

    }


    public static String generateFieldsLine(Field[] fileds) {
        StringBuffer sqlBuilder = new StringBuffer();
        for (int i = 0, size = fileds.length; i < size; i++) {
            if (i == fileds.length - 1) {
                sqlBuilder.append(fileds[i].getName());
                continue;
            }
            sqlBuilder.append(fileds[i].getName()).append(",");
        }
        return sqlBuilder.toString();
    }

    /**
     * @param tableName 数据库表名
     * @param fileds    字段数组
     * @param beanName  mybatis的mapper参数名字
     * @return
     */
    public static String generateInsertSql(String tableName, Field[] fileds, String beanName) {
        String sql = "INSERT INTO " + tableName + "(" + generateFieldsLine(fileds) + ") values (";

        StringBuffer sqlBuilder = new StringBuffer();
        for (int i = 0, size = fileds.length; i < size; i++) {
            if (i == fileds.length - 1) {
                sqlBuilder.append("#{" + beanName).append(".").append(fileds[i].getName()).append("}");
                continue;
            }
            sqlBuilder.append("#{" + beanName).append(".").append(fileds[i].getName()).append("}").append(",");
        }
        return sql + sqlBuilder.toString() + ")";
    }


    public static String generateSelectSQL(String tableName, Field[] fileds) {
        StringBuilder sqlBuilder = new StringBuilder();
        return sqlBuilder.append("SELECT ").append(generateFieldsLine(fileds)).append(" FROM ").append(tableName).toString();
    }

    public static String generateUpdateSql(String tableName, Field[] fileds, String beanName) {
        String sql = "UPDATE " + tableName + " SET ";

        StringBuffer sqlBuilder = new StringBuffer();
        for (int i = 0, size = fileds.length; i < size; i++) {
            if (i == fileds.length - 1) {
                sqlBuilder.append(fileds[i].getName()).append("=").append("#{" + beanName).append(".").append(fileds[i].getName()).append("}");
                continue;
            }
            sqlBuilder.append(fileds[i].getName()).append("=").append("#{" + beanName).append(".").append(fileds[i].getName()).append("}").append(",");
        }
        return sql + sqlBuilder.toString() + ")";
    }

}

  

根据JavaBean创建数据库的操作SQL

原文:https://www.cnblogs.com/leodaxin/p/10401272.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!