SpringBoot学习-(5)集成jdbcTemplate

前面介绍了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.启动服务测试
(这里字符集没有调,不是本次介绍的关键)
这里写图片描述

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值