LqJdbc

码农软件 · 软件分类 · ORM/持久层框架 · 2019-09-23 14:12:04

软件介绍

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);//删除
			}
		});
		
		/**
		 * 操作结果集
		 */
		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



 

 

 

 

本文地址:https://codercto.com/soft/d/15229.html

The Haskell School of Expression

The Haskell School of Expression

Paul Hudak / Cambridge University Press / 2000-01 / USD 95.00

Functional programming is a style of programming that emphasizes the use of functions (in contrast to object-oriented programming, which emphasizes the use of objects). It has become popular in recen......一起来看看 《The Haskell School of Expression》 这本书的介绍吧!

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具