Spring-JDBDTamplate 的操作

基本的   

  增,删,改:(只演示增加 因为他们调用的方法都是update方法):

  

package com.hxzy.spring_jdbc_template;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.datasource.DriverManagerDataSource;
public class JDBC_Tamplate {
    /**
     * JDBCTamplate spring针对JDBC技术进行 了封装 使我们更容易的对数据库进行crud操作
     */
    public static void main(String[] args) {
        //获取数据源对象
        DriverManagerDataSource dataSource = new DriverManagerDataSource();
        //向里面存取数据
        dataSource.setDriverClassName("com.mysql.jdbc.Driver");
        dataSource.setUrl("jdbc:mysql://127.0.0.1:3306/student");
        dataSource.setUsername("root");
        dataSource.setPassword("gubin");
        //获得JDBCTempleat对象
        JdbcTemplate template = new JdbcTemplate(dataSource);
        //编写Sql语句
        String sql = "INSERT INTO student VALUES(15,?,?,?,?)";
        //使用问号占位符操作  向数据库存取数据
       int row =  template.update(sql,"赵小凡",25,"","166555555");
        System.out.println("执行成功!有" + row + "行,受到了影响");

    }
}

执行结果图:

     

 演示:查询的代码:

   单一的查询:(查询 返回的结果是一个数值  比如查询总条数)返回结果过为一个值返回一个值          使用queryForObject(sql,String.class)

  

/** * JDBC Tamplate 查询的操作 */ public static void main(String[] args) { /** * 获得数据源对象 */ JdbcTemplate jdbcTemplate = Utils.getjdbcTemplate(); /** * 查询 返回一个值 queryForObject(sql,String.class) */ String sql = "select count(0) from student"; //查询数据库中的条数 String s = jdbcTemplate.queryForObject(sql,String.class); //返回结果是一个的话 使用qyeryForObject(sql语句,String.class) System.out.println(s); }

查询操作 返回一个对象:

  (今天被这个方法恶心到了...  返回的结果只能是1条不能是多条..)不建议使用!!

  使用 queryForObject(sql ,new 实现类 )

这个方法使用  需要一个实体类 与数据库表对应 然后需要一个实现类 这个类实现 RowMapper<实体类> 重写 接口的MapRow方法 获得的数据返给对象 进行Set 存入对象

  实现:

    我的实体类叫 Student  实现类叫StudentImps 

Student:

  

package com.hxzy.spring_jdbc_template.Dao;

import lombok.Data;

@Data
public class Student {
        private  String s_name;
        private  Integer s_id;
        private  Integer s_age;
        private  String s_sex;
        private  String s_phone;
}

StudentImpl:

  

package com.hxzy.spring_jdbc_template;

import com.hxzy.spring_jdbc_template.Dao.Student;
import org.springframework.jdbc.core.RowMapper;

import java.sql.ResultSet;
import java.sql.SQLException;

public class Studentimpl implements RowMapper<Student> {

    @Override
    public Student mapRow(ResultSet resultSet, int i) throws SQLException {
        //获得数据
          int s_id =   resultSet.getInt("sid");
          int s_age =  resultSet.getInt("sage");
          String s_name = resultSet.getString("sname");
          String s_sex = resultSet.getString("ssex");
          String s_phone = resultSet.getString("sphone");
        System.out.println("进入了...");
        //将数据存入数据库
         Student student = new Student();
            student.setS_id(s_id);
            student.setS_age(s_age);
            student.setS_name(s_name);
            student.setS_phone(s_phone);
            student.setS_sex(s_sex);
        return student;
    }
}

 我的JDBCTamplate:

  

        /**
         *   查询  返回一个对象
         */
        String sql = "select * from student limit 0,1";
        Student student =  jdbcTemplate.queryForObject(sql,new Studentimpl());
        
        System.out.println(student);

 

 返回集合操作:

  跟上面返回对象的步骤一个 使用 query() 返回的是一个集合  注意 “一个” 集合 只有一个 同样都是 创建实体类 创建实现类  .....

代码:

   /**
         *   查询  返回一个集合
         */
        String sql = "select * from student limit 0,5";
        List<Student> list =  jdbcTemplate.query(sql,new Studentimpl());
        System.out.println(list);



原文地址:https://www.cnblogs.com/gu-bin/p/10479387.html