Spring——JDBCTemplate介绍

Spring JDBC

Spring对JDBC简单封装。提供了一个JDBCTemplate对象简化JDBC的开发
步骤:
——1.导入jar包。
——2.创建JDBCTemplate对象。依赖于数据源。
————JDBCTemplate template = new JDBCTemplate(DataSource);
——3.调用JDBCTemplate的方法来完成CRUD操作
————update():执行DML语句。增,删,改
————queryForMap():查询结果将结果集封装为map集合
——————注意:queryForMap():这个方法查询结果集的长度只能是1,即只能装一条数据
————queryForList():将结果集封装为list集合
——————注意:将每一条记录封装为一个map集合在将map集合装在到List集合。
————query():查询结果封装为JavaBean对象
——————query的参数:RowMapper
——————一般我们使用 BeanPropertyRowMapper实现类,可以完成数据到JavaBean的自动封装
——————:new BeanPropertyRowMapper<类型>(类型.class)
————queryForObject():查询结果,将结果封装为对象。
——————:一般用于聚合函数的查询

基本的入门程序,来更新一条数据信息:代码如下

package cn.itcast.jdbctemplate;

import cn.itcast.utils.JDBCUtils;
import org.springframework.jdbc.core.JdbcTemplate;

/**
 * JdbcTemplate入门
 */
public class JdbcTemplateDemo1 {
    public static void main(String[] args) {
        //1.导入jar包
        //2.创建JDBCTemplate对象
        JdbcTemplate template = new JdbcTemplate(JDBCUtils.getDataSource());
        //定义sql
        String sql = "update user set username='急先锋' where id=?";
        //3.调用方法(里面传入sql语句和相关的语句参数)
        int count = template.update(sql, 196);
        //返回影响的行数
        System.out.println(count);

    }
}

在这里插入图片描述

练习:
1.修改数据
2.添加一条数据
3.删除数据
4.查询特定条件的数据封装为map集合
5.查询所有数据,将其封装为List集合
6.查询所有数据,将其封装为特定的对象的List集合
7.查询总的记录数

package cn.itcast.jdbctemplate;

import cn.itcast.domain.Student;
import cn.itcast.utils.JDBCUtils;
import org.junit.Test;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;
import java.util.Map;
/**
 *
 */
public class JdbcTemplateDemo2 {
    //Junit单元测试。可以让方法独立执行
    //1.获取JDBCTemplate对象
    private JdbcTemplate template = new JdbcTemplate(JDBCUtils.getDataSource());
    /**
     * 1.修改数据
     */
    @Test
    public void test1(){

        //2.定义sql
        String sql="update student set name=? where id=?";
        //3.执行sql
        int count = template.update(sql, "魏无羡",20);
        System.out.println(count);
    }

    /**
     *2.添加一条数据
     */
    @Test
    public void test2(){
        String sql="insert into student values(null,?,?,?,?,?)";
        int count = template.update(sql,"猪八戒","男",78,"天宫","zhubajie@111");
        System.out.println(count);
    }

    /**
     * 3.删除数据
     */
    @Test
    public void test3(){
        String sql="delete from student where id=?";
        int count = template.update(sql, 21);
        System.out.println(count);
    }

    /**
     * 4.查询特定条件的数据封装为map集合
     * 注意:queryForMap():这个方法查询结果集的长度只能是1
     */
    @Test
    public void test4(){
        String sql="select * from student where id=?";
        Map<String, Object> map = template.queryForMap(sql, 20);
        System.out.println(map);
        //结果:{id=20, name=魏无羡, gender=男, age=23, address=黑龙江, email=kkk.@qq}
    }

    /**
     * 5.查询所有数据,将其封装为List集合
     *
     */
    @Test
    public void test5(){
        String sql="select * from student";
        List<Map<String, Object>> list = template.queryForList(sql);
       for (Map<String,Object> stringObjectMap:list){
           System.out.println(stringObjectMap);
       }
    }
    /**
     * 6.查询所有数据,将其封装为特定的对象的List集合
     *
     */
    @Test
    public void test6(){
        String sql="select * from student";
        List<Student> list = template.query(sql, new RowMapper<Student>() {
            @Override
            public Student mapRow(ResultSet resultSet, int i) throws SQLException {
                Student stu = new Student();
                int id = resultSet.getInt("id");
                String name = resultSet.getString("name");
                String gender = resultSet.getString("gender");
                int age = resultSet.getInt("age");
                String address = resultSet.getString("address");
                String email = resultSet.getString("email");

                stu.setId(id);
                stu.setName(name);
                stu.setGender(gender);
                stu.setAge(age);
                stu.setAddress(address);
                stu.setEmail(email);
                return stu;
            }
        });
            for (Student stu:list){
                System.out.println(stu);
           }
    }
    /**
     * 6_2.查询所有数据,将其封装为特定的对象的List集合
     *简化版本
     */
    @Test
    public void test6_2(){
        String sql="select * from student";
        List<Student> list = template.query(sql, new BeanPropertyRowMapper<Student>(Student.class));
        for (Student stu:list){
            System.out.println(stu);
        }
    }
    /**
     * 7.查询总的记录数
     */
    @Test
    public void test7(){
        String sql="select count(id) from student";
        Long total = template.queryForObject(sql, Long.class);
        System.out.println(total);
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值