DB类的一些使用demo,批量新增,新增,新增去重,查询等原创
金蝶云社区-JeremyG
JeremyG
7人赞赏了该文章 1,303次浏览 未经作者许可,禁止转载编辑于2023年02月24日 20:35:43

DB类的一些使用的简单demo,仅供参考

List<Object[]> list = new ArrayList<>();
Object[] objects1 = new Object[]{1L,"a", "{aaaaaaaaaa}"};
Object[] objects2 = new Object[]{2L,"b", "{bbbbbbbb}"};
list.add(objects1);
list.add(objects2);

/** 插入去重 begin  KSQl不支持插入去重,脚本需要指定数据库方言*/
// mysql数据库批量新增,有重复数据则忽略(根据主键和唯一索引来判定)
String sql_i = "/*dialect*/ insert ignore into tk_kdec_midtable (fid,fk_kdec_textfield,fk_kdec_largetextfield) values (?,?,?)";
int[] ints1 = DB.executeBatch(DBRoute.base, sql_i, list);
// mysql数据库批量新增,有重复数据则修改(根据主键和唯一索引来判定)
String sql_u = "/*dialect*/ insert into tk_kdec_midtable (fid,fk_kdec_textfield,fk_kdec_largetextfield) values (?,?,?) ON DUPLICATE KEY UPDATE fk_kdec_largetextfield='{}'";
int[] ints2 = DB.executeBatch(DBRoute.base, sql_u, list);
/** 插入去重 end */

/** 插入数据 begin */
String sql1 = "insert into tk_kdec_midtable (fid,fk_kdec_textfield,fk_kdec_largetextfield) values (?,?,?)";
// 单条数据新增
boolean execute = DB.execute(DBRoute.base, sql1, objects1);
// 批量新增
int[] ints = DB.executeBatch(DBRoute.base, sql1, list);
/** 插入数据 end */

/** 查询数据 begin */
// 查询数据
String sql2 = "select fid from tk_kdec_billdemo_0615 where fid = ?";
Object[] objects = new Object[]{"1188383694197384192"};
Long fid = DB.query(DBRoute.base, sql2, objects, new ResultSetHandler<Long>() {
    @Override
    public Long handle(ResultSet resultSet) throws Exception {
        // 处理结果集并返回
        while (resultSet.next()) {
            long fid = resultSet.getLong("fid");
            return fid;
        }
        return null;
    }
});
System.out.println(fid);
/** 查询数据 end */


赞 7