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
评论