• 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);

    
    
    
  • 相关阅读:
    线程,委托和同步的技术理顺
    .Net RabbitMQ 初探
    Java学习,使用IDEA中碰见的问题(一)
    log4net 小记
    MVC 根据模板动态生成静态页面
    IIS 的负载均衡【IIS7.0以上才可以使用】---- Application Request Routing(ARR)
    asp.net forms 表单验证 实现跨域共享cookie(即SSO,单点登录(在二级域名下))
    SQL Server 的文件组和文件
    Base64 编码原理
    swfupload 大文件 批量上传
  • 原文地址:https://www.cnblogs.com/gu-bin/p/10479387.html
Copyright © 2020-2023  润新知