实体类 User:
public class User {
private String id;
private String username;
private String password;
public String getUsername() {
return username;
}
/**
* getter,setter.....
*/
}
自动生成sql类:GenerateSql_Util
/****
* INSERT INTO table(field1,field2) VALUES('value1','value2');
* @param obj 传入要生成的实体,需与数据库表的字段一致
* @return 拼成的insert 语句
*/
public static String getSqlInset(Object obj) {
try {
Class<? extends Object> c = obj.getClass();
//获取所有的字段
Field[] fields = c.getDeclaredFields();
//获取实体的类名,需与表名一致
String tableName = c.getSimpleName();
//生成INSERT INTO table(field1,field2) 部分
StringBuffer sbField = new StringBuffer();
//生成VALUES('value1','value2') 部分
StringBuffer sbValue = new StringBuffer();
sbField.append("INSERT INTO " + tableName.toLowerCase() + "(");
int fieldLength = fields.length;
for(int i=0;i<fieldLength;i++){
fields[i].setAccessible(true);
sbField.append(fields[i].getName().toLowerCase()+',');
sbValue.append("'"+fields[i].get(obj).toString() +"',");
}
return sbField.replace(sbField.length()-1, sbField.length(), ") VALUES(").append(sbValue.replace(sbValue.length()-1, sbValue.length(), ");")).toString();
} catch (IllegalAccessException e1) {
e1.printStackTrace();
}
return null;
}
public static String getSqlUpdate(Object obj) {
try {
Field[] fields = obj.getClass().getDeclaredFields();
String tableName = obj.getClass().getSimpleName();
StringBuffer sb = new StringBuffer();
sb.append("UPDATE "+ tableName.toLowerCase() +" SET ");
int fieldLength = fields.length;
for(int i=0;i<fieldLength;i++){
fields[i].setAccessible(true);
sb.append(fields[i].getName() + " = '" + fields[i].get(obj) +"',");
}
return sb.replace(sb.length()-1, sb.length(), " ").toString();
} catch (IllegalAccessException e1) {
e1.printStackTrace();
}
return null;
}
测试代码:注意update的需要加上where条件
public class test {
public static void main(String[] args) {
User u = new User();
u.setId("1");
u.setUsername("u1");
u.setPassword("p1");
System.out.println(GenerateSql_Util.getSqlInsert(u));
String updateSql = GenerateSql_Util.getSqlUpdate(u) + " WHERE id = '"+ u.getId()+"';";
System.out.println(updateSql);
}
}
结果:
INSERT INTO user(id,username,password) VALUES('1','u1','p1');
UPDATE user SET id = '1',username = 'u1',password = 'p1' WHERE id = '1';
分享到:
相关推荐
首先在数据库中创建存储过程和方法,然后调用创建好的存储过程,生成带有与表名及字段相关的insert,update,delete语句,变量与表字段名相同,例如: "insert into temp (col1,col2,col3) values ('"+col1+"','"+col2...
Java反射 JavaBean对象自动生成插入,更新,删除,查询sql语句操作.docx
MSSQL 表操作存储过程的示例 (update, insert, delete) 支持数据字典生成 生成格式可以是 Word 或Excel 格式 支持简单的 SQL 语句操作 请从http://progame.vip.myrice.com/下载最新版本
自动读取数据库的表,生成Javabean或者生产insert、select、update、delete。还有生成给javabean赋值的语句。
Oracle 学习、Oracle使用开发工具,Oracle 自动生成insert update语句脚本
利用Java反射和注解实现自定义的ORM,并提供相应的工具类自动生成CRUD的SQL语句,同时定义了完整的异常处理机制
在XML文件中,标签通常被嵌套在其他标签内,如、<insert>和<update>等标签内,用于控制生成的SQL语句的结构和内容。 标签通常包含一个test属性,该属性被用于指定条件表达式。如果表达式的结果为true,则标签内的...
temple.xml定义了insert、update和delete方法 模板中定义了一系列的特殊字符串,如#BASE_COLUMN_LIST# #BASE_COLUMN_LIST# #BASE_COLUMN_LIST#代表数据库字段列表 在SqlMapAutoGen类中,通过程序自动生成这些字符串...
利用反射动态拼接sql。 daohelper属于DAL层,objectdata类属于BLL层,BLL层引用DAL层。映射数据的表继承objectdata类。例如,数据表book,根据字段与属性一一对应的方式创建book类,插入数据库时,直接book.save()
java将数据库表反射成java实体类xml中sql语句,如果使用的mybatis,生成基于原生的xml中sql操作语句,如insert、select、update语句。
在XML文件中,标签通常被嵌套在其他标签内,如、<insert>和<update>等标签内,用于控制生成的SQL语句的结构和内容。 标签通常包含一个test属性,该属性被用于指定条件表达式。如果表达式的结果为true,则标签内的...
1、模仿sqlserver的查询分析器,简单易用 ...3、可生成JAVA、DELPHI的实体类...6、可生成insert、update、delete语句的模版 7、可根据查询结果生成insert语句 8、支持多表查询关联语句生成导航,轻松获得多表查询的sql语句
在XML文件中,标签通常被嵌套在其他标签内,如、<insert>和<update>等标签内,用于控制生成的SQL语句的结构和内容。 标签通常包含一个test属性,该属性被用于指定条件表达式。如果表达式的结果为true,则标签内的...
这个工具类暂时实现了,动态根据表名和实体类(实体类需要和数据库的表映射在一起) 动态生成insert 语句, update语句,
10、增加Select、Update、Insert和Delete基本语句代码的生成,方便您直接在代码中使用。 11、增加Java框架(Ibatis+Spring+struts+Extjs)代码的生成;添加Java实体类快速生成。 12、增加企业级别的界面自动生成...
在XML文件中,标签通常被嵌套在其他标签内,如、<insert>和<update>等标签内,用于控制生成的SQL语句的结构和内容。 标签通常包含一个test属性,该属性被用于指定条件表达式。如果表达式的结果为true,则标签内的...
在XML文件中,标签通常被嵌套在其他标签内,如、<insert>和<update>等标签内,用于控制生成的SQL语句的结构和内容。 标签通常包含一个test属性,该属性被用于指定条件表达式。如果表达式的结果为true,则标签内的...
2.实现了create,insert,update,delete,select,多表查询,排序等简单操作和建表约束,界面采用Swing实现。 3.目录下的data存放了系统运行时的相应的dbf文件,logs目录下存放了系统运行日志。 未完成漏洞: ...
在XML文件中,标签通常被嵌套在其他标签内,如、<insert>和<update>等标签内,用于控制生成的SQL语句的结构和内容。 标签通常包含一个test属性,该属性被用于指定条件表达式。如果表达式的结果为true,则标签内的...
在XML文件中,标签通常被嵌套在其他标签内,如、<insert>和<update>等标签内,用于控制生成的SQL语句的结构和内容。 标签通常包含一个test属性,该属性被用于指定条件表达式。如果表达式的结果为true,则标签内的...