mysql的sqlbean_根据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() + ")";

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值