微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

db.record 通过 record(map) 的方式操作表数据

程序名称:db.record

授权协议: 未知

操作系统: 跨平台

开发语言: Java

db.record 介绍


通过 record(map)的方式操作表数据,似orm非orm,半对像操作。

本类库基于jfinal
V1.9改造,写一些简单的功能的时候特别适合使用,比如要转结数据,比如初始数据,相比orm不需要搞一堆对像,相比存sql不需要搞一些insert
update。

通过sql语句查询某几个表的数据返回 record,直接将该对像(不是写sql)保存或者更新到一个新表中。这种方式特别省事

apache dbutils数据库支持已足够好,但还是略显烦杂,当然也可以基于dbutils实现 jfinal的操作方式

相比 Spring jdbcTemplate 那肯定是少了N多依赖

相比 jdbc操作那肯定方便很多

使用

添加依赖

<dependency>
    <groupId>com.liucf</groupId>
    <artifactId>db.record</artifactId>
    <version>0.0.4</version>
</dependency>

示例

1.初始化Db

//初始化数据连接
Db.init(jdbc:MysqL://host:port/test?characterEncoding=utf-8&autoReconnect=true&autoReconnectForPools=true&serverTimezone=GMT%2B8,root, xxx);
//打印sql日志
Db.use().setShowsql(true);

2.查询数据

//简单查询
List<Record> baskets = Db.find(select * from base_basket);
for (Record record : baskets) {
    System.out.println(record.getStr(id));
    System.out.println(record.toJson());
}

//根据id查询
Record record = Db.findById(base_basket, 001)

//查询首条数据
Db.findFirst(select * from base_basket where id = ?, 001)

//分页查询 count参数决定是否统计总行数
Page<Record> p = Db.paginate(1, 2, select * from base_basket where id>?, false, 1000);
p.getList();
p.getPageNumber();
p.getPageSize();
p.getTotalPage();
p.getTotalRow();

3.新增

Record r = new Record();
r.set(id, ddddd);
Db.save(base_basket, r);

4.更新

Record r = new Record();
r.set(id, ddddd);
Db.update(base_basket, r);
//主键名称非id
//Db.update(base_basket, id, r);

4.删除

Db.deleteById(base_basket, 001);
//Db.update(delete from base_basket);

5.事务

Db.tx(new TransactionWrap() {
        @Override
        public boolean run() throws sqlException {
            try {
                Record r = new Record();
                r.set(id, ddddd);
                Db.save(base_basket, r);

                r.set(id, ddddd);
                r.set(remarks, remarks);
                Db.update(base_basket, id, r);
            } catch (Exception e) {
                return false;
            }
            return true;
        }
    });

6.多数据源

Db.init(jdbc:MysqL://host:port/test?characterEncoding=utf-8&autoReconnect=true&autoReconnectForPools=true&serverTimezone=GMT%2B8,root, xxx);
Db.initAlias(toDb,jdbc:MysqL://xxx:3306/test?characterEncoding=utf-8&autoReconnect=true&autoReconnectForPools=true&serverTimezone=GMT%2B8,user,password)

//使用 Db.use 切换数据源
Db.use().find();//认数据源
Db.use(toDb).find();//指定数据源

db.record 官网

https://github.com/deeplyloving/db.record

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐