[工作日志] 2018-11-30 重要: 1. 多条件+ 分页 + 多表联查 2. idea拉新分支

时间:2021-05-31 16:15:45

多条件+ 分页 + 多表联查

多条件查询

1.pom依赖

<dependency>
<groupId>commons-dbutils</groupId>
<artifactId>commons-dbutils</artifactId>
<version>1.6</version>
</dependency>

2.ServiceImpl获取数据源

@Autowired
DataSource dataSource;

3.QueryRunner的使用

Connection connection = null;
QueryRunner qr = new QueryRunner();
StringBuilder sql =new StringBuilder("select * from contract where 1=1");
//给出parmas
List<Object> parmas = new ArrayList<Object>(); String title = contract.getTitle();
if(title != null && !title.trim().isEmpty()){
sql.append(" and title like ?");
parmas.add("%" + title + "%");
}
//继续添加其他条件
connection = dataSource.getConnection();

return qr.query(connection, sql.toString(), new BeanListHandler<Contract>(Contract.class), parmas.toArray());

//最后别忘了关闭数据库连接

注意:
Contract的所有属性必须和数据库的属性名称保持一致, 但是这样是不符合java规范的. 但是不遵从这个原则, 查询 出来的属性都是null .
解决办法: 动态sql 属性 as 别名(bean的驼峰命名属性)
StringBuilder sql = new StringBuilder("select title, status, doc_num as docNum, doc_type as docType, pages, create_time as createTime, update_time as updateTime from contract where 1=1");

idea拉新分支

右下角+branch即可, 改动, 提交代码, 即创建新分支.

idea改签名

setting --> File and Code Templates