pndao
Java
Java
共28个文件
java: 14
xml: 5
ensime: 3
sql: 2
gitignore: 1
LICENSE: 1
md: 1
Processor: 1
一个非常简单的MyBatis辅助工具,可以基于DAO的命名约定帮你生成并维护SQL语句
pndao
一个非常简单的MyBatis辅助工具,可以基于DAO的命名约定帮你生成并维护SQL语句
pndao是票牛Java团队实践一年演化出来的工具。在实际生产中减少了80%以上的重复SQL编写工作,从而把关注力转移到模型本身的制定上。结合建表语句生成插件pngen,大部分场景只需编写一个模型类即可完成DAO层工作。
特性
支持最主流的MyBatis框架,无学习成本
基于常见DAO功能定制,提供便捷的同时也可约束命名规范
修改表结构后可同步修改SQL
编译期生成XML,也可便捷支持其他框架
以下是一个常见的DAO功能:
public class UserDaoTest extends AbstractTest{
public static final int USER_ID = 1;
@Autowired
private UserDao userDao;
@Test
public void testInsertUser() throws Exception {
User user = initUser();
assertThat(userDao.insert(user)).isEqualTo(1);
}
@Test
public void testFindUserById() throws Exception {
User user = userDao.findById(USER_ID);
assertThat(user).isNotNull();
}
@Test
public void testUpdateUserName() throws Exception {
assertThat(userDao.updateForUserName("用户13700000001",USER_ID)).isEqualTo(1);
}
}
基于pndao,所有需要开发的DAO只有这些:
@DaoGen
public interface UserDao {
int updateForUserName(@Param("userName") String userName, @Param("id") int id);
int insert(User t);
User findById(int id);
}
使用
1. 引入pndao依赖
<artifactId>pndao</artifactId>
<groupId>com.piaoniu</groupId>
<version>0.2.0</version>
2. 如果你正在使用MyBatis,那么只需在Dao上增加@DaoGen注释即可。
3. pndao会优先使用你自己定义的SQL(包括注解和XML),所以不用担心原有的Dao不能用了。
4. 在新编写方法时,按照pndao的方法命名规范即可享受代码生成。
5. 目前只支持Java 8
使用前建议先阅读pndao-example中的样例代码。
支持的方法:
方法
说明
样例
备注
insert
插入记录
insert(User user)
ID会回写入user的主键
batchInsert
批量插入记录
batchInsert(List user)
返回插入记录数
findBy
按某列查询单个元素
findByUserName(String userName)
返回单条记录
queryBy
按某列查询一些元素
queryByUserName(String userName)
返回多条记录
countBy
按某列查询总数
countBy(String userName)
返回总数
update
按照主键其他所有列
update(User user)
返回更新记录数
updateFor
按照主键更新一列
updateForUserName(String userName,int id)
返回更新记录数
定制
如果你的团队命名规范与pndao不同
可以下载源码,修改DaoGen的prefix的default值并重新编译。
可以通过指定编译期的 processor options : -AtablePrefix=PN_ 的方式修改默认表名前缀, 示例如下:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<compilerArgument>-AtablePrefix=PNTS_</compilerArgument>
</configuration>
</plugin>
pndao基于jsr269的注解编译生成,与lombok的原理是类似的,所以理论上可以为任意框架的生成配置型的代码。
反馈
项目目前仍在beta阶段,对于不同版本覆盖不全,欢迎建议、使用和提交代码。
票牛技术团队博客地址:https://piaoniu.io/。
https://gitee.com/piaoniu/pndao
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
项目名称:基于Java的Pndao框架 项目简介: Pndao是一个轻量级的MyBatis SQL自动化生成工具,旨在通过遵循DAO的命名约定来简化SQL语句的生成与维护过程。该项目完全采用Java语言开发,为开发者提供了一个高效的数据库操作解决方案。 技术构成: - 主要编程语言:Java - 文件构成:共28个文件,包括: - Java源文件:14个,涵盖了框架的核心功能实现。 - XML配置文件:5个,用于配置MyBatis映射和数据库连接。 - Ensime配置文件:3个,提供Scala IDE支持。 - SQL脚本:2个,包含示例SQL语句。 - .gitignore文件:1个,用于Git版本控制忽略配置。 - LICENSE文件:1个,项目许可协议。 - README.md文件:1个,项目说明文档。 - Processor文件:1个,用于处理DAO层代码的SQL生成。 功能特点: Pndao框架能够基于开发者设定的命名约定,自动化地生成对应的SQL语句,大幅提升开发效率,减少重复劳动,同时有助于保持代码的整洁与一致性。
资源推荐
资源详情
资源评论
收起资源包目录
upload.zip (28个子文件)
pndao
pom.xml 2KB
src
main
resources
log4j.xml 553B
META-INF
services
javax.annotation.processing.Processor 40B
java
com
piaoniu
pndao
utils
PrintUtils.java 161B
DaoGenHelper.java 24KB
ResourceHelper.java 1KB
plugin
DaoGenProcessor.java 4KB
generator
dao
DaoEnv.java 2KB
MapperMethod.java 2KB
annotations
DaoGen.java 1010B
.ensime 8KB
pom.xml 4KB
LICENSE 10KB
.ensime 13KB
pndao-example
pom.xml 3KB
src
test
java
com
piaoniu
user
dao
UserDaoTest.java 1KB
test
AbstractTest.java 468B
main
resources
log4j.xml 553B
db
sql
insert-data.sql 244B
create-db.sql 282B
java
com
piaoniu
user
dao
UserDao.java 589B
entity
User.java 334B
common
Entity.java 398B
EntityDao.java 513B
config
MyBatisConfig.java 2KB
.ensime 6KB
.gitignore 138B
readme.txt 4KB
共 28 条
- 1
资源评论
沐知全栈开发
- 粉丝: 4739
- 资源: 3374
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功