LqJdbc轻量级数据库
LqJdbc 可以很轻松地操作数据库,使用了 C3P0 链接池,实现了hibernate的一些简单功能如 save,update,delete,find,create entity,也实现了spring jdbcTemplante的一些简单功能,如queryForList,execute,最新的3.0版,还实现了多数据源操作,可以进行读写分离。
LqJdbc 的好处就在于任何JAVA项目,直接导入 JAR,配制 lqjdbc.properties 即可使用,是轻量级开源项目。
网页底部为项目下载地址
实例:
import java.io.InputStream;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;
import com.lq.util.jdbc.DatabasesJdbc;
import com.lq.util.jdbc.DatabasesInterfaceT;
import com.lq.util.jdbc.Jdbc;
import com.lq.util.jdbc.LqEntitySql;
import com.lq.util.jdbc.LqJdbcFactory;
import com.lq.util.jdbc.LqResultSet;
import com.lq.util.jdbc.LqShiWu;
import com.lq.util.jdbc.Page;
public class Test {
public static void main(String[] args) {
}
public void pageSelectTest(){
//SQL SERVER 2005 分页查询用法
String sql="SELECT ROW_NUMBER() OVER (ORDER BY id) AS RowNumber,* from payinfo";
String sqlCount="select count(*) from payinfo";
//其它数据库SQL分页
sql="SELECT * from payinfo";
sqlCount="select count(*) from payinfo";
Page page=Jdbc.findPage(sql, 1, 3, sqlCount, new Object[]{});
System.out.println(page.getData().size());
}
public void shuoM(){
/**
* 生成实体类
*/
Jdbc.createEntity("com.entity","t_user","id");
/**
* 生成插入修改SQL语句
*/
Jdbc.createSQL("t_user","id");
//-------------------------下面为SQL语句操作----------------------------------------
/**
* 查询
*/
Jdbc.find("select * from t_user where id=?", new Object[]{"1"});
/**
* 分页查询
*/
Page page=Jdbc.findPage("select * from t_user where id=?", 1, 15, "select count(id) from t_user where id=?", new Object[]{"1"});
/**
* 插入
*/
Jdbc.execute("insert into test (name)values(?)", new Object[]{"吃人的肉"});
/**
* 修改
*/
Jdbc.execute("update test set name=? where id=?", new Object[]{"吃人的肉1","1"});
/**
* 删除
*/
Jdbc.execute("delete from test where id=?",new Object[]{"1"});
//------------------------下面为实体类操作------------------------------------------
final Test test=new Test();
Jdbc.save(test);//插入
Jdbc.update(test);//修改
Jdbc.delete(test);//删除
List list=Jdbc.find("select * from t_user", Test.class, new Object[]{});//查询返回实体类
//------------------------下面为事务操作------------------------------------------
/**
* 事务处理
*/
Jdbc.shiwu(new LqShiWu() {
@Override
public void shiwu(LqJdbcFactory jdbc) {
if (1!=1) {//验证判断
jdbc.shiB=9;//如果验证通过返回自定义的状态码
return;
}
jdbc.find("select * from t_user where id=?", new Object[]{"1"});
jdbc.execute("insert into test (name)values(?)", new Object[]{"吃人的肉"});
jdbc.execute("update test set name=? where id=?", new Object[]{"吃人的肉1","1"});
jdbc.execute("delete from test where id=?",new Object[]{"1"});
Jdbc.save(test);//插入
Jdbc.update(test);//修改
Jdbc.delete(test);//删除
}
});
/**
* 图片的存储<文件>
*/
File img = new File("pic.jpeg");
int c = Jdbc.execute("update image set pic=?",new Object[]{img});
img.delete();
/**
* 图片的存储<流>
*/
FileInputStream in = null;
try {
in =new FileInputStream(new File("pic.jpeg"));
int c2 = Jdbc.execute("update image set pic=?",new Object[]{in});
} catch (FileNotFoundException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} finally {
try {
in.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* 图片的读取
*/
List<ListOrderedMap> listImg = Jdbc.getDS("pg").find("select area_img from company_area limit 1 ");
InputStream inImg = (InputStream) listImg.get(0).get("area_img");
/**
* 操作结果集
*/
Jdbc.operationResultSet(new LqResultSet() {
@Override
public void getResultSet(LqJdbcFactory jdbc) {
ResultSet rs = jdbc.findResultSet("select photo from t_user where id=?",new Object[]{"5"});
try {
while (rs.next()) {
InputStream in=rs.getBinaryStream("photo");
}
} catch (SQLException e) {
e.printStackTrace();
}
}
});
/**
* 多种数据库操作
*/
final StringBuffer sb=new StringBuffer();
final List listCs2=new ArrayList();
Jdbc.sql(new DatabasesInterface() {
public String oracle() {
sb.append("select * from admin where id=?");
listCs2.add("1");
return null;
}
public String mysql() {
sb.append("select * from admin where id=?");
listCs2.add("1");
return null;
}
public String sqlserver() {
sb.append("select * from admin where id=?");
listCs2.add("1");
return null;
}
});
List list2=Jdbc.find(sb.toString(),listCs2.toArray());
System.out.println(list2);
/**
* 批量执行
*/
final String sql="insert into test (name)values(?)";
Jdbc.piliang(sql,new LqPiLiang() {
public void piliang(LqJdbcFactory jdbc) {
for (int i = 0; i < 100; i++) {
jdbc.executeS(new Object[]{i+""});
}
}
});
/**
* 多数据源操作
*/
Map map=Jdbc.getDSNames();//得到除默认数据源外的所有数据源名称
List listDdb=Jdbc.find("select * from test");//读取默认数据源
List listDrdb=Jdbc.getDS(readDB).find("select * from test");//读取第二个数据源
List listDwdb=Jdbc.getDS(writeDB).find("select * from test");//读取第三个数据源
}
}
下面为配制文件 lqjdbc.properties
#MYSQL_DRIVER DriverClassName=com.mysql.jdbc.Driver #MYSQL_URL AllUrl=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_URL lqjdbc.appender.query.AllUrl=jdbc:mysql://127.0.0.1/db2?useOldAliasMetadataBehavior=true&useUnicode=true&characterEncoding=utf-8&rewriteBatchedStatements=true***root***123456 #MYSQL_DRIVER lqjdbc.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_URL lqjdbc.appender.write.AllUrl=jdbc:mysql://127.0.0.1/db3?useOldAliasMetadataBehavior=true&useUnicode=true&characterEncoding=utf-8&rewriteBatchedStatements=true***root***123456 #MYSQL_DRIVER lqjdbc.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
评论
