支持事务的CRUD-Session

介绍

Session非常类似于SqlRunner,差别是Session对象中只有一个Connection,所有操作也是用这个Connection,便于事务操作,而SqlRunner每执行一个方法都要从DataSource中去要Connection。样例如下:

Session创建

SqlRunner类似,Session也可以通过调用create

//默认数据源
Session session = Session.create();
//自定义数据源(此处取test分组的数据源)
Session session = Session.create(DSFactory.get("test"));

事务CRUD

session.beginTransaction()表示事务开始,调用后每次执行语句将不被提交,只有调用commit方法后才会合并提交,提交或者回滚后会恢复默认的自动提交模式。

  • 新增
Entity entity = Entity.create(TABLE_NAME).set("字段1", "值").set("字段2", 2);
try {
    session.beginTransaction();
    // 增,生成SQL为 INSERT INTO `table_name` SET(`字段1`, `字段2`) VALUES(?,?)
    session.insert(entity);
    session.commit();
} catch (SQLException e) {
    session.quietRollback();
}
  • 更新
Entity entity = Entity.create(TABLE_NAME).set("字段1", "值").set("字段2", 2);
Entity where = Entity.create(TABLE_NAME).set("条件1", "条件值");
try {
    session.beginTransaction();
    // 改,生成SQL为 UPDATE `table_name` SET `字段1` = ?, `字段2` = ? WHERE `条件1` = ?
    session.update(entity, where);
    session.commit();
} catch (SQLException e) {
    session.quietRollback();
}
  • 删除
Entity where = Entity.create(TABLE_NAME).set("条件1", "条件值");
try {
    session.beginTransaction();
    // 删,生成SQL为 DELETE FROM `table_name` WHERE `条件1` = ?
    session.del(where);
    session.commit();
} catch (SQLException e) {
    session.quietRollback();
}

看完两件小事

如果你觉得这篇文章对你挺有启发,我想请你帮我两个小忙:

  1. 关注我们的 GitHub 博客,让我们成为长期关系
  2. 把这篇文章分享给你的朋友 / 交流群,让更多的人看到,一起进步,一起成长!
  3. 关注公众号 「方志朋」,公众号后台回复「资源」 免费领取我精心整理的前端进阶资源教程

JS中文网是中国领先的新一代开发者社区和专业的技术媒体,一个帮助开发者成长的社区,目前已经覆盖和服务了超过 300 万开发者,你每天都可以在这里找到技术世界的头条内容。欢迎热爱技术的你一起加入交流与学习,JS中文网的使命是帮助开发者用代码改变世界

results matching ""

    No results matching ""