`
yuancihang
  • 浏览: 145056 次
  • 性别: Icon_minigender_1
  • 来自: 洛阳
社区版块
存档分类
最新评论

新的开源项目happyjdbc

    博客分类:
  • java
 
阅读更多

happyjdbc

项目地址:https://github.com/yuancihang/happyjdbc

 

简化jdbc操作,提供更现代化的api, 支持分库分表

 

public class DataExample {

public static void main(String[] args) throws SQLException {
    DataAccess.getInstance().addDataSource("local", buildDataSource());

    sampleShare();
}

private static DataSource buildDataSource() throws SQLException{
    return new DataSourceBuilder()
                    .setDbName("my")
                    .setHost("localhost")
                    .setPort(3306)
                    .setUsername("root")
                    .setPassword("123456")
                    .build();
}

public static void sampleUniq() throws SQLException{
    int result = DataAccess.getInstance()
                        .execute(new OpUniq<Integer>("local", "select c2 from t1 where c1=?", null, 1){})
                        .uniqResult();
    System.err.println(result);

    T1 t1 = DataAccess.getInstance()
                        .execute(new OpUniq<T1>("local", "select * from t1 where c1=?", null, 1){})
                        .uniqResult();
    System.err.println(t1);

    Map<String, Object> map = DataAccess.getInstance()
                                .execute(new OpUniq<Map<String, Object>>("local", "select * from t1 where c1=?", null, 1){})
                                .uniqResult();
    for(String name : map.keySet()){
        System.err.println(name + "=" + map.get(name));
    }
}

public static void sampleList() throws SQLException{
    List<Integer> result = DataAccess.getInstance()
            .execute(new OpList<Integer>("local", "select c2 from t1", null){})
            .listResult();
    System.err.println(result);

    List<T1> t1 = DataAccess.getInstance()
            .execute(new OpList<T1>("local", "select * from t1", null){})
            .listResult();
    System.err.println(t1);
}

  public static void sampleUpdate() throws SQLException{
    int result = DataAccess.getInstance()
            .execute(new OpUpdate("local", "update t1 set c2=? where c1=?", null, 3, 1))
            .uniqResult();
    System.err.println(result);

    long id = DataAccess.getInstance()
            .execute(new OpInsertReturnId("local", "insert into t1(c2,c3) value(?,?)", null, 10, 10))
            .uniqResult();
    System.err.println(id);
  }

  public static void sampleTransaction() throws SQLException{
    // dbInstance必须一致
    List<OpResult<?>> resultList = DataAccess.getInstance().executeTransaction(Arrays.asList(
                      new OpUpdate("local", "update t1 set c2=? where c1=?", null, 4, 1),
                      new OpUpdate("local", "update t1 set c2=? where c1=?", null, 6, 3)
                      ));
    for(OpResult<?> opResult : resultList){
      System.err.println(opResult.uniqResult());
    }
  }

  public static void sampleShare() throws SQLException{
    // table : user_0 ~ user_31
    // field: id, name
    DbShare.getInstance().addRule("user", "'user_'+(shareParam % 32)");

    int result = DataAccess.getInstance()
              .execute(new OpUpdate("local", "update user set name=? where id=?", 32, "zhang", 32))
              .uniqResult();
    System.err.println(result);
  }

  public static class T1{
    private long c1;
    private int c2;
    private int c3;

    public long getC1() {
      return c1;
    }
    public void setC1(long c1) {
      this.c1 = c1;
    }
    public int getC2() {
      return c2;
    }
    public void setC2(int c2) {
      this.c2 = c2;
    }
    public int getC3() {
      return c3;
    }
    public void setC3(int c3) {
      this.c3 = c3;
    }

    @Override
    public String toString(){
      return c1+","+c2+","+c3;
    }

  }

}

 

maven

<dependency>
    <groupId>com.github.yuancihang</groupId>
    <artifactId>happyjdbc</artifactId>
    <version>1.2</version>
</dependency>

 

gradle

compile 'com.github.yuancihang:happyjdbc:1.2'

 

分享到:
评论

相关推荐

    go开源项目大全(目前最完整)

    看过awesome-go项目, 汇总了很多go开源项目。 但是awesome-go收集了太全了, 而且每个项目没有详细描述。 因此我自己根据go语言中文社区提供的资料,还有互联网企业架构设计中的常见组件分类, 共精心挑选了100多个...

    qt的开源项目源码

    QT开源项目源码是软件开发领域中的宝贵资源,尤其对于想要深入理解图形用户界面(GUI)编程、跨平台应用开发以及C++编程实践的开发者来说,具有极高的学习价值。QT是一个广泛使用的开源框架,由Qt公司开发并维护,它...

    .Android开源项目分类汇总

    在IT行业中,Android开源项目是开发者们学习、借鉴和创新的重要资源。开源意味着代码公开,允许任何人查看、使用、修改并重新分发。".Android开源项目分类汇总"是一个集大成的资源包,包含了众多优秀Android开发者的...

    基于Python Flask的在线成绩发布学习平台开源项目

    项目概述:基于Python Flask的在线成绩发布学习平台是一个开源项目,...该项目旨在为广大用户提供一个便捷的在线学习环境,集中管理和发布学生的成绩信息,其开源性质允许并鼓励用户根据自身需求进行定制化修改和扩展。

    Android开源项目汇总

    Android开源项目汇总 Android 开源项目软件apk Android 开源项目软件apk=============最全的自定义控件等等===========

    Java最著名的开源项目

    在Java的生态系统中,存在诸多著名的开源项目,这些项目各有特色,为Java开发人员提供了丰富的开发工具和应用架构。以下是对一些Java著名开源项目的详细介绍,它们分别在不同的开发领域中扮演着重要角色。 首先,...

    5个好玩的github游戏区开源项目

    在 IT 领域,开源项目一直扮演着重要的角色,它们不仅推动了技术的发展,也为开发者提供了学习和实践的平台。对于游戏爱好者来说,GitHub 上有许多有趣的开源游戏项目,能够让我们深入了解游戏开发的过程,甚至参与...

    经典开源项目1

    【标题】"经典开源项目1"揭示了我们讨论的主题,这是一个关于开源软件的集合,特别是针对安卓平台。开源项目在IT行业中占据着重要的位置,它们促进了技术创新,为开发者提供了学习和改进现有技术的机会。这些项目...

    Android代码-Android 优秀开源项目实现原理解析

    Android 开源项目 Demo 本工程主要用于 Android 优秀开源项目实现原理解析 的 Demo 代码托管 添加规范 各项目需要新建一个属于自己的文件夹,用于后续上传该开源库使用示例工程代码 该文件夹以开源库名-demo命名,...

    VUE相关开源项目

    Vue相关开源项目库汇总

    视频通话 sipandroid 开源项目源码

    原来的网上的开源项目很多都跑不起来,这个项目,经本人修改,经测试在android4.0系统上运行已经没问题,研究了下,发现对需要做视频通话的人来讲还是有很大帮助,特此贡献出来,供大家研究学习,压缩文件是在linux...

    pc远控android开源项目

    PC远程登录手机 登录之后,必然涉及到按键的模拟等操作。 三个开源的软件一个是SmartDog Studio的Remote Control Add-on 另一个是Webkey 最后一个是Android自带monkey

    为知笔记开源项目程序源码,实现云笔记功能需要自己搭建服务器

    为知笔记开源项目程序源码,实现云笔记功能需要自己搭建服务器 为知笔记开源项目程序源码,实现云笔记功能需要自己搭建服务器 为知笔记开源项目程序源码,实现云笔记功能需要自己搭建服务器 为知笔记开源项目程序...

    GitHub开源项目SlidingMenu类库

    GitHub开源项目SlidingMenu的类库,导入之后可以直接使用 教程地址:http://blog.csdn.net/yangyu20121224/article/details/9255829

    教你如何用Github找开源项目(保姆级教程)

    教你如何用Github找开源项目(保姆级教程)教你如何用Github找开源项目(保姆级教程)教你如何用Github找开源项目(保姆级教程)教你如何用Github找开源项目(保姆级教程)教你如何用Github找开源项目(保姆级教程)教你...

    17届全国大学生智能汽车竞赛无线充电组开源项目.zip

    17届全国大学生智能汽车竞赛无线充电组开源项目 17届全国大学生智能汽车竞赛无线充电组开源项目 17届全国大学生智能汽车竞赛无线充电组开源项目 17届全国大学生智能汽车竞赛无线充电组开源项目 17届全国大学生智能...

    通过对流行的优质android开源项目分析、学习、仿写,最终理解,不仅帮你掌握最新的android技术,更能让你理解开源项目的精华之处.zip

    通过对流行的优质android开源项目分析、学习、仿写,最终理解,不仅帮你掌握最新的android技术,更能让你理解开源项目的精华之处。.zip,Analysis for Popular & Hot Android open-source Applications & Libraries ...

    开源项目Android-炫酷的3D音乐播放器-各种特效OpenGL.zip

    [开源项目]Android_炫酷的3D音乐播放器_各种特效OpenGL[开源项目]Android_炫酷的3D音乐播放器_各种特效OpenGL[开源项目]Android_炫酷的3D音乐播放器_各种特效OpenGL[开源项目]Android_炫酷的3D音乐播放器_各种特效...

    40个Android开源项目11

    Android开发必看的40个Android开源项目,帮助你了解并学习安卓!

    40个Android开源项目1

    Android开发必看的40个Android开源项目,帮助你了解并学习安卓!

Global site tag (gtag.js) - Google Analytics