根据JavaBean创建数据库的操作SQL
根据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的更多相关文章
- 使用PD(PowerDesigner)图如何快速生成创建数据库表的SQL脚本
打开PD软件: 1.新建概念模型(conceptual Data Model) File-->New Model-->Conceptual Data Mode 或者点击工作区,右键--&g ...
- MySQL数据库-表操作-SQL语句(一)
1. 数据库操作与存储引擎 1.1 数据库和数据库对象 数据库对象:存储,管理和使用数据的不同结构形式,如:表.视图.存储过程.函数.触发器.事件等. 数据库:存储数据库对象的容器. 数据库分两种 ...
- MySQL数据库-表操作-SQL语句(二)
1. MySQL多表查询 1.1 外键约束 为了消除多张表查询出现的笛卡尔积的现象,MySQL在建表并进行多表之间的关键查询可以使用外键关联查询. 外键:从表1(sub)的某列引用(ref)另外一个表 ...
- 创建数据库指定路径sql
create database stuDB on primary -- 默认就属于primary文件组,可省略(/*--数据文件的具体描述--*/ name='stuDB_data', - ...
- 创建数据库表的SQL语句
创建表.视图.索引的sql语句如下: CREAT TABLE (列名,数据类型,约束) create view(创建视图) create index (创建索引) 1.primary key(主键) ...
- 数据库常用操作SQL语句
禁用触发器: alter table tb disable trigger tir_name 启用触发器: alter table tb enable trigger tir_name
- 使用交互式方式在SQL server2017上创建数据库
软件基础:在电脑上提前安装好SQL server2017,并且安装好其中的SSMS(SQL server Management Studio) 创建方式:交互式 操作内容:创建学生课程数据库系统 步骤 ...
- SQL数据库简单操作
sql语言简介 (1)数据库是文件系统,使用标准sql对数据库进行操作 * 标准sql,在mysql里面使用语句,在oracle.db2都可以使用这个语句 (2)什么是sql * Structured ...
- 【SQL必知必会笔记(1)】数据库基础、SQL、MySQL8.0.16下数据库、表的创建及数据插入
文章目录 1.数据库基础 1.1 数据库(database) 1.2 表(table) 1.3 列和数据类型 1.4 行 1.5 主键 2.什么是SQL 3.创建后续练习所需数据库.表(MySQL8. ...
随机推荐
- 1.写页面 2.css的继承属性有哪些 3.margin对布局的影响
1. sparent 透明的 2. placeholder 提示语 写页面 1.搞清结构层次 2. 保证模块化 让它们之间不能收到影响. (1) 元素性质 (2)标准流 浮动带来的脱离文档流撑不起父级 ...
- TCP连接与释放
TCP连接的建立 三次握手 TCP服务器进程先创建传输控制块TCB,时刻准备接受客户进程的连接请求,此时服务器就进入了LISTEN(监听)状态. TCP客户进程也是先创建传输控制块TCB,然后向服务器 ...
- could not read Username for 'https://github.com': No error
用idea往github上push代码的时候,突然的不能用了. 报could not read Username for 'https://github.com': No error错误. 原因不明. ...
- ThinkPHP登录功能的实现方法
登陆功能是PHP程序设计中常见的功能.本文ThinkPHP实例主要完成注册成功后进入首页,并告诉你是登录用户的功能.具体实现步骤如下: 第一步:在config.php文件中加上: 完整实现代码如下: ...
- K8S 部署 ingress-nginx (二) 部署后端为 tomcat
在上面已经部署了 ingress-nginx, https://www.cnblogs.com/klvchen/p/9903480.html 创建 service 和 pods cd vi tomca ...
- JS之innerHTML,innerText,outerHTML,textContent的用法与区别
示例html代码: <div id="test"> <span style="color:red">test1</span> ...
- Android为TV端助力 自定义activity
今天公司有个需要需要自动弹出界面,而dialog又不符合要求,所以自定义的一个activity的样式 首先在androidmainfest.xml上注册你的activity <activity ...
- android网页打印,安卓网页打印,h5页面打印,浏览器打印,js打印工具
Android设备打印比较麻烦,一般设备厂商都提供原生app开发的SDK,我们web开发者为难了,不会原生开发啊 给大家提供一个思路,实现web加壳,利用打印浏览器实现 简单来说就是把我们的web页面 ...
- day11(python)装饰器
def wrapper(f):#1 def inner(*args,**kwargs):#3 ret = f(*args,**kwargs)#5 return ret#8 return inner#4 ...
- (转)Android 之生成图形验证码
import android.graphics.Bitmap; import android.graphics.Canvas; import android.graphics.Color; impor ...