Rumah  >  Artikel  >  pangkalan data  >  根据JavaBean生成数据库增删改查的SQL语句

根据JavaBean生成数据库增删改查的SQL语句

WBOY
WBOYasal
2016-06-07 15:23:291543semak imbas

欢迎进入Java社区论坛,与200万技术人员互动交流 >>进入 根据JavaBean生成数据库增删改查的SQL语句。 1,genInsertSQL(Object bean); 2,genUpdateSQL(Object bean); 3,genDeleteSQL(Object bean); 4,genFindAllSQL(String tableName); 5,genFindAllSQL(String

欢迎进入Java社区论坛,与200万技术人员互动交流 >>进入

        根据JavaBean生成数据库增删改查的SQL语句。
    1,genInsertSQL(Object bean);
    2,genUpdateSQL(Object bean);
    3,genDeleteSQL(Object bean);
    4,genFindAllSQL(String tableName);
    5,genFindAllSQL(String tableName)
     import java.io.Serializable;

    import java.lang.reflect.Field;

    import java.text.SimpleDateFormat;

    import java.util.ArrayList;

    import java.util.Date;

    import java.util.Hashtable;

    import java.util.List;

    import com.domain.AG;

    /**

     * FOR JDBC RUID Operation,This class can generate SQL by parameter of

     *  Object(update/insert/delete)

     *  or Class(select)

     *

     *@category com.util

     *@class SQLUtil

     *@author zhusheng3@126.com

     *@date 2008-6-7 下午04:08:40

     *@see

     */

    public class SQLUtil

    {

         private final static String database_table_prefix="database.table.prefix";

          private String pkColumnName="SN";

          public SQLUtil()

          {

              //pkColumnName is vary of  Table,so mothods which need pkColumn can not use static

              this.pkColumnName="SN";

          }

          public SQLUtil(String pkColumnName)

          {

              //pkColumnName is vary of  Table,so mothods which need pkColumn can not use static

              this.pkColumnName=pkColumnName;

          }

            /**

             * @param Object  the object for insert

             * @return an insert String like below:

             *  insert into vmm_ag(sn,domainname,modifydate,testDouble)

             *  values(5,'domainname5',to_date('20080121','YYYYMMDD'),22.4)

             */

            public static String genInsertSQL(Object bean)

            {

                List fields=BeanUtil.getFields(bean);

                List values=BeanUtil.getValues2String(bean);

                Hashtable fieldsTypes = BeanUtil.getFieldsAndTypes(bean);

                //System.out.println("fields.size():"+fields.size()+"--values.size():"+values.size());

                if(fields.size() !=values.size())

                {

                    String error="ERROR:genInsertSQL(bean)->fields's size does not match values' size,bean:"+bean+

                    "\n fields.size():"+fields.size()+"--values.size():"+values.size();

                    System.err.println(error);

                    return error;

                }

                //get database table Name

                String tableName=getTableName(bean);

                String insertSQL="insert into "+tableName+" (";

                for (int i = 0; i

                {

                    //if value of this field is null,then ignore this field

                    if(values.get(i) !=null)

                    {

                        insertSQL+=fields.get(i);

                        //if not the last field,then add ","

                        if(i!=fields.size()-1)

                        {

                            insertSQL+=",";

                        }

                    }

                }

                insertSQL+=")";

                insertSQL+="values (";

                for (int j = 0; j

                {

                    String value="";

                    String typeOfThisField=(String) fieldsTypes.get(fields.get(j));

                    if(typeOfThisField.equalsIgnoreCase("String"))

                    {   //when String ,add '' around the string ,like:'tempString'

                        value="'"+values.get(j)+"'";

                    }

 

[1] [2] [3] 

根据JavaBean生成数据库增删改查的SQL语句

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn