标签:String List jdbcTemplate sqlA 引入 query class springboot
1、pom
<!-- jdbcTemplate -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
2、数据库配置
spring
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/demo_test?serverTimezone=UTC&useSSL=false&allowPublicKeyRetrieval=true&useUnicode=true&characterEncoding=UTF8
password: root
username: root
3、使用
@Autowired
private JdbcTemplate jdbcTemplate;
public List<Parent> testJdbcTemplate(Integer id) {
// 不用参数,返回list实体类
String sql = " select * from parent ";
List<Parent> query = jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(Parent.class));
// 有两个参数 (方法1)
String sqlA = "select * from parent where relation = ? and child = ? ";
Object[] params = {"父","1"};
List<Parent> listA = jdbcTemplate.query(sqlA,params, new BeanPropertyRowMapper<>(Parent.class));
// 有两个参数 (方法2)
List<Parent> listB = jdbcTemplate.query(sqlA,new BeanPropertyRowMapper<>(Parent.class),"父","1");
// 有两个参数 (方法3)
ArrayList<String> paramList = new ArrayList<>();
paramList.add("父");
paramList.add("1");
Object[] args = paramList.toArray(); // list转数组
List<Parent> listC = jdbcTemplate.query(sqlA, args,new BeanPropertyRowMapper<>(Parent.class));
// 返回map
List<Map<String, Object>> list = jdbcTemplate.queryForList(sqlA, params);
// 返回一个值
String sqlC = " select count(*) abc from (select * from parent where relation = ? and child =?) c ";
Integer integer = jdbcTemplate.queryForObject(sqlC, params, Integer.class);
// 返回list<Map>, 只用到其中一个字段
String sqlD = "select id,name from parent where relation = ? ";
List<Map<String, Object>> list1 = jdbcTemplate.queryForList(sqlD,"父");
// 先过滤空,再提取字段name,转换成String
List<String> name1 = list1.stream().filter(o -> !ObjectUtils.isEmpty(o.get("name")))
.map(o -> (String)o.get("name")).collect(Collectors.toList());
return null;
}
标签:String,List,jdbcTemplate,sqlA,引入,query,class,springboot 来源: https://www.cnblogs.com/txt1024/p/15808169.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。