进入正题,其他的简单的springboot集成jdbc 配置与简单方法请看 :
https://blog.csdn.net/forezp/article/details/70477821
首先 ,先看看表结构
CREATE TABLE `dept` (
`did` int(11) NOT NULL AUTO_INCREMENT,
`dept_name` varchar(255) NOT NULL,
`dept_sort` int(11) DEFAULT NULL,
PRIMARY KEY (`did`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;
然后我们会在 Dao 层对 dept表模糊查询的实现:
package com.app.dao;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Repository;
import com.app.bean.Dept;
@Repository
public class DeptDaoImpl implements DeptDao{//继承dao接口,实现其方法
@Autowired
private JdbcTemplate template;//spring依赖注入
//假设我们从前端获取的查询条件 , 全部封装到 Map 集合里
public List<Dept> query(Map<String, Object> map) {
//自定义sql语句
String sql = "select * from dept where 0 = 0 ";
//创建集合用来封装 查询条件的 参数
List<Object> list = new ArrayList<>();
if (map!= null) {
if (map.get("qname") != null) {
//将参数加入集合 ,并且添加 对应的 sql 语句
list.add("%"+map.get("qname")+"%");
sql+="and dept_name like ?";
}
//这是第二个查询条件了 请注意sql顺序,如果有order by 或者 limit 请放在后面加入
if (map.get("sort") != null) {
list.add(map.get("sort"));
sql+="and dept_sort = ?";
}
}
//将参数集合转换成数组
Object[] arr = list.toArray();
//调用query()方法,别忘了在后面加上 查询类的class对象
List<Dept> depts = template.query(sql, arr, new BeanPropertyRowMapper(Dept.class));
return depts;
}