前面介绍了springboot集成springdatajpa,本篇介绍springboot集成jdbcTemplate。springboot集成jdbcTemplate很简单,只需要在dao层注入jdbcTemplate即可实现对数据库的操作。
1.引入依赖
pom.xml
如果已经使用了springdatajpa,则不必引入spring-boot-starter-jdbc包
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
2.创建dao及实现
package com.tang.dao;
import java.util.List;
import com.tang.bean.UserInfo;
public interface UserInfoJdbcTemplateDao {
/**
* 查询一个UserInfo
* @param id
* @return
*/
public UserInfo getUserInfoByJdbcTemplate(Integer id);
/**
* 查询所有的UserInfo
* @return
*/
public List<UserInfo> getUserInfosByJdbcTemplate();
}
package com.tang.dao.impl;
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.jdbc.core.RowMapper;
import org.springframework.stereotype.Repository;
import com.tang.bean.UserInfo;
import com.tang.dao.UserInfoJdbcTemplateDao;
@Repository
public class UserInfoJdbcTemplateDaoImpl implements UserInfoJdbcTemplateDao{
@Autowired
private JdbcTemplate jdbcTemplate;
public UserInfo getUserInfoByJdbcTemplate(Integer id) {
//1.定义一个sql语句
String selectSql = "select * from springboot_userinfo where id = ? ";
//2.定义一个RowMapper
RowMapper rowMapper = new BeanPropertyRowMapper(UserInfo.class);
//3.执行查询方法
UserInfo userInfo = jdbcTemplate.queryForObject(selectSql, new Object[]{id}, rowMapper);
return userInfo;
}
public List<UserInfo> getUserInfosByJdbcTemplate() {
String selectSql = "select * from springboot_userinfo";
List queryForList = jdbcTemplate.queryForList(selectSql);
//也可以直接返queryForList
List<UserInfo> userInfos = mapToObject(queryForList);
return userInfos;
}
private List<UserInfo> mapToObject(List<Map<String,Object>> userInfos){
List<UserInfo> users=new ArrayList<UserInfo>();
Map<String,Object> map=null;
if(userInfos.size()>0){
for(int i=0;i<userInfos.size();i++){
map = userInfos.get(i);
UserInfo user=new UserInfo();
if(null!= map.get("id")){
user.setId(Integer.valueOf(map.get("id").toString()));
}
if(null!=map.get("user_name")){
user.setUserName(map.get("user_name").toString());
}
if(null!=map.get("login_name")){
user.setLoginName(map.get("login_name").toString());
}
users.add(user);
}
}
return users;
}
}
3.创建service及实现
package com.tang.service;
import java.util.List;
import com.tang.bean.UserInfo;
public interface UserInfoJdbcTemplateService {
public UserInfo getUserInfoByJdbcTemplate(Integer id);
public List<UserInfo> getUserInfosByJdbcTemplate();
}
package com.tang.service.impl;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.tang.bean.UserInfo;
import com.tang.dao.UserInfoJdbcTemplateDao;
import com.tang.service.UserInfoJdbcTemplateService;
@Service
public class UserInfoJdbcTemplateServiceImpl implements UserInfoJdbcTemplateService{
@Autowired
private UserInfoJdbcTemplateDao userInfoJdbcTemplateDao;
public UserInfo getUserInfoByJdbcTemplate(Integer id) {
return userInfoJdbcTemplateDao.getUserInfoByJdbcTemplate(id);
}
public List<UserInfo> getUserInfosByJdbcTemplate() {
return userInfoJdbcTemplateDao.getUserInfosByJdbcTemplate();
}
}
4.创建controller
package com.tang.controller;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.tang.bean.UserInfo;
import com.tang.service.UserInfoJdbcTemplateService;
@RestController
public class UserInfoJdbcTemplateController {
@Autowired
private UserInfoJdbcTemplateService userInfoJdbcTemplateService;
@RequestMapping(value="/getUserInfoByjt/{uid}")
public UserInfo getUserInfoByJdbcTemplate(@PathVariable("uid") Integer id){
return userInfoJdbcTemplateService.getUserInfoByJdbcTemplate(id);
}
@RequestMapping(value="/getUserInfosByjt")
public List<UserInfo> getUserInfosByJdbcTemplate(){
return userInfoJdbcTemplateService.getUserInfosByJdbcTemplate();
}
}
5.启动服务测试
(这里字符集没有调,不是本次介绍的关键)