zoukankan      html  css  js  c++  java
  • JDBCTemplate

    一,JDBCTemplate介绍

    为了使 JDBC 更加易于使用,Spring 在 JDBCAPI 上定义了一个抽象层, 以此建立一个JDBC存取框架,Spring Boot Spring Data-JPA。

    作为 SpringJDBC 框架的核心, JDBC 模板的设计目的是为不同类型的JDBC操作提供模板方法. 每个模板方法都能控制整个过程,并允许覆盖过程中的特定任务。

    通过这种方式,可以在尽可能保留灵活性的情况下,将数据库存取的工作量降到最低。

    二,JDBCTemplate方法介绍

    1、execute方法:可以用于执行任何SQL语句,一般用于执行DDL语句;Execute、executeQuery、executeUpdate

    2、update方法及batchUpdate方法:update方法用于执行新增、修改、删除等语句;batchUpdate方法用于执行批处理相关语句 SQL SERVCER(GO SQL语句 GO) ;

    3、query方法及queryForXXX方法:用于执行查询相关语句;

    4、call方法:用于执行存储过程、函数相关语句。

    三,案例

    实体类:

        

     dao层:

         

     dao层实现类:

         

    @Repository
    public class IStudentDaoImpl  implements IStudentDao {
    
        @Resource
        private  JdbcTemplate jdbcTemplate;
    
        @Override
        public List<Student> getAllStudent() {
            //获取JDBC模板对象
    
            String sql="select * from studentinfo";
    
            /*List<Student> studentList=jdbcTemplate.query(sql, new RowMapper<Student>() {
                @Override
                public Student mapRow(ResultSet rs, int i) throws SQLException {
                    Student stu=new Student();
                    stu.setStuId(rs.getInt("stuid"));
                    stu.setStudentName(rs.getString("studentName"));
                    stu.setAddress(rs.getString("address"));
                    return stu;
                }
            });*/
            RowMapper<Student> rowMapper=new BeanPropertyRowMapper<>(Student.class);
            List<Student> studentList=jdbcTemplate.query(sql,rowMapper);
    
    
            return studentList;
        }
    
        @Override
        public int addStudent(Student stu) {
            String sql="insert into studentinfo values(default,?,?) ";
            Object[] objs={stu.getStudentName(),stu.getAddress()};
            int count=jdbcTemplate.update(sql,objs);
            System.out.println("受影响行数"+count);
            return count;
        }
    
        @Override
        public int update(Student stu) {
            String sql="update studentinfo set studentName=? where stuid=?";
            int update=jdbcTemplate.update(sql,stu.getStudentName(),stu.getStuId());
            return update;
        }
    
        @Override
        public int delete(int id) {
            String sql="delete from studentinfo where stuid=?";
            int count=jdbcTemplate.update(sql,id);
    
            return count;
        }
    }
    

     service层:

            

     service层实现类:

           

    @Service("iStudentService")
    public class IStudentServiceImpl implements IStudentService {
        @Resource
        private IStudentDao istudentDao;
        @Override
        public List<Student> getAllStudent() {
            return istudentDao.getAllStudent();
        }
    
        @Override
        public int addStudent(Student stu) {
            return istudentDao.addStudent(stu);
        }
    
        @Override
        public int update(Student stu) {
            return istudentDao.update(stu);
        }
    
        @Override
        public int delete(int id) {
            return istudentDao.delete(id);
        }
    
        public IStudentDao getIstudentDao() {
            return istudentDao;
        }
    
        public void setIstudentDao(IStudentDao istudentDao) {
            this.istudentDao = istudentDao;
        }
    }
    

     配置文件:

           

           

     测试类:

          

    public class JdbcTemplateTest {
        public static void main(String[] args) {
            ApplicationContext ctx=new ClassPathXmlApplicationContext("applicationcontext.xml");
            IStudentService iStudentService =(IStudentService) ctx.getBean("iStudentService");
          /*  List<Student> allStudent = iStudentService.getAllStudent();*/
    
            /*Student stu=new Student();
            stu.setStudentName("肖战");
            stu.setAddress("陈晨心里");
            iStudentService.addStudent(stu);
    
    
    */
            Student student=new Student();
            student.setStuId(2);
            student.setStudentName("北野");
            int count=iStudentService.update(student);
            System.out.println(count);
    
            /*for (Student student:allStudent){
                System.out.println(student.getStudentName());
            }*/
    
            Student stu=new Student();
            iStudentService.delete(5);
    
        }
    
    
    }
    

      

  • 相关阅读:
    peudoclass与pseudo的相同点与不同点
    第一个页面
    自我介绍
    Virtual IP Address 学习记录
    OpenStack 学习记录
    Dubbo学习记录 MAC
    售前 银行
    log4j2 学习记录 Pattern Layout
    Zookeeper学习记录 mac下安装部署
    P2695 骑士的工作
  • 原文地址:https://www.cnblogs.com/liuying23/p/11781471.html
Copyright © 2011-2022 走看看