11 Star 26 Fork 9

無色眼镜 / dawdler-series

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
README.md 2.95 KB
一键复制 编辑 原始数据 按行查看 历史
jackson.song 提交于 2023-02-15 10:55 . update doc

dawdler-server-plug-dao

模块介绍

通过反射实现的一套简易操作数据库的一套组件.支持基本的增删改查,读写分离.

1. pom中引入依赖

<groupId>dawdler</groupId>
<artifactId>dawdler-server-plug-dao</artifactId>

2. SupperDAO常用api

query系列为查询

insert系列为插入

update系列为修改

delete系列为删除

Object ... values 可变参数是有序的对应sql中预处理的?号.

Class<T> c 传入的参数为数据库实体对象entity.

insertMap 第一个参数为表名,第二个参数Map的key为表字段,value为值.

insertPrepareGetKey与insertMapGetKey 方法会返回插入信息生成的主键,主键类型必须为整型.

 <T extends Object> List<T> queryList(String sql, Class<T> c) throws SQLException;

 <T extends Object> List<T> queryListPrepare(String sql, Class<T> c, Object... values) throws SQLException;

 <T extends Object> T queryObject(String sql, Class<T> c) throws SQLException;

 <T extends Object> T queryObjectPrepare(String sql, Class<T> c, Object... values) throws SQLException;

 List<Map<String, Object>> queryListMaps(String sql) throws SQLException;

 List<Map<String, Object>> queryListMapsPrepare(String sql, Object... values) throws SQLException;

 int update(String sql) throws SQLException;

 int updatePrepare(String sql, Object... values) throws SQLException;

 int insert(String sql) throws SQLException;

 int insertPrepare(String sql, Object... values) throws SQLException;

 long insertPrepareGetKey(String sql, Object... values) throws SQLException;

 int insertMap(String tableName, Map<String, Object> data) throws SQLException;

 long insertMapGetKey(String tableName, Map<String, Object> data) throws SQLException;

 int delete(String sql) throws SQLException;

 int deletePrepare(String sql, Object... values) throws SQLException;

 int queryCount(String sql) throws SQLException;

 int queryCountPrepare(String sql, Object... values) throws SQLException;

3. 注入DAO

编写自定义的DAO继承SupperDAO即可,如UserDAO。

在service层通过@Repository注入dao,即可使用注入的dao.

示例:

public class UserDAO extends SuperDAO{

 public int insertUser(User user) throws SQLException{
  return insertPrepare("insert into t_user(username,`password`,age)", user.getUsername(), user.getPassword(), user.getAge());
 }

}
public class UserServiceImpl implements UserService{

 @Repository
 UserDAO userDAO;
 
 @Override
 @DBTransaction
 public boolean addUser(User user) {
  return userDAO.insertUser(user) > 0;
 }

4. 获取读连接与写连接

需要用到Connection时可以通过SupperDAO中的getReadConnection来获取读连接,getWriteConnection来获取写连接.

底层是通过LocalConnectionFactory.getReadConnection()与LocalConnectionFactory.getWriteConnection()实现.

关于配置读写分离可参考dawdler-server-plug-db数据源规则配置.

Java
1
https://gitee.com/srchen1987/dawdler-series.git
git@gitee.com:srchen1987/dawdler-series.git
srchen1987
dawdler-series
dawdler-series
master

搜索帮助