java 反射实现快速sql语句

来源:互联网 发布:数据库结构设计文档 编辑:程序博客网 时间:2024/06/16 07:22

在学习struct的途中发现反射确实是一种构架框架和简化开发的有利工具,于是跟着网上的博客写了这个快速sql语句的小工具。

QuickSql

import java.lang.reflect.*;import java.util.*;public class QuickSql {List<String> kList;List vList;String database;public boolean init(Object obj) {boolean isException = false;kList = new ArrayList();vList = new ArrayList();Class c = obj.getClass();Method[] methods = c.getMethods();Field[] fields = c.getFields();database = c.getName();System.out.println(database);database = database.substring(database.lastIndexOf('.')+1, database.length());System.out.println(database);for(Method method : methods) {String name = method.getName();if(name.startsWith("get")&&!name.startsWith("getClass")) {kList.add(name.substring(3, name.length()));try {Object value = method.invoke(obj, null);if(value instanceof String) {vList.add("\""+value+"\"");}else {vList.add(value);}} catch (IllegalAccessException e) {isException = true;e.printStackTrace();} catch (IllegalArgumentException e) {isException = true;e.printStackTrace();} catch (InvocationTargetException e) {isException = true;e.printStackTrace();}}}return !isException ;}public String insert() {StringBuffer sql = new StringBuffer("insert into ");sql.append(database+" value(");for(int i=0;i<kList.size();i++) {if(i<kList.size()-1) {sql.append(kList.get(i)+",");}else {sql.append(kList.get(i)+") values(");}}for(int i=0;i<vList.size();i++) {if(i<vList.size()-1) {sql.append(vList.get(i)+",");}else {sql.append(vList.get(i)+")");}}return sql.toString();}}
user
public class user {int id;String username;String password;String email;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public String getEmail() {return email;}public void setEmail(String email) {this.email = email;}}
test

public class test {public static void main(String[] args) {user u = new user();u.setId(1);u.setEmail("ssss@hhh.com");u.setUsername("sdsdsd");u.setPassword("123456");QuickSql qs = new QuickSql();if(qs.init(u)) System.out.println(qs.insert());else System.err.println("err");}}




0 0
原创粉丝点击