Skip to content

dingey/jdbc-mapper

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

94 Commits
 
 
 
 
 
 
 
 

Repository files navigation

jdbc-mapper

基于jdbc的封装,支持数据源,配置简单,支持注解sql查询,自带分页查询。已停止维护,推荐使用mybatis及其扩展 https://github.com/dingey/mybatis-mapper

快速开始

引入依赖

<dependency>
<groupId>com.github.dingey</groupId>
<artifactId>jdbc-mapper</artifactId>
<version>3.0</version>
</dependency>

配置bean

DataSource dataSource=DefaultDataSource.build("jdbc:mysql://localhost:3306/sys", "root", "root");
JdbcFactory factory = JdbcFactory.build(dataSource);
JdbcMapper mapper = factory.getMapper();

或者

DataSource dataSource=DefaultDataSource.build("jdbc:mysql://localhost:3306/sys", "root", "root");
JdbcMapper mapper = JdbcMapper.build(dataSource);

方法介绍

执行sql语句,返回成功或失败;

boolean execute(String sql)

执行预编译sql语句,返回成功或失败;

boolean execute(String preSql, Object...args)

执行sql语句,返回一条或一列,具体取决于resultClass类型;

T get(String sql, Class<T> resultClass)

执行预编译sql语句,返回一条或一列,具体取决于resultClass类型;

T get(String sql, Class<T> resultClass)

执行sql语句,结果映射为Map,第一列为key,第二列value;

Map<Object,Object> listToMap(String sql);

执行预编译的sql语句,结果映射为Map,第一列为key,第二列value;

Map<Object, Object> listToMap(String sql, Object... args);

执行sql语句,返回list对象;

List<T> list(String sql, Class<T> resultClass)

执行预编译的sql语句,返回list对象,

List<T> list(String preSql,Class<T> resultClass, Object...args)

插入一条记录,如果需要返回自增主键在主键属性上加@GeneratedValue注解。

void insert(T o)

可选择插入一条记录,忽略null的属性。

void insertSelective(T o)

更新一条记录;

int update(T t)

可选择更新一条记录,忽略null的属性。

int updateSelective(T t)

分页查询

执行分页查询,只支持mysql,oracle。

分页对象

Pager{
	List<T> list;
	int pageNum;
	int pageSize;
	long total;
}

执行sql分页查询

Pager<T> page(String sql, int pageNum, int pageSize, Class<T> resultClass)

执行预编译sql分页查询

Pager<T> page(String preSql, int pageNum, int pageSize, Class<T> resultClass, Object...args)

执行NamedQuery分页查询

Pager<T> pageByNamedQuery(String namedQueryName,Class<T> resultClass,Object... args)

命名查询

执行本地命名查询

@NamedNativeQueries(value = { @NamedNativeQuery(name = "selectAll", query = "select * from person"),
		@NamedNativeQuery(name = "selectOne", query = "select * from person where id<?") })
public class Person {}

可以将sql语句写在类上,方便统一管理。

执行命名语句

boolean executeByNamedQuery(String namedQueryName, Class<T> namedClass, Object... args);

执行命名查询语句

T getByNamedQuery(String namedQueryName, Class<T> namedClass, Object... args);

执行命名语句查询,返回list对象

List<T> listByNamedQuery(String namedQueryName, Class<T> namedClass, Object... args);	

事务

DataSource dataSource=DefaultDataSource.build("jdbc:mysql://localhost:3306/sys", "root", "root");
JdbcFactory factory = JdbcFactory.build(dataSource);
JdbcMapper mapper = factory.getMapper();
try {
	Man m=new Man();
	m.setId(1);
	m.setName("b");
	mapper.begin();
	mapper.insert(m);
	m.setName("a");
	mapper.update(m);
	mapper.commit();
} catch (Exception e) {
	e.printStackTrace();
	mapper.rollback();
}

About

基于jdbc的封装,轻量级映射,自带连接池,无第三方依赖。支持多数据源,配置简单,支持注解sql查询,自带分页查询。

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages