JdbcTemplate模板

一、简单查询案例

  1、创建studentdb实体类

package cn.student.entity;

public class Studentdb {
    private Integer sid; //编号
    private String sname;   //姓名
    private String saddress;    //地址

    public Integer getSid() {
        return sid;
    }

    public void setSid(Integer sid) {
        this.sid = sid;
    }

    public String getSname() {
        return sname;
    }

    public void setSname(String sname) {
        this.sname = sname;
    }

    public String getSaddress() {
        return saddress;
    }

    public void setSaddress(String saddress) {
        this.saddress = saddress;
    }
}

  2、创建Dao层接口

    

  3、创建Dao层实现类IStudentDaoImpl并实现查询方法

  @Override
    public List<Studentdb> getAllStudent() {
        //获取JDBC模板对象
        JdbcTemplate jdbcTemplate=getJdbcTemplate();
        String sql="select * from studentinfo";
        //执行查询操作
        List<Studentdb> stuList=jdbcTemplate.query(sql, new RowMapper<Studentdb>() {
            /**
             *
             * @param rs 结果集
             * @param i  当前的记录行
             * @return  方法的返回值,返回泛型
             * @throws SQLException
             */
            @Override
            public Studentdb mapRow(ResultSet rs, int i) throws SQLException {
                Studentdb stu=new Studentdb();
                stu.setSid(rs.getInt("sid"));
                stu.setSname(rs.getString("sname"));
                stu.setSaddress(rs.getString("saddress"));
                return stu;
            }
        });
       /* RowMapper<Studentdb> rowMapper=new BeanPropertyRowMapper<>(Studentdb.class);
        List<Studentdb> stuList=jdbcTemplate.query(sql,rowMapper);*/
        //最后返回list集合
        return stuList;
    }

  4、创建Service层

    

  5、创建Service实现层IStudentServiceImpl

package cn.student.service.impl;

import cn.student.dao.IStudentDao;
import cn.student.entity.Studentdb;
import cn.student.service.IStudentSerice;

import java.util.List;

public class IStudentServiceImpl implements IStudentSerice {
    //植入Dao层对象
    private IStudentDao iStudentDao;

    //查询的方法
    @Override
    public List<Studentdb> getAllStudent() {
        return iStudentDao.getAllStudent();
    }  
  public IStudentDao getiStudentDao(){
        return iStudentDao;
    }

    public void setiStudentDao(IStudentDao iStudentDao){
        this.iStudentDao=iStudentDao;
    }
}

  6、配置jdbc.properties数据源

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/studentdb?useUniCode=true&characterEncoding=utf-8
jdbc.username=root
jdbc.password=123

  7、配置applicationContext.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">

    <context:component-scan base-package="cn.student"/>
    <!--加载配置文件-->
    <context:property-placeholder location="classpath:database.properties"/>
    <!--
        DataSource供模板调用
        DriverManagerDataSource:spring提供管理数据源的
        c3p0数据源   dbcp数据源
    -->
    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property value="${jdbc.driver}" name="driverClassName"/>
        <property value="${jdbc.url}" name="url"/>
        <property value="${jdbc.username}" name="username"/>
        <property value="${jdbc.password}" name="password"/>
    </bean>

    <!--植入JDBCTemplate-->
    <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
        <property name="dataSource" ref="dataSource"></property>
    </bean>

    <!--注入Dao层对象-->
    <bean id="iStudentDao" class="cn.student.dao.impl.IStudentDaoImpl">
        <property name="jdbcTemplate" ref="jdbcTemplate"></property>
    </bean>

    <!--值入Service-->
    <bean id="iStudentService" class="cn.student.service.impl.IStudentServiceImpl">
        <property name="iStudentDao" ref="iStudentDao"></property>
    </bean>
</beans>

  8、Test测试

public class StudentTest {
    //查询的方法
    @Test
    public void stuTest(){
        ApplicationContext cxt=new ClassPathXmlApplicationContext("applicationContext.xml");
        IStudentSerice iStudentService = (IStudentSerice)cxt.getBean("iStudentService");
        List<Studentdb> stuList=iStudentService.getAllStudent();
        for (Studentdb a:stuList){
            System.out.println(a.getSname());
        }
    }
}

  9、测试结果如下

    

二、实现数据添加(applicationContext.xml文件和jdbc数据源在简单查询中已配置完毕)

  1、在Dao层中添加实现数据添加的方法

    

  2、DaoImpl实现方法

 @Override
    public int addstu(Studentdb stu) {
        String sql="INSERT INTO studentinfo (sname,saddress) VALUES(?,?)";
        Object[] obj={stu.getSname(),stu.getSaddress()};
        int count = this.getJdbcTemplate().update(sql, obj);
        return count;
    }

  3、Service层定义相同该方法,

   ServiceImpl实现该方法

 //添加的方法
    @Override
    public int addstu(Studentdb stu) {
        return iStudentDao.addstu(stu);
    }

  4、Test测试

 //添加的方法
    @Test
    public void addstu(){
        ApplicationContext cxt=new ClassPathXmlApplicationContext("applicationContext.xml");
        IStudentSerice iStudentService = (IStudentSerice)cxt.getBean("iStudentService");
        Studentdb stus=new Studentdb();
        stus.setSname("赵六");
        stus.setSaddress("北京");
        int addstu = iStudentService.addstu(stus);
        System.out.println(addstu);
    }

  执行结果大于一表示添加成功

修改案例和添加案例几乎相同不做详细截图

三、实现数据删除

  1、在Dao层中添加实现数据删除的方法

    

  2、DaoImpl实现方法

  @Override
    public int delete(Integer sid) {
        String sql="delete from studentinfo where sid=?";
        int count = this.getJdbcTemplate().update(sql, sid);
        return count;
    }

  3、Service层定义相同该方法,

   ServiceImpl实现该方法

//删除的方法
    @Override
    public int delete(Integer sid) {
        return iStudentDao.delete(sid);
    }

  4、Test测试

//删除的方法
    @Test
    public void deletestu(){
        ApplicationContext cxt=new ClassPathXmlApplicationContext("applicationContext.xml");
        IStudentSerice iStudentService = (IStudentSerice)cxt.getBean("iStudentService");
        int delete = iStudentService.delete(7);
        System.out.println(delete);
    }

  执行结果大于一表示添加成功

    

    

原文地址:https://www.cnblogs.com/tinghao/p/11782477.html

时间: 2024-11-02 18:29:22

JdbcTemplate模板的相关文章

JdbcTemplate模板使用

1.添加模板的配置文件 在spring的配置文件中加入如下代码 <bean class="org.springframework.jdbc.core.JdbcTemplate" id="jdbcTemplate"> <property name="dataSource" ref="dataSource"/></bean> 注意:ref 中的 dataSource 是可变的,与连接数据库的资源

JdbcTemplate模板配置及使用

接数据源的配置..... <!-- 配置Jdbc模板 --> <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"> <property name="dataSource" ref="dataSource"></property> </bean> <!-- 配置事务管

spring之jdbcTemplate实例

如果我们不使用spring或使用spring但不使用spring的jdbcTemplate模板的时候我们要取得一个数据库的连接以及关闭要经过如下几步: 1.使用Java反射加载驱动 2.通过DriverManager 的getConnection() 方法获取Connection对象 3.获取Statement    或PrepareStatement 4. 调用Statement  或PrepareStatement的方法进行数据ddl  dcl  dml 操作 5.获取结果 6.释放资源 7

Spring的JdbcTemplate

JdbcTemplate模板与DbUtils工具类比较类似. #1 开发JDBCTemplate入门: ## 第一步:引入相应jar包: * spring-tx-3.2.0.RELEASE.jar * spring-jdbc-3.2.0.RELEASE.jar * mysql驱动. ## 第二步:创建applicationContext.xml ## 第三步:编写一个测试类: ``` @RunWith(SpringJUnit4ClassRunner.class) @ContextConfigur

spring jdbcTemplate源码剖析

本文浅析 spring jdbcTemplate 源码,主要是学习其设计精髓.模板模式.巧妙的回调 一.jdbcTemplate 类结构 ①.JdbcOperations : 接口定义了方法,如 <T> T execute(StatementCallback<T> action) throws DataAccessException; void execute(String sql) throws DataAccessException; <T> T query(Str

jdbcTemplate查询

//       简单sql String sql = " select w.id,w.title,w.menucode,w.pid,w.pname,w.createdate,w.content,w.status,w.imagename " + " from mss_worknewcontent w " + " where 1=1 and w.status = 1 and w.menucode = 'fengguang' and w.pid = '&quo

(转)JDBC模板类。

Spring JDBC抽象框架core包提供了JDBC模板类,其中JdbcTemplate是core包的核心类,所以其他模板类都是基于它封装完成的,JDBC模板类是第一种工作模式. JdbcTemplate类通过模板设计模式帮助我们消除了冗长的代码,只做需要做的事情(即可变部分),并且帮我们做哪些固定部分,如连接的创建及关闭. JdbcTemplate类对可变部分采用回调接口方式实现,如ConnectionCallback通过回调接口返回给用户一个连接,从而可以使用该连 接做任何事情.State

浅谈JavaEE中的JDBC模板类的封装实现以及合理的建立项目包结构(一)

从今天开始我们一起来聊下有关,javaEE开发中的一些知识,JavaEE的开发用于企业级的开发,但是现在企业中一般也不会使用JDBC开发,大部分都是使用自己公司开发的一套的框架,但是这些框架的架构一般也是会模仿着有名JavaEE开源三大开发框架SSH(Struts2+Spring+Hibernate)或者现在也很流行的SSM开发框架(Spring+SpringMVC+MyBatis) 来进行深度定制以便于适合自己企业的实际开发需求.有的人曾说既然去公司又是重新学习一套框架,还有必要学习开源的三大

JDBCTemplate基础学习

JDBCTemplate:spring提供的用于操作数据库的模板,类似DbUtils.使用时必须设置数据源(DataSource):数据源如DBCP.C3P0等 一.JDBCAPI简单使用Demo 1.项目结构 2.创建MySQL数据库及表 create database springJDBCPro; use springJDBCPro; create table user( id int primary key auto_increment, username varchar(50), pas