LqJdbc 轻量级数据库开源项目

我要开发同款
匿名用户2015年11月26日
32阅读
开发技术Java
所属分类程序开发、ORM/持久层框架
授权协议Apache

作品详情

LqJdbc可以很轻松地操作数据库,使用了C3P0链接池,实现了hibernate的一些简单功能如save,update,delete,find,createentity,也实现了springjdbcTemplante的一些简单功能,如queryForList,execute,最新的3.0版,还实现了多数据源操作,可以进行读写分离。

LqJdbc的好处就在于任何JAVA项目,直接导入JAR,配制lqjdbc.properties即可使用,是轻量级开源项目。

网页底部为项目下载地址

实例:

importjava.io.InputStream;importjava.sql.ResultSet;importjava.sql.SQLException;importjava.util.List;importcom.lq.util.jdbc.DatabasesJdbc;importcom.lq.util.jdbc.DatabasesInterfaceT;importcom.lq.util.jdbc.Jdbc;importcom.lq.util.jdbc.LqEntitySql;importcom.lq.util.jdbc.LqJdbcFactory;importcom.lq.util.jdbc.LqResultSet;importcom.lq.util.jdbc.LqShiWu;importcom.lq.util.jdbc.Page;publicclassTest{publicstaticvoidmain(String[]args){}publicvoidpageSelectTest(){//SQLSERVER2005分页查询用法Stringsql="SELECTROW_NUMBER()OVER(ORDERBYid)ASRowNumber,*frompayinfo";StringsqlCount="selectcount(*)frompayinfo";//其它数据库SQL分页sql="SELECT*frompayinfo";sqlCount="selectcount(*)frompayinfo";Pagepage=Jdbc.findPage(sql,1,3,sqlCount,newObject[]{});System.out.println(page.getData().size());}publicvoidshuoM(){/***生成实体类*/Jdbc.createEntity("com.entity","t_user","id");/***生成插入修改SQL语句*/Jdbc.createSQL("t_user","id");//-------------------------下面为SQL语句操作----------------------------------------/***查询*/Jdbc.find("select*fromt_userwhereid=?",newObject[]{"1"});/***分页查询*/Pagepage=Jdbc.findPage("select*fromt_userwhereid=?",1,15,"selectcount(id)fromt_userwhereid=?",newObject[]{"1"});/***插入*/Jdbc.execute("insertintotest(name)values(?)",newObject[]{"吃人的肉"});/***修改*/Jdbc.execute("updatetestsetname=?whereid=?",newObject[]{"吃人的肉1","1"});/***删除*/Jdbc.execute("deletefromtestwhereid=?",newObject[]{"1"});//------------------------下面为实体类操作------------------------------------------finalTesttest=newTest();Jdbc.save(test);//插入Jdbc.update(test);//修改Jdbc.delete(test);//删除Listlist=Jdbc.find("select*fromt_user",Test.class,newObject[]{});//查询返回实体类//------------------------下面为事务操作------------------------------------------/***事务处理*/Jdbc.shiwu(newLqShiWu(){@Overridepublicvoidshiwu(LqJdbcFactoryjdbc){if(1!=1){//验证判断jdbc.shiB=9;//如果验证通过返回自定义的状态码return;}jdbc.find("select*fromt_userwhereid=?",newObject[]{"1"});jdbc.execute("insertintotest(name)values(?)",newObject[]{"吃人的肉"});jdbc.execute("updatetestsetname=?whereid=?",newObject[]{"吃人的肉1","1"});jdbc.execute("deletefromtestwhereid=?",newObject[]{"1"});Jdbc.save(test);//插入Jdbc.update(test);//修改Jdbc.delete(test);//删除}});/**      *图片的存储<文件>      */      Fileimg=newFile("pic.jpeg");      intc=Jdbc.execute("updateimagesetpic=?",newObject[]{img});      img.delete();            /**      *图片的存储<流>      */      FileInputStreamin=null;      try{         in=newFileInputStream(newFile("pic.jpeg"));         intc2=Jdbc.execute("updateimagesetpic=?",newObject[]{in});      }catch(FileNotFoundExceptione1){         //TODOAuto-generatedcatchblock         e1.printStackTrace();      }finally{         try{            in.close();         }catch(IOExceptione){            //TODOAuto-generatedcatchblock            e.printStackTrace();         }      }            /**      *图片的读取      */      List<ListOrderedMap>listImg=Jdbc.getDS("pg").find("selectarea_imgfromcompany_arealimit1");      InputStreaminImg=(InputStream)listImg.get(0).get("area_img");/***操作结果集*/Jdbc.operationResultSet(newLqResultSet(){@OverridepublicvoidgetResultSet(LqJdbcFactoryjdbc){ResultSetrs=jdbc.findResultSet("selectphotofromt_userwhereid=?",newObject[]{"5"});try{while(rs.next()){InputStreamin=rs.getBinaryStream("photo");}}catch(SQLExceptione){e.printStackTrace();}}});      /**      *多种数据库操作      */      finalStringBuffersb=newStringBuffer();      finalListlistCs2=newArrayList();      Jdbc.sql(newDatabasesInterface(){         publicStringoracle(){            sb.append("select*fromadminwhereid=?");            listCs2.add("1");            returnnull;         }         publicStringmysql(){            sb.append("select*fromadminwhereid=?");            listCs2.add("1");            returnnull;         }         publicStringsqlserver(){            sb.append("select*fromadminwhereid=?");            listCs2.add("1");            returnnull;         }      });      Listlist2=Jdbc.find(sb.toString(),listCs2.toArray());System.out.println(list2);/**      *批量执行      */      finalStringsql="insertintotest(name)values(?)";      Jdbc.piliang(sql,newLqPiLiang(){         publicvoidpiliang(LqJdbcFactoryjdbc){            for(inti=0;i<100;i++){               jdbc.executeS(newObject[]{i+""});            }         }      });            /**      *多数据源操作      */        Mapmap=Jdbc.getDSNames();//得到除默认数据源外的所有数据源名称      ListlistDdb=Jdbc.find("select*fromtest");//读取默认数据源      ListlistDrdb=Jdbc.getDS(readDB).find("select*fromtest");//读取第二个数据源      ListlistDwdb=Jdbc.getDS(writeDB).find("select*fromtest");//读取第三个数据源}}

下面为配制文件lqjdbc.properties

#MYSQL_DRIVERDriverClassName=com.mysql.jdbc.Driver#MYSQL_URLAllUrl=jdbc:mysql://127.0.0.1/db4?useOldAliasMetadataBehavior=true&useUnicode=true&characterEncoding=utf-8&rewriteBatchedStatements=true***root***123456#初始化链接数InitialPoolSize=50#最小链接数MinPoolSize=20#最大链接数MaxPoolSize=100#执行线程数-版本支持2.3以上版本NumHelperThreads=20#每页显示多少条数据PageSize=15#多少页一组GroupPageSize=5#打印日志SqlLog=true#是否打印查询耗时-版本支持2.1.9以上版本SqlSuccessTime=true#^^^^^^^^^^^^^^^^^^^^^^^读^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^#MYSQL_URLlqjdbc.appender.query.AllUrl=jdbc:mysql://127.0.0.1/db2?useOldAliasMetadataBehavior=true&useUnicode=true&characterEncoding=utf-8&rewriteBatchedStatements=true***root***123456#MYSQL_DRIVERlqjdbc.appender.query.DriverClassName=com.mysql.jdbc.Driver#初始化链接数lqjdbc.appender.query.InitialPoolSize=50#最小链接数lqjdbc.appender.query.MinPoolSize=20#最大链接数lqjdbc.appender.query.MaxPoolSize=100#执行线程数-版本支持2.3以上版本lqjdbc.appender.query.NumHelperThreads=20#每页显示多少条数据lqjdbc.appender.query.PageSize=15#多少页一组lqjdbc.appender.query.GroupPageSize=5#打印日志lqjdbc.appender.query.SqlLog=true#是否打印查询耗时-版本支持2.1.9以上版本lqjdbc.appender.query.SqlSuccessTime=true#^^^^^^^^^^^^^^^^^^^^^^^写^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^#MYSQL_URLlqjdbc.appender.write.AllUrl=jdbc:mysql://127.0.0.1/db3?useOldAliasMetadataBehavior=true&useUnicode=true&characterEncoding=utf-8&rewriteBatchedStatements=true***root***123456#MYSQL_DRIVERlqjdbc.appender.write.DriverClassName=com.mysql.jdbc.Driver#初始化链接数lqjdbc.appender.write.InitialPoolSize=50#最小链接数lqjdbc.appender.write.MinPoolSize=20#最大链接数lqjdbc.appender.write.MaxPoolSize=100#执行线程数-版本支持2.3以上版本lqjdbc.appender.write.NumHelperThreads=20#每页显示多少条数据lqjdbc.appender.write.PageSize=15#多少页一组lqjdbc.appender.write.GroupPageSize=5#打印日志lqjdbc.appender.write.SqlLog=true#是否打印查询耗时-版本支持2.1.9以上版本lqjdbc.appender.write.SqlSuccessTime=true
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论