spring第三天之jdbcTemplate的crud操作

spring之jdbcTemplate的crud操作

1.导入jar包
spring第三天之jdbcTemplate的crud操作
2.1创建类,完成增删改操作

package cn.itcast.jdbcTemplate;

import org.junit.Test;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.datasource.DriverManagerDataSource;

public class JdbcTemplateDemo1 {
 

    //1.添加操作
    @Test
    public void add(){
        //设置数据库信息
        DriverManagerDataSource dataSource = new DriverManagerDataSource();
        dataSource.setDriverClassName("com.mysql.jdbc.Driver");
        dataSource.setUrl("jdbc:mysql://localhost:3306/spring_day03?characterEncoding=utf8");
        dataSource.setUsername("root");
        dataSource.setPassword("123");

        //创建jdbcTemplate对象,设置数据源
        JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);

        //调用jdbcTemplate对象里面的update方法实现添加
        String sql = "insert into user values(?,?)";
        int rows = jdbcTemplate.update(sql,"lucy","250");
        System.out.println(rows);

    }

    //2.修改操作
    @Test
    public void update(){
        //设置数据库信息
        DriverManagerDataSource dataSource = new DriverManagerDataSource();
        dataSource.setDriverClassName("com.mysql.jdbc.Driver");
        dataSource.setUrl("jdbc:mysql://localhost:3306/spring_day03?characterEncoding=utf8");
        dataSource.setUsername("root");
        dataSource.setPassword("123");

        //创建jdbcTemplate对象
        JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);

        //调用jdbcTemplate里面的update方法实现修改
        String sql = "update user set password=? where username=?";
        int rows = jdbcTemplate.update(sql,"555","lucy");
        System.out.println(rows);
    }

    //3.删除操作
    @Test
    public void delete(){
        //设置数据库信息
        DriverManagerDataSource dataSource = new DriverManagerDataSource();
        dataSource.setDriverClassName("com.mysql.jdbc.Driver");
        dataSource.setUrl("jdbc:mysql://localhost:3306/spring_day03?characterEncoding=utf8");
        dataSource.setUsername("root");
        dataSource.setPassword("123");

        //创建jdbcTemplate对象
        JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);

        //调用jdbcTemplate里面的update方法实现删除
        String sql = "delete from user where username=?";
        int rows = jdbcTemplate.update(sql,"lucy");
        System.out.println(rows);
    }

}

2.2创建类完成查询操作

package cn.itcast.jdbcTemplate;

import org.junit.Test;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.jdbc.datasource.DriverManagerDataSource;

import java.sql.*;
import java.util.List;

public class jdbcTemplateDemo2 {

   
    //1.查询有多少条记录
    @Test
    public void testConut() {
        //设置数据库信息
        DriverManagerDataSource dataSource = new DriverManagerDataSource();
        dataSource.setDriverClassName("com.mysql.jdbc.Driver");
        dataSource.setUrl("jdbc:mysql://localhost:3306/spring_day03?characterEncoding=utf8");
        dataSource.setUsername("root");
        dataSource.setPassword("123");

        //创建jdbcTemplate对象
        JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);

        //调用方法得到记录数
        String sql = "select count(*) from user";
        //调用jdbcTemplate的方法实现
        int count = jdbcTemplate.queryForObject(sql, Integer.class);
        System.out.println(count);
    }

    //2.查询返回对象
    @Test
    public void testObject() {
        //设置数据库信息
        DriverManagerDataSource dataSource = new DriverManagerDataSource();
        dataSource.setDriverClassName("com.mysql.jdbc.Driver");
        dataSource.setUrl("jdbc:mysql://localhost:3306/spring_day03?characterEncoding=utf8");
        dataSource.setUsername("root");
        dataSource.setPassword("123");

        //创建jdbcTemplate对象
        JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);

        //写sql语句,根据username查询
        String sql = "select * from user where username=?";
        //调用jdbcTemplate的方法实现
        //第二个参数是接口RowMapper,需要自己写类实现接口,自己做数据封装
        User user = jdbcTemplate.queryForObject(sql, new MyRowMapper(), "lucy");
        System.out.println(user);
    }

    //3.查询返回集合
    @Test
    public void testList() {
        //设置数据库信息
        DriverManagerDataSource dataSource = new DriverManagerDataSource();
        dataSource.setDriverClassName("com.mysql.jdbc.Driver");
        dataSource.setUrl("jdbc:mysql://localhost:3306/spring_day03?characterEncoding=utf8");
        dataSource.setUsername("root");
        dataSource.setPassword("123");

        //创建jdbcTemplate对象
        JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);

        //写sql语句,根据username查询
        String sql = "select * from user";
        //调用jdbcTemplate的方法
        List<User> userList = jdbcTemplate.query(sql,new MyRowMapper());
        System.out.println(userList);

    }
}


class MyRowMapper implements RowMapper<User> {

    @Override
    public User mapRow(ResultSet rs, int num) throws SQLException {
        //1.从结果集里面把数据得到
        String username = rs.getString("username");
        String password = rs.getString("password");

        //2.把得到的数据封装到对象里面
        User user = new User();
        user.setUsername(username);
        user.setPassword(password);

        return user;
    }
}




总结jdbcTemplate的crud操作

  • 在进行增、删、改时是使用jdbcTemplate.update(sql,“相应参数”)

在进行查询操作时

  • 查询记录数:jdbcTemplate.queryForObject(sql, Integer.class);
  • 查询返回对象:jdbcTemplate.queryForObject(sql, new MyRowMapper(), “lucy”);
  • 查询返回集合:jdbcTemplate.query(sql,new MyRowMapper());
    注:其中返回的是对象或者集合时,需要手动实现RowMapper类完成数据封装
class MyRowMapper implements RowMapper<User> {

    @Override
    public User mapRow(ResultSet rs, int num) throws SQLException {
        //1.从结果集里面把数据得到
        String username = rs.getString("username");
        String password = rs.getString("password");

        //2.把得到的数据封装到对象里面
        User user = new User();
        user.setUsername(username);
        user.setPassword(password);

        return user;
    }
}
上一篇:CorelDRAW制作有创意的汽车宣传海报


下一篇:Mockjs