根据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的更多相关文章

  1. 使用PD(PowerDesigner)图如何快速生成创建数据库表的SQL脚本

    打开PD软件: 1.新建概念模型(conceptual Data Model) File-->New Model-->Conceptual Data Mode 或者点击工作区,右键--&g ...

  2. MySQL数据库-表操作-SQL语句(一)

    1. 数据库操作与存储引擎 1.1   数据库和数据库对象 数据库对象:存储,管理和使用数据的不同结构形式,如:表.视图.存储过程.函数.触发器.事件等. 数据库:存储数据库对象的容器. 数据库分两种 ...

  3. MySQL数据库-表操作-SQL语句(二)

    1. MySQL多表查询 1.1 外键约束 为了消除多张表查询出现的笛卡尔积的现象,MySQL在建表并进行多表之间的关键查询可以使用外键关联查询. 外键:从表1(sub)的某列引用(ref)另外一个表 ...

  4. 创建数据库指定路径sql

    create database stuDB on  primary  -- 默认就属于primary文件组,可省略(/*--数据文件的具体描述--*/    name='stuDB_data',  - ...

  5. 创建数据库表的SQL语句

    创建表.视图.索引的sql语句如下: CREAT TABLE (列名,数据类型,约束) create view(创建视图) create index (创建索引) 1.primary key(主键) ...

  6. 数据库常用操作SQL语句

    禁用触发器: alter table tb disable trigger tir_name 启用触发器: alter table tb enable trigger tir_name

  7. 使用交互式方式在SQL server2017上创建数据库

    软件基础:在电脑上提前安装好SQL server2017,并且安装好其中的SSMS(SQL server Management Studio) 创建方式:交互式 操作内容:创建学生课程数据库系统 步骤 ...

  8. SQL数据库简单操作

    sql语言简介 (1)数据库是文件系统,使用标准sql对数据库进行操作 * 标准sql,在mysql里面使用语句,在oracle.db2都可以使用这个语句 (2)什么是sql * Structured ...

  9. 【SQL必知必会笔记(1)】数据库基础、SQL、MySQL8.0.16下数据库、表的创建及数据插入

    文章目录 1.数据库基础 1.1 数据库(database) 1.2 表(table) 1.3 列和数据类型 1.4 行 1.5 主键 2.什么是SQL 3.创建后续练习所需数据库.表(MySQL8. ...

随机推荐

  1. 一个优秀的SEOer必须掌握的三大标配技术

    首先,认识网页代码是基础 这里所讲的网页代码是指HTML代码,并不是指复杂的PHP模板技术.一般的培训机构总是提倡学SEO不用学网页代码,只要会购买域名空间搭建网站就行,因为现在的网站模板太丰富了,对 ...

  2. canvas-8searchLight2.html

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  3. Ubuntu、deepin 支持 yum

    1,首先检测是否安装了build-essential程序包 sudo apt-get install build-essential 2,安装 yum sudo apt-get yum 3,检测是否安 ...

  4. Python-Django Win7上使用Apache24和mod_wsgi部署Django1.11应用程序

    Win7上使用Apache24和mod_wsgi部署Django1.11应用程序 by:授客 QQ:1033553122 测试环境 win7 64 Django-1.11.4.tar.gz 下载地址: ...

  5. jquery带参插件函数的编写

    <!DOCTYPE html><html><head lang="en"> <meta charset="UTF-8" ...

  6. testNG安装一直失败解决方法

    1.在eclipse界面选择“Help”--"Eclipse Marketplace"中进行查找TestNG 然后进“install” (成功) 2.在eclipse界面选择“He ...

  7. uni-app 如何在当前页调上个页面的方法

    1.获取上个页面 var pages = getCurrentPages();//当前页 var beforePage = pages[pages.length - 2];//上个页面 2.在当前页调 ...

  8. DAY4(PYTHON)列表的嵌套,range,for

    li=['a','b','开心','c'] print(li[2].replace ( ' 心 ', ' kaixin ' ) ) 输出:'a','b','开kaixin','c' li= ['abc ...

  9. springboot部分常用注解

    目录:[持续更新.....] spring 部分常用注解 spring boot 学习之路1(简单入门) spring boot 学习之路2(注解介绍) spring boot 学习之路3( 集成my ...

  10. 2018-05-11-机器学习环境安装-I7-GTX960M-UBUNTU1804-CUDA90-CUDNN712-TF180-KERAS-GYM-ATARI-BOX2D

    layout: post title: 2018-05-11-机器学习环境安装-I7-GTX960M-UBUNTU1804-CUDA90-CUDNN712-TF180-KERAS-GYM-ATARI- ...