1024创新实验室-公告

助力抖音1000个粉丝,开播写代码🎉🎉

打开【抖音APP】-点击【左上角侧边栏】-【点击扫一扫】-【进行关注】🎉🎉


和1024创新实验室一起,热爱代码,热爱生活,永远年轻,永远前行🎉🎉


Skip to content

SmartDb 增、删、查、改、批量、事务

SmartDb 增、删、查、改、批量等操作是非常非常简单的,只要求你会sql就可以了~

1、增、删、改

具体使用 SmartDb.execute 方法,即可以完成操作

java
// 增加
smartDb.execute("insert into t_user values ('卓大','洛阳')");
smartDb.execute("insert into t_user values (?,?)", "卓大", "洛阳");
smartDb.execute("insert into t_user values (?,?)", Arrays.asList("卓大", "洛阳"));

// 修改
smartDb.execute("update t_user set name='卓大2', area='洛阳'  where id = 1");
smartDb.execute("update t_user set name=?, area=?  where id = ?", "卓大", "洛阳", 1);
smartDb.execute("insert into t_user values (?,?)", Arrays.asList("卓大", "洛阳", 1));

// 删除
smartDb.execute("delete from t_user  where id = 1");
smartDb.execute("delete from t_user  where id = ?", 1);
smartDb.execute("delete from t_user  where id = ?", Arrays.asList(1));

2、批量

具体使用 SmartDb.batch 方法,即可以完成操作

java
// 批量
List<Object[]> batchParamsList = new ArrayList<>();
batchParamsList.add(new Object[]{"卓大","洛阳"});
batchParamsList.add(new Object[]{"zhuoda","luoyang"});
smartDb.batch("insert into t_user values (?,?) ",batchParamsList);

3、查询

查询可以使用 queryFirst和 queryList方法。方法定义如下:

<T> T queryFirst(Class<T> cls, String sql, Object... params);
<T> List<T> queryList(Class<T> cls, String sql, Object... params);

第一个参数 cls : 支持基本数据类型,比如int.class , Integer.class; 也支持用Map.class来进行接收哦!!! 第二个参数 sql : 为具体的sql 语句 第三个可变参数 params : 为具体的sql 参数

使用JavaBean接收对象,请确保 配置正确的SmartDbBuilder的setTableNameConvertersetColumnNameConverter方法

3.1、查询单个

具体使用 SmartDb.queryFirst 方法,即可以完成操作

// 查询单条记录
UserEntity userEntity = smartDb.queryFirst(UserEntity.class,"select * from t_user where id = 1");
UserEntity userEntity1 = smartDb.queryFirst(UserEntity.class,"select * from t_user where id = ?", 1);
// 查询总计
Long count = smartDb.queryFirst(Long.class, "select count(*) from t_user ");

3.2、查询多个

具体使用 SmartDb.queryList 方法,即可以完成操作

// 查询多条记录
List<UserEntity> userEntityList = smartDb.queryList(UserEntity.class, "select * from t_user where id > 1");
List<UserEntity> userEntityList2 = smartDb.queryList(UserEntity.class,"select * from t_user where id > ?", 1);

3.3、使用Map.class来接收(内部使用HashMap实现)

java
List<Map> userMapList = smartDb.queryList(Map.class, "select * from t_user where id > 1");
for (Map map : userMapList) {
    System.out.println( map.get("name") + " , " + map.get("area"));
}

4、分页

SmartDb 分页只提供了 SelectSqlBuilder方式实现,具体可以查看SmartDb超级好用的Sql Builder模式

5、事务

SmartDb提供了两种操作事务的方式,一种为getConnection 分步骤操作,一种是实现一个TransactionRunnable接口。

5.1 分步操作

  1. 通过getConnection方法 获取 TransactionSmartDbNode 对象 2)使用TransactionSmartDbNode 对象进行事务的:
  • begin 开启
  • commit 提交
  • rollback 回滚

代码如下:

java
// 获取事务对象
TransactionSmartDbNode transactionSmartDb = smartDb.getTransaction();
try {
    //开启事务
    transactionSmartDb.begin();

    // 进行sql操作
    transactionSmartDb.execute("delete from t_user where id = 1");
    transactionSmartDb.execute("update t_user set name = ? where id = ?", "卓大", 2);
    transactionSmartDb.batch("......",null);
    //...

    //提交事务
    transactionSmartDb.commit();
} catch (SQLException t) {
    log.error(t);
    try {
		// 回滚
        transactionSmartDb.rollback();
    } catch (SQLException e) {
        log.error(e);
    }
}finally {
    // 最后释放连接!!!切记!!!
    transactionSmartDb.releaseConnection();
}

5.2 使用lambda表达式实现接口执行

调用runTransaction方法

java
smartDb.runTransaction(transactionSmartDb -> {
    // 进行sql操作
    transactionSmartDb.execute("delete from t_user where id = 1");
    int rows = transactionSmartDb.execute("update t_user set name = ? where id = ?", "卓大", 2);
    if(rows > 0){
        transactionSmartDb.batch("......", null);
        // 返回 true 表示提交事务
        return true;
    }else{
        // 返回 false 表示 回滚
        return false;
    }
});

联系我们

1024创新实验室-主任:卓大,混迹于各个技术圈,研究过计算机,熟悉点 java,略懂点前端。
1024创新实验室 致力于成为中原领先、国内一流的技术团队, 以AI+数字化为驱动,用技术为产业互联网提供无限可能, 业务如下:
  • 教育(就业创业大数据平台、继续教育平台、在线教育系统、题库、医学考试、专升本等)
  • 供应链(网络货运、大宗贸易进销存ERP、物流TMS、B2B电商、仓储WMS、AI提效等)
  • 中医大健康(诊所数字化管理、AI辅助诊疗、中医适宜技术、在线问诊、空中药房等)
  • AI+软件(软件定制外包、数据大屏、国产化改造、人员外包、技术顾问、技术培训等)
  • 欢迎各类合作哦,一起赚钱~
加微信: 卓大
拉你入群,一起学习
公众号 :六边形工程师
分享:赚钱、代码、生活
请 “1024创新实验室”
烩面里加肉
咖啡配胡辣汤,提神又饱腹
抖音 : 六边形工程师
直播:赚钱、代码、中医