自动生成查询dao方法2


    /**
     * 自动生成查询方法
     *
     * @param clazz 传入的持久化类 如:User.class
     * @param list 需要查询的属性  如:userId,userName
     *
     */
   
    public static void generateSelectDao(Class clazz,List list){
        Field[] fs = clazz.getDeclaredFields();
        StringBuffer methodBuf = new StringBuffer();
        methodBuf.append("/**/n");
        methodBuf.append(" * 根据条件查找匹配的"+clazz.getSimpleName()+"列表/n");
        methodBuf.append(" * add by 孙钢/n");
        methodBuf.append(" */n");
        methodBuf.append(" * @param o 查询条件 /n");
        methodBuf.append(" * @param start 开始的记录/n");
        methodBuf.append(" * @param fetchSize 需要查出的记录数/n");
        methodBuf.append(" * @return 查出的集合/n");
        methodBuf.append(" *//n");
        methodBuf.append("public List get"+clazz.getSimpleName()+"List("+"Map o,int start,int fetchSize){/n");
        methodBuf.append("/tStringBuffer hqlBuf = new StringBuffer();/n");
        methodBuf.append("/thqlBuf.append(/"select ");
        if(list!=null){
            for(int i=0;i<list.size();i++){
                if(i!=list.size()-1){
                    methodBuf.append("t."+list.get(i)+",");
                }else{
                    methodBuf.append("t."+list.get(i)+" ");
                }
            }
        }
        methodBuf.append("/");/n");
        methodBuf.append("/thqlBuf.append(/"from "+clazz.getSimpleName()+" t where 1=1 /");/n");
        methodBuf.append("/tList paraValues = new ArrayList();/n");
        methodBuf.append("");
        methodBuf.append("/tSet mapSet = o.entrySet();/n");
        methodBuf.append("/tIterator it = mapSet.iterator();/n");
        methodBuf.append("/twhile(it.hasNext()){/n");
        methodBuf.append("/t/tEntry temp = it.next();/n");
        methodBuf.append("/t/thqlBuf.append(/"and t./"+temp.getKey()+/"=? /");/n");
        methodBuf.append("/t/tparaValues.add(temp.getValue());/n");
        methodBuf.append("/t}/n");
        methodBuf.append("/t//根据某个属性排序/n");
        methodBuf.append("/thqlBuf.append(/"order by t.*** desc /");/n");
        methodBuf.append("/tQuery query = createQuery(hqlBuf.toString());/n");
        methodBuf.append("/tfor(int i=0;i<paraValues.size();i++){/n");
        methodBuf.append("/t/tquery.setParameter(i,paraValues.get(i));/n");
        methodBuf.append("/t}/n");
        methodBuf.append("/t//从第start条记录开始,一共fetchSize条记录/n");
        methodBuf.append("/tquery.setFirstResult(start).setMaxResults(fetchSize);/n");
        methodBuf.append("/treturn query.list();/n");
        methodBuf.append("}/n");
        System.out.println(methodBuf.toString());
    }
   
    public static void generateUpdateDao(Class clazz,List list){
       
       
    }
    public static void main(String[] args) {
        List list = new ArrayList();
        list.add("userId");
        list.add("userName");
        generateSelectDao(SnsUser.class,list);
    }


SQLSugar 是一个轻量级的ORM框架,可以简化在.NET开发中与数据库交互的过程。它提供了一种自动生成 DAO (Data Access Object) 的功能,可以方便地生成用于操作数据库的代码。 使用 SQLSugar 自动生成 DAO 的过程相对简单。首先需要在项目中引入 SQLSugar 的命名空间,并安装 SQLSugar 的 NuGet 包。然后,定义一个用于连接数据库的连接字符串,并创建一个 SQLSugar 的实例。 接下来,使用 SQLSugar 对象创建一个名为 Entity 的类,用于映射数据库中的表。在 Entity 类中,我们可以为每个表字段定义对应的属性,并使用属性上的特性来指定字段名、数据类型等信息。 在完成 Entity 类的定义之后,接着可以使用 SQLSugar 对象的方法自动生成 DAO。这些方法通常是根据 Entity 类的定义生成的,包括插入、更新、删除、查询等操作的方法。使用这些 DAO 方法可以方便地对数据库进行操作,避免了手动编写 SQL 语句的繁琐过程。 最后,可以根据需要对生成的 DAO 进行一些定制化的修改。例如,可以添加一些自定义的查询方法,或者对某些自动生成方法进行覆盖重写。 通过 SQLSugar 自动生成 DAO,可以大大提高开发效率,减少编写重复代码的工作量。同时,SQLSugar 还提供了许多丰富的功能和特性,例如事务管理、分页查询、多表关联查询等,可以满足各种复杂的数据库操作需求。在开发过程中,还可以通过 SQLSugar 的日志功能来排查和优化数据库操作中的问题。总的来说,SQLSugar 自动生成 DAO 是一个强大且方便的工具,可以使我们更加专注于业务逻辑的实现,提高开发效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值