1 Star 1 Fork 0

dengdexi / airJdbc

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
MIT

airJdbc

update@2023.8.22

介绍

高性能,更轻快,更简单易用的 OOP JDBC 框架,替代代码繁琐的原生 JDBC,以及配置繁琐的 Mybatis,Hibernate 等框架

特性

  1. 增删改查只需要一句代码即可完成
  2. 高性能,批量插入10000条数据只需要 37-53 ms
  3. 支持使用 OOP 编程
  4. 支持 sql 语句编程
  5. 支持导出数据表映射 Java 类对象
  6. 支持通过多实例轻松完成多线程任务
  7. 支持 MariaDB/MySql, Oracle, SqlServer 数据库,未来将支持更多主流数据库
  8. jdbc代码量减少80%

安装教程

  1. 下载代码或jar包即用,MariaDB/MySql, Oracle, SqlServer 各数据库示例,参阅 src/samples 包中代码

简单示例,增删改查只需要一句代码代即可完成

  1. sql语句编程,MariaDB/MySql 增删改查示例
//MariaDB/mysql 初始化并连接数据库
SqlService.getInstance().init(
                "com.mysql.jdbc.Driver",
                "jdbc:mysql://localhost:3306/picwebdb?allowMultiQueries=true",
                "root",
                "root8@my");
//创建表 user_login
SqlService.getInstance().executeSql(
                "drop table if exists user_login;" +
                "create table user_login(" +
                        "id bigint(30) auto_increment," +
                        "user_name varchar(40)," +
                        "login_count int(10)," +
                        "create_date datetime," +
                        "var_content blob," +
                        "primary key(id)" +
                        ") engine = myisam default charset=utf8"
        );
//insert 插入数据
Object result = SqlService.getInstance().insert("insert into user_login(user_name, login_count) values('ua', 1), ('ub', 1)");
//delete 删除数据
Object result = SqlService.getInstance().delete("delete from user_login where id > 0");
//update 更新数据
Object result = SqlService.getInstance().update("update user_login set user_name = 'uk' where id = 1");
//select 查询数据
Object result = SqlService.getInstance().select("select * from user_login", TableMap.class);
  1. OOP编程示例
//insert 插入数据
TableMap map = new TableMap();
map.tableName = "user_login";
map.set(
                "user_name", "ud",
                "login_count", 4
        );
Object result = SqlService.getInstance().insertOne(map);
//insert 批量插入数据,主流电脑配置插入10000条数据只需要 37-53 ms
ArrayList<TableMap> list = new ArrayList<>();
        for (int i = 0; i < 10000; i++) {
            TableMap map = new TableMap ();
            map.tableName = "user_login";
            map.set("id", i + 1);
            map.set("user_name", "uname" + i);
            map.set("login_count", i + 1);
            map.set("create_date", new java.sql.Date(System.currentTimeMillis()));

            list.add(map);
        }
Object result = SqlService.getInstance().insertBatch(list);
  1. 导出数据表映射 Java 对象,并在查询时转换为 Java 类对象
SqlService.getInstance().exportTableData("src/","src/tableMaps/mariadb/", "Map", false);

如上述表 user_login 导出 UserLoginMap.java:

package tableMaps.mariadb;

import sql.airJdbc.data.TableMap;

/**
 * Data from table: picwebdb.user_login
 * Create by sql.airJdbc.SqlService
 * At date: 2023-08-21 16:01:47
 * @see sql.airJdbc.service.SqlService#exportTableData(String, String, String, boolean)
 */
public class UserLoginMap extends TableMap {
    /**
     * Column names in table
     */
    /** bigint(19) **/
    public static String ID = "id";
    /** varchar(40) **/
    public static String USER_NAME = "user_name";
    /** integer(10) **/
    public static String LOGIN_COUNT = "login_count";
    /** timestamp(19) **/
    public static String CREATE_DATE = "create_date";
    /** longvarbinary(65535) **/
    public static String VAR_CONTENT = "var_content";

    public UserLoginMap(){
        super();
        this.primaryKey = "id";
    }
}
//select 查询数据,转换为 Java 类对象,result 中包含有 UserLoginMap 对象实例
Object result = SqlService.getInstance().select("select * from user_login", UserLoginMap.class);
//使用 Java 映射类,批量插入数据
ArrayList<TableMap> list = new ArrayList<>();
for (int i = 0; i < 10000; i++) {
   UserLoginMap map = new UserLoginMap();
   map.tableName = "user_login";
   map.set(UserLoginMap.ID, i + 1);
   map.set(UserLoginMap.USER_NAME, "uname" + i);
   map.set(UserLoginMap.LOGIN_COUNT, i + 1);
   map.set(UserLoginMap.CREATE_DATE, new java.sql.Date(System.currentTimeMillis()));

   list.add(map);
}
Object result = SqlService.getInstance().insertBatch(list);
  1. 通过多实例轻松完成多线程任务
//线程 1
new Thread(new Runnable(){
            @Override
            public void run() {
                Object result = SqlService.getInstance().select("select * from user_login", UserLoginMap.class);
            }
        }).run();

//线程 2
SqlService.getInstance("instance2").init();
new Thread(new Runnable(){
            @Override
            public void run() {
                Object result = SqlService.getInstance("instance2").select("select * from user_login", UserLoginMap.class);
            }
        }).run();
SPDX-License-Identifier: MIT Copyright (C) 2022 dexi Deng(邓德喜 China) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

简介

高性能,更轻快,更简单易用的 OOP JDBC 框架,增删改查只需要一句代码即可完成,替代代码繁琐的原生 JDBC,以及配置繁琐的 Mybatis,Hibernate 等框架,支持 MariaDB/MySql, Oracle, SqlServer 数据库,jdbc代码量减少80% 展开 收起
Java
MIT
取消

发行版 (1)

全部

贡献者

全部

近期动态

加载更多
不能加载更多了
Java
1
https://gitee.com/wsj4/airjdbc.git
git@gitee.com:wsj4/airjdbc.git
wsj4
airjdbc
airJdbc
master

搜索帮助