Magician-JDBC

Magician 的官方 JDBC 组件
授权协议 MIT
开发语言 Java
所属分类 程序开发、 数据库连接池
软件类型 开源软件
地区 国产
投 递 者 陈和裕
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

Magician-JDBC 是Magician的官方JDBC组件,支持多数据源,无sql单表操作,复杂操作可以写sql,事务管理等

文档

https://magician-io.com

示例

导入依赖

<dependency>
    <groupId>com.github.yuyenews</groupId>
    <artifactId>Magician-JDBC</artifactId>
    <version>last version</version>
</dependency>

<!-- mysql driver package -->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.20</version>
</dependency>
<!-- druid connection pool -->
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid</artifactId>
    <version>1.2.5</version>
</dependency>

<!-- This is the log package, which supports any package that can be bridged with slf4j -->
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-jdk14</artifactId>
    <version>1.7.12</version>
</dependency>

创建数据源

// 这里用druid做示例,实际上可以支持任意实现了DataSource接口的连接池
DruidDataSource dataSource = new DruidDataSource();

Properties properties = new Properties();
properties.put("druid.name", "local");
properties.put("druid.url", "jdbc:mysql://127.0.0.1:3306/martian-test?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&autoReconnect=true&rewriteBatchedStatements=true&useSSL=false");
properties.put("druid.username", "root");
properties.put("druid.password", "123456");
properties.put("druid.driverClassName", Driver.class.getName());

dataSource.setConnectProperties(properties);

将数据源添加到JDBC

// Create JDBC, it is recommended to execute it only once when the project starts
MagicianJDBC.createJDBC()
        .addDataSource("a", dataSource)// Add data source, this method can be called multiple times to add multiple data sources
        .defaultDataSourceName("a");// Set the name of the default data source

单表操作

按条件查询

List<Condition> conditionList = new ArrayList<>();
conditionList.add(Condition.get("id > ?", 10));
conditionList.add(Condition.get("and name = ?", 100));
conditionList.add(Condition.get("order by create_time", Condition.NOT_WHERE));

List<Map> result = JDBCTemplate.get().select("表名", conditionList, Map.class);

按条件删除

List<Condition> conditionList = new ArrayList<>();
conditionList.add(Condition.get("id > ?", 10));
conditionList.add(Condition.get("and name = ?", 100));
conditionList.add(Condition.get("order by create_time", Condition.NOT_WHERE));

JDBCTemplate.get().delete("表名", conditionList);

插入一条数据

DemoPO demoPO = new DemoPo();
demoPO.setName("bee");
demoPo.setAge(10);

JDBCTemplate.get().insert("表名", demoPO);

修改数据

DemoPO demoPO = new DemoPo();
demoPO.setName("bee");
demoPo.setAge(10);

List<Condition> conditionList = new ArrayList<>();
conditionList.add(Condition.get("id = ?", 10));
conditionList.add(Condition.get("and name = ?", 100));

JDBCTemplate.get().update("表名", demoPO, conditionList);

自己写sql

查询

DemoPO demoPO = new DemoPo();
demoPO.setName("bee");
demoPo.setAge(10);

List<Map> result = JDBCTemplate.get().selectList("select * from xxx where name={name} and age={age}", demoPO, Map.class);

增删改

DemoPO demoPO = new DemoPo();
demoPO.setName("bee");
demoPo.setAge(10);

JDBCTemplate.get().exec("update xxx set xxx = {xxx}, ccc = {ccc} where name={name} and age={age}", demoPO);

除此之外,还支持事务管理 和分页查询,详情可以查看文档

  • 大项目交给Spring,小项目可以试一试Magician Magician 是一个基于 Netty 开发的小型 HTTP 服务包,可以非常方便的启动一个 http 服务,同时也支持 WebSocket,注解式 Handler 配置 运行环境 JDK11+ 中央库的 Jar 包 最低支持 JDK11,但是源码最低可以支持 jdk8,如果您需要在 8 上运行,可以下载最新的 tag,自行编译 文档 h

 相关资料
  • Magician 是一个基于Netty开发的小型 HTTP服务包,可以非常方便的启动一个http服务,同时也支持WebSocket,注解式Handler配置 运行环境 JDK8+ 文档 https://magician-io.com 示例 导入依赖 <dependency> <groupId>com.github.yuyenews</groupId> <artifactId>Magic

  • Magician-Containers 是 Magician 的官方组件,一个容器管理模块,可以对项目中的bean进行统一管理,它带来了两个扩展:AOP 和定时任务。 文档 https://magician-io.com 示例 导入依赖 <!-- This is the jar package build by this project --><dependency> <groupId>co

  • Magician-Scanning 是一个用 Java 开发的扫描区块链的工具包,当我们在程序中需要一些功能时,它可以派上用场,比如说。 当一个地址收到ETH时,程序中的一个方法会被自动触发,这个交易会被传入该方法。 当一个合约的某个功能被调用时(比如ERC20转账),它会自动触发程序中的一个方法,并将这个交易传递给这个方法。它甚至可以只在代币被转移到指定地址时被触发。 当程序需要保留一个区块高度

  • Magician-Route 是 Magician 的官方 web 组件,由 Magician-Web 发展而来的新项目,主要是去掉了里面的反射,牺牲了一点易用性,将侧重点放在了性能上,两者的区别主要在于路由和拦截器的创建方式上。 引入依赖 在Magician项目的基础上 添加这个依赖 <dependency> <groupId>com.github.yuyenews</groupId>

  • Magician-Web 是Magician的官方 web组件,可以很方便的管理Controller,支持拦截器,会话管理,注解式参数校验,实体类接收参数等 文档 https://magician-io.com 示例 导入依赖 <!-- This is the jar package build by this project --><dependency> <groupId>com.git

  •  Magician-ContractsTools 是一个用于调用智能合约的工具包,你可以非常容易地在Java程序中调用智能合约进行查询和写入操作。 有三个内置的标准合约模板,分别是ERC20、ERC721和ERC1155,如果你需要调用这三个合约中的标准函数,可以帮助你非常快速地完成工作。除了内置的合同模板外,如果你需要调用自定义的合同函数也是很容易的,以后我们还会继续增加标准模板。 此外,还有I