多条件+ 分页 + 多表联查
多条件查询
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