# Magician-JDBC
**Repository Path**: geekcheng_admin/Magician-JDBC
## Basic Information
- **Project Name**: Magician-JDBC
- **Description**: Magician-JDBC 是Magician的官方JDBC组件,可以很快捷的实现数据库操作
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: master
- **Homepage**: http://magician-io.com
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 1
- **Created**: 2021-05-10
- **Last Updated**: 2021-05-10
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
Magician的官方JDBC组件
## 项目简介
Magician-JDBC 是Magician的官方JDBC组件,可以很快捷的实现数据库操作
## 安装步骤
### 一、导入依赖
```xml
com.github.yuyenews
Magician-JDBC
最新版
mysql
mysql-connector-java
8.0.20
com.alibaba
druid
1.2.5
org.slf4j
slf4j-jdk14
1.7.12
```
### 二、创建数据源
```java
/*
* 理论上支持任意 实现了 DataSource接口 的数据源
* 这段代码在实战中 可以另起一个类去存放
* 此处是用druid为例子的
*/
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资源
```java
// 创建JDBC的资源,建议只在项目启动的时候执行一次
MagicianJDBC.createJDBC()
.addDataSource("a", dataSource)// 添加数据源,这个方法可以调用多次,添加多个数据源
.defaultDataSourceName("a");// 设置默认数据源的名称
```
### 操作数据库
```java
/* ************** 操作数据库,这些代码 在实战中需要写到对应的DAO里面 ************ */
// 从test表查询主键=102的数据
String sql = SqlBuilder.select("test").byPrimaryKey("id").builder();
DemoDTO param = new DemoDTO();
param.setId(102);
DemoDTO demoDTO = JdbcTemplate.create().selectOne(sql, param, DemoDTO.class);
// 删除主键=103的数据
String sql2 = SqlBuilder.delete("test").byPrimaryKey("id").builder();
DemoDTO param2 = new DemoDTO();
param2.setId(103);
JdbcTemplate.create().update(sql2, param2);
// 将Demo保存到数据库
DemoDTO demo = new DemoDTO();
demo.setCreateTime(new Date());
demo.setName("testName");
String sql3 = SqlBuilder.insert("test").column(DemoDTO.class).builder();
JdbcTemplate.create().update(sql3, demo);
// 修改主键=105的数据的 name为testName,createTime为当前时间
DemoDTO demo2 = new DemoDTO();
demo2.setCreateTime(new Date());
demo2.setName("testName");
demo2.setId(105);
String sql5 = SqlBuilder.update("test").column(DemoDTO.class).where("id = #{id}").builder();
JdbcTemplate.create().update(sql5, demo2);
// 查询name=testName的数据
DemoDTO demo3 = new DemoDTO();
demo3.setName("testName");
List demoDTOList = JdbcTemplate.create().selectList("select * from test where name=#{name}", demo3, DemoDTO.class);
// 除了这些,JdbcTemplate里面还有很多操作数据库的方法
```
## 开发资源
- 开发文档: [http://magician-io.com/docs/jdbc/index.html](http://magician-io.com/docs/jdbc/index.html)
- 使用示例: [https://github.com/yuyenews/yuyenews-Magician-JDBC-Example](https://github.com/yuyenews/yuyenews-Magician-JDBC-Example)