Sql2oUtil

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 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 entry : parameterM.entrySet()) {
                    query.addParameter(entry.getKey(), entry.getValue());
                }
            }
            query.executeUpdate();
        }
    }

    /*
     * 查询列表
     * sql: sql语句
     * zClass:映射的实体类
     * return: List
     */
    public static  List 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
     */
    public static  List queryList(final String sql, Map parameterM, Class 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 entry : parameterM.entrySet()) {
                    query.addParameter(entry.getKey(), entry.getValue());
                }
            }
            return query.executeAndFetch(zClass);
        }
    }

    /*
     * 查询单条
     * sql: sql语句
     * parameterM:sql参数
     * zClass:映射的实体类
     * return: T
     */
    public static  T query(final String sql, Map parameterM, Class 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 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 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 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)