Skip to content

beijing-penguin/myjdbc-rainbow

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

入口类DBHelper.java,new出来就能用。

具体测试用例在myjdbc-example项目中,测试sql在sql目录下,导入mysql数据库即可。

②main方式简单使用,确保引入myjdbc源码jar 包,或者引用了pom.xml,或者直接 copy源代码到src下。引入druid,HikariDataSource,或者你习惯使用的任何一种数据源jar包,main方法查询test数据库中的数据集合如下

public class App {
	public static void main( String[] args ) {
		HikariDataSource dataSource = new HikariDataSource();
		dataSource.setJdbcUrl("jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=false");
		dataSource.setUsername("root");
		dataSource.setPassword("123456");

		try{
			DBHelper dbHelper = new DBHelper(dataSource);
			//start 对象操作  操作原理说明,根据实体构造最终完整sql并执行操作,改操方法api最多有3个参数,第一个entity(Object类型) 第二个wheresql(String主要是where条件),第三个sql语句对应的参数(对象,list,map,数组) 
			User user = new User();
			user.setName("张三");
			user.setSex(23);
			ConnectionManager.setTransaction(true);
			//插入一个行数据到数据库,然后赋值给user对象的id属性
			Long id = dbHelper.insertEntityRtnPK(user);
			user.setId(id);
			
			//更新一个对象,注意只能根据主键更新一个对象,只更新有值的字段,没有值的字段不会被更新
			//dbhelper能够自动检查对象User的字段中是否包含主键,如果没有主键,会抛出异常。
			System.out.println(dbHelper.updateEntity(user));
			
			//同理删除对象,也只能根据主键删除,如果主键没有,或者为空,则报错
			System.out.println(dbHelper.deleteEntity(user));
			
			
			
			//纯sql操作,改操方法api最多有3个参数,第一个entity(Object类型) 第二个wheresql(String主要是where条件),第三个sql语句对应的参数(对象,list,map,数组)
			//目前只支持?和#匹配符,如果有朋友建议或需要的可以加上:或者其他通配符
			User u2 = dbHelper.selectOne("select * from user where sex = #{sex} and name=#{name}",User.class, user);
			User u3 = dbHelper.selectOne("select * from user where sex = ? and name=?",User.class, 23,"张三");
			//===>上一步等价于:
			User u4 = dbHelper.selectOne("select * from user where sex = ? and name=?",User.class,new Object[]{23,"张三"});
			//===>上一步等价于:
			List<Object> paramList = new ArrayList<Object>();
			paramList.add(23);
			paramList.add("张三");
			User u5 = dbHelper.selectOne("select * from user where sex = ? and name=?",User.class,paramList);
			
			//返回集合查询,这个传参方式跟使用selectOne一模一样,不过多举例。
			List<User> u6List = dbHelper.selectList("select * from user where sex = ? name=?",User.class,paramList);
			ConnectionManager.commitAll();
		}catch (Exception e) {
			ConnectionManager.rollbackAll();
		}finally {
			ConnectionManager.closeConnectionAll();
		}
	}
}

支持事务,配置请参考另外一份SpringConfig.txt aop配置说明

支持读写分离

myjdbc是一个轻量级orm持久层操作api,只依赖commons-logging日志架包

支持0配置0注解对实体对象的增删改,也支持直接传入sql操作数据库

主要支持MYSQL,兼容其他以jdbc为驱动的数据库

本框架采用低耦合分层软件设计(共2层):第一层DBHelper--第二层DataBaseOperate。每层总共享SqlContext上下文中的数据

支持完整的sql日志打印与日志是否输出动态控制

支持业务上常见的跨库操作+弱事务支持

支持无缝对接当当开源的分库分表sharding-jdbc

About

jpa--轻量级orm模式对象与数据库映射api

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages