当前位置:数据库 > SQLServer >>

通过java反射实现对javabean生成各种sql语句

通过java反射实现对javabean生成各种sql语句,有请大家评论,更改
Java代码:  
package com.pdt.util;  
  
import java.lang.reflect.Field;  
import java.util.ArrayList;  
import java.util.List;  
  
  
public class BeanUtil {  
   /** 原文地址:http://www.software8.co/wzjs/java/2875.html
     * @param args 
     */  
    public static void main(String[] args) {  
          
        System.out.println(getBeanFilesList("com.pdt.bean.Dictionary"));  
        System.out.println(genCreateTableSql("com.pdt.bean.Dictionary"));   
        System.out.println(genInsertSql("com.pdt.bean.Dictionary"));  
    }  
      
    public static String getBeanName(String bean){  
        try {  
            Class clz = Class.forName(bean);  
            String clzStr = clz.toString();  
            //得到类名  
            String beanName = clzStr.substring(clzStr.lastIndexOf(".")+1).toLowerCase();  
            return beanName;  
        } catch (ClassNotFoundException e) {  
            e.printStackTrace();  
            return "";  
        }  
    }  
      
    public static List<String> getBeanPropertyList(String bean){  
        try {  
            Class clz = Class.forName(bean);  
            Field[] strs = clz.getDeclaredFields();  
            List<String> propertyList = new ArrayList<String>();  
            for (int i = 0; i < strs.length; i++) {  
                String protype = strs[i].getType().toString();  
                propertyList.add(protype.substring(protype.lastIndexOf(".")+1)+"`"+strs[i].getName());  
            }  
            return propertyList;  
        } catch (ClassNotFoundException e) {  
            e.printStackTrace();  
            return null;  
        }  
    }  
      
    public static String getBeanFilesList(String bean){  
        try {  
            Class clz = Class.forName(bean);  
            Field[] strs = clz.getDeclaredFields();  
            StringBuffer sb = new StringBuffer();  
            for (int i = 0; i < strs.length; i++) {  
                String protype = strs[i].getType().toString();  
                if (!strs[i].getName().equals("tableName")&&!strs[i].getType().equals("List")) {  
                   sb.append(strs[i].getName()+",");  
                }  
            }  
            sb.deleteCharAt(sb.toString().lastIndexOf(","));  
            return sb.toString();  
        } catch (ClassNotFoundException e) {  
            e.printStackTrace();  
            return null;  
        }  
    }  
      
    /** 
     * 生成建表語句 
     * @param bean 
     * @return 
     */  
    public static String genCreateTableSql(String bean){  
        List<String> beanPropertyList =  getBeanPropertyList(bean);  
        StringBuffer sb = new StringBuffer("create table wnk_pdt_"+getBeanName(bean)+"(\n");  
        for (String string : beanPropertyList) {  
            String[] propertys = string.split("`");  
            if (!propertys[1].equals("tableName")&&!propertys[1].equals("param")&&!propertys[0].equals("List")) {  
                if (propertys[1].equals("id")) {  
                    sb.append("   id bigint primary key auto_increment,\n");  
                } else {  
                    if (propertys[0].equals("int")) {  
                        sb.append("   " + propertys[1] + " int default 0 comment '',\n");  
                    } else if (propertys[0].equals("String")) {  
                        sb.append("   " + propertys[1] + " varchar(2000) default '' comment '',\n");  
                    } else if (propertys[0].equals("double")) {  
                        sb.append("   " + propertys[1] + " double(10,2) default 0.0 comment '',\n");  
                    } else if (propertys[0].equals("Date")) {  
                        sb.append("   " + propertys[1] + " datetime comment '',\n");  
                    }  
            &n
补充:软件开发 , Java ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,