Sql2oUtil

作者: 毛仑上保罗先生 | 来源:发表于2018-01-16 17:21 被阅读0次
    package cn.szhl.foreign.utils;
    
    import org.sql2o.Connection;
    import org.sql2o.Query;
    import org.sql2o.Sql2o;
     
    import java.util.List;
    import java.util.Map;
    
    public class Sql2oUtil {
    
        /*
         * 执行单条增,删,改操作
         * sql: sql语句
         * parameterM:sql参数
         */
        public static void execute(final String sql, Map<String, Object> parameterM) {
            Sql2o sql2o = new Sql2o(ConnPoolUtil.getDataSource());
            try (Connection con = sql2o.open()) {
                Query query = con.createQuery(sql);
                if (parameterM != null && parameterM.size() > 0) {
                    for (Map.Entry<String, Object> entry : parameterM.entrySet()) {
                        query.addParameter(entry.getKey(), entry.getValue());
                    }
                }
                query.executeUpdate();
            }
        }
    
        /*
         * 查询列表
         * sql: sql语句
         * zClass:映射的实体类
         * return: List<T>
         */
        public static <T> List<T> queryList(final String sql, Class zClass) {
            Sql2o sql2o = new Sql2o(ConnPoolUtil.getDataSource());
            try (Connection con = sql2o.open()) {
                Query query = con.createQuery(sql);
                return query.executeAndFetch(zClass);
            }
        }
    
        /*
         * 查询列表
         * sql: sql语句
         * parameterM:sql参数
         * zClass:映射的实体类
         * return: List<T>
         */
        public static <T> List<T> queryList(final String sql, Map<String, Object> parameterM, Class<T> zClass) {
            Sql2o sql2o = new Sql2o(ConnPoolUtil.getDataSource());
            try (Connection con = sql2o.open()) {
                Query query = con.createQuery(sql);
                if (parameterM != null && parameterM.size() > 0) {
                    for (Map.Entry<String, Object> entry : parameterM.entrySet()) {
                        query.addParameter(entry.getKey(), entry.getValue());
                    }
                }
                return query.executeAndFetch(zClass);
            }
        }
    
        /*
         * 查询单条
         * sql: sql语句
         * parameterM:sql参数
         * zClass:映射的实体类
         * return: T
         */
        public static <T> T query(final String sql, Map<String, Object> parameterM, Class<T> zClass) {
            Sql2o sql2o = new Sql2o(ConnPoolUtil.getDataSource());
            try (Connection con = sql2o.open()) {
                Query query = con.createQuery(sql);
                if (parameterM != null && parameterM.size() > 0) {
                    for (Map.Entry<String, Object> entry : parameterM.entrySet()) {
                        query.addParameter(entry.getKey(), entry.getValue());
                    }
                }
                return query.executeAndFetchFirst(zClass);
            }
        }
    
        /*
         * 查询第一行第一列
         * sql: sql语句
         * parameterM:sql参数
         * return: 第一行第一列
         */
        public static Object executeScalar(final String sql, Map<String, Object> parameterM) {
            Sql2o sql2o = new Sql2o(ConnPoolUtil.getDataSource());
            try (Connection con = sql2o.open()) {
                Query query = con.createQuery(sql);
                if (parameterM != null && parameterM.size() > 0) {
                    for (Map.Entry<String, Object> entry : parameterM.entrySet()) {
                        query.addParameter(entry.getKey(), entry.getValue());
                    }
                }
                return query.executeScalar();
            }
        }
    
        /*
         * 查询第一行第一列
         * sql: sql语句
         * return: 第一行第一列
         */
        public static Object executeScalar(final String sql) {
            Sql2o sql2o = new Sql2o(ConnPoolUtil.getDataSource());
            try (Connection con = sql2o.open()) {
                Query query = con.createQuery(sql);
                return query.executeScalar();
            }
        }
    }
    

    不过感觉坑太多了, 比如查询单条对象, 如果查不到值给直接返回空指针异常.....醉了

    相关文章

      网友评论

          本文标题:Sql2oUtil

          本文链接:https://www.haomeiwen.com/subject/vifeoxtx.html