zoukankan      html  css  js  c++  java
  • Spring使用JDBCTemplate简介

    Spring提供了一个强有力的模板类---jdbcTemplate来简化JDBC操作,并且数据源DataSource对象与模板jdbcTemplate对象均可通过Bean的形式定义在配置文件中,充分发挥了依赖注入的威力。

    案例:使用jdbcTemplate查询所有图书

    1.引入jar包

    <!-- MySQLjar -->
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>5.1.38</version>
            </dependency>
    
    
     <!--spring jdbc-->
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-jdbc</artifactId>
                <version>4.2.0.RELEASE</version>
            </dependency>
    

      

    2.创建类

    3.配置xml文件

    3.1配置数据源

    第一种配法

    <!--数据源-->
        <!--
            1.spring默认配置
            2.dbcp注册数据源
            3.c3p0注册数据源
            4.druid注册数据源
        -->
        <!--spring自带数据源-->
       <bean id="dataSources" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
           <property name="driverClassName" value="${jdbc.driver}"/>
           <property name="url" value="${jdbc.url}"/>
           <property name="username" value="${jdbc.username}"/>
           <property name="password" value="${jdbc.password}"/>
       </bean>
    

    第二种配法

    <!--dbcp注册数据源-->
        <bean id="dataSources" class="org.apache.commons.dbcp.BasicDataSource">
            <property name="driverClassName" value="${jdbc.driver}"/>
            <property name="url" value="${jdbc.url}"/>
            <property name="username" value="${jdbc.username}"/>
            <property name="password" value="${jdbc.password}"/>
        </bean>
    

      

    第三种配法

    <!--c3p0配置数据源-->
        <bean id="dataSources" class="com.mchange.v2.c3p0.ComboPooledDataSource">
            <property name="driverClass" value="${jdbc.driver}"/>
            <property name="jdbcUrl" value="${jdbc.url}"/>
            <property name="user" value="${jdbc.username}"/>
            <property name="password" value="${jdbc.password}"/>
        </bean>
    

      

    第四种配法

    <!--druid配置数据源-->
        <bean id="dataSources" class="com.alibaba.druid.pool.DruidDataSource">
            <property name="driverClassName" value="${jdbc.driver}"/>
            <property name="url" value="${jdbc.url}"/>
            <property name="username" value="${jdbc.username}"/>
            <property name="password" value="${jdbc.password}"/>
        </bean>
    

      

    注:除了第一种配法外,其他几种都需要引入依赖

    <!--dbcp-->
            <dependency>
                <groupId>commons-dbcp</groupId>
                <artifactId>commons-dbcp</artifactId>
                <version>1.4</version>
            </dependency>
    
    <!--c3p0-->
            <dependency>
                <groupId>com.mchange</groupId>
                <artifactId>c3p0</artifactId>
                <version>0.9.5.2</version>
            </dependency>
    
    <!--druid阿里,目前比较流行的-->
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>druid</artifactId>
                <version>1.0.29</version>
            </dependency>
    

      

    3.2识别jdbc.properties文件

    <!--识别jdbc.properties文件-->
        <!--方式一-->
        <context:property-placeholder location="classpath:jdbc.properties"/>
    
        <!--方式二-->
        <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
            <property name="location" value="classpath:jdbc.properties"></property>
        </bean>
    

      

    3.3绑定数据源

    <!--绑定数据源-->
        <bean id="jdbcTemplates" class="org.springframework.jdbc.core.JdbcTemplate">
            <property name="dataSource" ref="dataSources"/>
        </bean>
    

      

    3.4绑定DAO层实现类

    <!--DAO-->
        <bean id="BookDao" class="cn.happy.JDBCTemplate.dao.BookDaoImpl">
            <property name="jdbcTemplate" ref="jdbcTemplates"/>
        </bean>
    

    3.5绑定Service层实现类

    <!--service-->
        <bean id="BookService" class="cn.happy.JDBCTemplate.service.BookServiceImpl">
         <!--在serviceImpl中创建对象并封装get set方法-->
    <property name="dao" ref="BookDao"/>
    </bean>

      

    4.书写方法

    import cn.happy.JDBCTemplate.entity.Book;
    import org.springframework.jdbc.core.RowMapper;
    import org.springframework.jdbc.core.support.JdbcDaoSupport;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.util.List;
    
    /**
     * Created by Administrator on 2018/3/13.
     */
    //继承JdbcDaoSupport类 public class BookDaoImpl extends JdbcDaoSupport implements IBookDao { public List<Book> getAll() {
         //书写SQL String sql="select * from book";
         //调用JdbcDaoSupport类的JdbcTemplate属性的get方法 List<Book> query = this.getJdbcTemplate().query(sql, new RowMapper<Book>() { public Book mapRow(ResultSet rs, int i) throws SQLException { /* rs 读取器 i 索引 */
              //创建对象 Book book = new Book();
              //渲染数据 book.setBookId(rs.getInt("bookId")); book.setBookName(rs.getString("bookName")); book.setBookPrice(rs.getInt("bookPrice")); return book; } }); return query; } }

      

    5.测试类

    //JDBCTemplate
        @Test
        public void Spring(){
            ApplicationContext ctx=new ClassPathXmlApplicationContext("JDBCTemplate.xml");
            BookService service=(BookService)ctx.getBean("BookService");
            List<Book> all = service.getAll();
            for (Book item:all) {
                System.out.println(item.getBookName());
            }
        }
    

      

    结果:

  • 相关阅读:
    [HDOJ4417]Super Mario(归并树)
    [POJ2104] K-th Number(归并树,二分)
    2017北理校赛G题 人民的名义(FFT)
    [CF762C] Two Strings(预处理,二分答案)
    [CF798D] Mike and distribution(贪心,鸽笼原理,随机)
    [CF798C] Mike and gcd problem(规律,gcd)
    2017北理校赛H题 青蛙过河(线段树, dp, 离散化)
    [CF798B] Mike and strings(暴力)
    [CF798A] Mike and palindrome(水题,trick)
    [CCPC2017]湘潭邀请赛
  • 原文地址:https://www.cnblogs.com/xuchangqi1/p/8567516.html
Copyright © 2011-2022 走看看