LqJdbc可以很轻松地操作数据库,使用了C3P0链接池,实现了hiberate的一些简单功能如save,update,delete,fid,createetity,也实现了sprigjdbcTemplate的一些简单功能,如queryForList,execute,最新的3.0版,还实现了多数据源操作,可以进行读写分离。
LqJdbc的好处就在于任何JAVA项目,直接导入JAR,配制lqjdbc.properties即可使用,是轻量级开源项目。
网页底部为项目下载地址
实例:
importjava.io.IputStream;importjava.sql.ResultSet;importjava.sql.SQLExceptio;importjava.util.List;importcom.lq.util.jdbc.DatabasesJdbc;importcom.lq.util.jdbc.DatabasesIterfaceT;importcom.lq.util.jdbc.Jdbc;importcom.lq.util.jdbc.LqEtitySql;importcom.lq.util.jdbc.LqJdbcFactory;importcom.lq.util.jdbc.LqResultSet;importcom.lq.util.jdbc.LqShiWu;importcom.lq.util.jdbc.Page;publicclassTest{publicstaticvoidmai(Strig[]args){}publicvoidpageSelectTest(){//SQLSERVER2005分页查询用法Strigsql="SELECTROW_NUMBER()OVER(ORDERBYid)ASRowNumber,*frompayifo";StrigsqlCout="selectcout(*)frompayifo";//其它数据库SQL分页sql="SELECT*frompayifo";sqlCout="selectcout(*)frompayifo";Pagepage=Jdbc.fidPage(sql,1,3,sqlCout,ewObject[]{});System.out.pritl(page.getData().size());}publicvoidshuoM(){/***生成实体类*/Jdbc.createEtity("com.etity","t_user","id");/***生成插入修改SQL语句*/Jdbc.createSQL("t_user","id");//-------------------------下面为SQL语句操作----------------------------------------/***查询*/Jdbc.fid("select*fromt_userwhereid=?",ewObject[]{"1"});/***分页查询*/Pagepage=Jdbc.fidPage("select*fromt_userwhereid=?",1,15,"selectcout(id)fromt_userwhereid=?",ewObject[]{"1"});/***插入*/Jdbc.execute("isertitotest(ame)values(?)",ewObject[]{"吃人的肉"});/***修改*/Jdbc.execute("updatetestsetame=?whereid=?",ewObject[]{"吃人的肉1","1"});/***删除*/Jdbc.execute("deletefromtestwhereid=?",ewObject[]{"1"});//------------------------下面为实体类操作------------------------------------------fialTesttest=ewTest();Jdbc.save(test);//插入Jdbc.update(test);//修改Jdbc.delete(test);//删除Listlist=Jdbc.fid("select*fromt_user",Test.class,ewObject[]{});//查询返回实体类//------------------------下面为事务操作------------------------------------------/***事务处理*/Jdbc.shiwu(ewLqShiWu(){@Overridepublicvoidshiwu(LqJdbcFactoryjdbc){if(1!=1){//验证判断jdbc.shiB=9;//如果验证通过返回自定义的状态码retur;}jdbc.fid("select*fromt_userwhereid=?",ewObject[]{"1"});jdbc.execute("isertitotest(ame)values(?)",ewObject[]{"吃人的肉"});jdbc.execute("updatetestsetame=?whereid=?",ewObject[]{"吃人的肉1","1"});jdbc.execute("deletefromtestwhereid=?",ewObject[]{"1"});Jdbc.save(test);//插入Jdbc.update(test);//修改Jdbc.delete(test);//删除}});/** *图片的存储<文件> */ Fileimg=ewFile("pic.jpeg"); itc=Jdbc.execute("updateimagesetpic=?",ewObject[]{img}); img.delete(); /** *图片的存储<流> */ FileIputStreami=ull; try{ i=ewFileIputStream(ewFile("pic.jpeg")); itc2=Jdbc.execute("updateimagesetpic=?",ewObject[]{i}); }catch(FileNotFoudExceptioe1){ //TODOAuto-geeratedcatchblock e1.pritStackTrace(); }fially{ try{ i.close(); }catch(IOExceptioe){ //TODOAuto-geeratedcatchblock e.pritStackTrace(); } } /** *图片的读取 */ List<ListOrderedMap>listImg=Jdbc.getDS("pg").fid("selectarea_imgfromcompay_arealimit1"); IputStreamiImg=(IputStream)listImg.get(0).get("area_img");/***操作结果集*/Jdbc.operatioResultSet(ewLqResultSet(){@OverridepublicvoidgetResultSet(LqJdbcFactoryjdbc){ResultSetrs=jdbc.fidResultSet("selectphotofromt_userwhereid=?",ewObject[]{"5"});try{while(rs.ext()){IputStreami=rs.getBiaryStream("photo");}}catch(SQLExceptioe){e.pritStackTrace();}}}); /** *多种数据库操作 */ fialStrigBuffersb=ewStrigBuffer(); fialListlistCs2=ewArrayList(); Jdbc.sql(ewDatabasesIterface(){ publicStrigoracle(){ sb.apped("select*fromadmiwhereid=?"); listCs2.add("1"); returull; } publicStrigmysql(){ sb.apped("select*fromadmiwhereid=?"); listCs2.add("1"); returull; } publicStrigsqlserver(){ sb.apped("select*fromadmiwhereid=?"); listCs2.add("1"); returull; } }); Listlist2=Jdbc.fid(sb.toStrig(),listCs2.toArray());System.out.pritl(list2);/** *批量执行 */ fialStrigsql="isertitotest(ame)values(?)"; Jdbc.piliag(sql,ewLqPiLiag(){ publicvoidpiliag(LqJdbcFactoryjdbc){ for(iti=0;i<100;i++){ jdbc.executeS(ewObject[]{i+""}); } } }); /** *多数据源操作 */ Mapmap=Jdbc.getDSNames();//得到除默认数据源外的所有数据源名称 ListlistDdb=Jdbc.fid("select*fromtest");//读取默认数据源 ListlistDrdb=Jdbc.getDS(readDB).fid("select*fromtest");//读取第二个数据源 ListlistDwdb=Jdbc.getDS(writeDB).fid("select*fromtest");//读取第三个数据源}}下面为配制文件lqjdbc.properties
#MYSQL_DRIVERDriverClassName=com.mysql.jdbc.Driver#MYSQL_URLAllUrl=jdbc:mysql://127.0.0.1/db4?useOldAliasMetadataBehavior=true&useUicode=true&characterEcodig=utf-8&rewriteBatchedStatemets=true***root***123456#初始化链接数IitialPoolSize=50#最小链接数MiPoolSize=20#最大链接数MaxPoolSize=100#执行线程数-版本支持2.3以上版本NumHelperThreads=20#每页显示多少条数据PageSize=15#多少页一组GroupPageSize=5#打印日志SqlLog=true#是否打印查询耗时-版本支持2.1.9以上版本SqlSuccessTime=true#^^^^^^^^^^^^^^^^^^^^^^^读^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^#MYSQL_URLlqjdbc.appeder.query.AllUrl=jdbc:mysql://127.0.0.1/db2?useOldAliasMetadataBehavior=true&useUicode=true&characterEcodig=utf-8&rewriteBatchedStatemets=true***root***123456#MYSQL_DRIVERlqjdbc.appeder.query.DriverClassName=com.mysql.jdbc.Driver#初始化链接数lqjdbc.appeder.query.IitialPoolSize=50#最小链接数lqjdbc.appeder.query.MiPoolSize=20#最大链接数lqjdbc.appeder.query.MaxPoolSize=100#执行线程数-版本支持2.3以上版本lqjdbc.appeder.query.NumHelperThreads=20#每页显示多少条数据lqjdbc.appeder.query.PageSize=15#多少页一组lqjdbc.appeder.query.GroupPageSize=5#打印日志lqjdbc.appeder.query.SqlLog=true#是否打印查询耗时-版本支持2.1.9以上版本lqjdbc.appeder.query.SqlSuccessTime=true#^^^^^^^^^^^^^^^^^^^^^^^写^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^#MYSQL_URLlqjdbc.appeder.write.AllUrl=jdbc:mysql://127.0.0.1/db3?useOldAliasMetadataBehavior=true&useUicode=true&characterEcodig=utf-8&rewriteBatchedStatemets=true***root***123456#MYSQL_DRIVERlqjdbc.appeder.write.DriverClassName=com.mysql.jdbc.Driver#初始化链接数lqjdbc.appeder.write.IitialPoolSize=50#最小链接数lqjdbc.appeder.write.MiPoolSize=20#最大链接数lqjdbc.appeder.write.MaxPoolSize=100#执行线程数-版本支持2.3以上版本lqjdbc.appeder.write.NumHelperThreads=20#每页显示多少条数据lqjdbc.appeder.write.PageSize=15#多少页一组lqjdbc.appeder.write.GroupPageSize=5#打印日志lqjdbc.appeder.write.SqlLog=true#是否打印查询耗时-版本支持2.1.9以上版本lqjdbc.appeder.write.SqlSuccessTime=true









评论