zoukankan      html  css  js  c++  java
  • [刘阳Java]_Spring对Dao的支持_第10讲

    Spring框架优秀就是在于MVC开发的时候一旦需要对底层的数据库操作,它可以很好的支持JDBC技术,还有现在主流的ORM框架(Hibernate, MyBatis)技术。

    重点先介绍Spring对JDBC支持。在Spring对JDBC支持中提供了一个模板JdbcTemplate此模板封装了对JDBC操作的许多方法且消除了忽视资源释放而引起的漏洞

    1. Spring对JDBC操作需要导入的jar(开发环境配置)

    • common-dbcp.jar:提供数据源的第三方包
    • common-pool.jar: common-dbcp.jar的依赖包
    • spring-jdbc-4.0.3.jar:完成jdbc操作
    • spring-tx-4.0.3.jar:jdbc事务异常相关类
    • msyql-connector.jar:mysql的驱动包

    2. 我们来看一个应用Spring JDBC的程序编写步骤

    • 配置数据源,数据源的配置Spring依赖于第三方两个数据源实现包:Apache-DBCP和C3P0
    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
        destroy-method="close" 
        p:driverClassName="com.mysql.jdbc.Driver"
        p:url="jdbc:mysql://localhost:3306/sampledb" 
        p:username="root"
        p:password="1234" />

    注意事项:BasicDataSource提供了close方法来关闭数据源,所以我们可以利用destory-method属性来执行关闭操作

    • DBCP参数说明
      • initialSize:初始化连接,即连接池启动时候创建的初始化连接数量。默认为0
      • maxActive:最大活动连接,即连接池在同一时间能够分配的最大活动连接的数量,如果设置为负数则表示不限制。默认为8
      • maxIdle:最大空闲连接,即连接池允许保持空闲状态的最大连接数量,超过的空闲连接将被释放,如果设置为负数表示不限制。默认为8
      • minIdle:最小空闲连接,即连接池允许保持空闲状态的最小连接数量,低于这个数量将创建新的连接,如果设置为0则不创建。默认为0
      • maxWait:最大等待时间,即当没有可用连接时,连接池等待连接被归还的最大时间(单位:以毫秒计数),超过时间则抛异常。如果设置为-1表示无限制。默认为-1
    • 结合属性文件进行数据源的配置
      • 先创建jdbc.properites文件
    jdbc.driverClassName=oracle.jdbc.driver.OracleDriver
    jdbc.url=jdbc:oracle:thin:@localhost:1521:XE
    jdbc.username=team3
    jdbc.password=team3
      • 在Spring的配置文件中可以编写如下的代码
    <context:property-placeholder location="classpath:jdbc.properties">
    
    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
        <property name="driverClassName" value="${jdbc.driverClassName}"/>
        <property name="url" value="${jdbc.url}"/>
        <property name="username" value="${jdbc.username}"/>
        <property name="password" value="${jdbc.password}"/>
    </bean>
    • JdbcTemplate模板应用,一般情况,我们在Dao类中使用JdbcTemplate,JdbcTemplate在XML配置文件配置好后,然后直接在Dao中注入
    <bean id="template" class="org.springframework.jdbc.core.JdbcTemplate" p:dataSource-ref="dataSource"></bean>
    • Dao层代码实现
    package com.gxaedu.dao;
    
    import java.util.List;
    import java.util.Map;
    
    import org.springframework.jdbc.core.JdbcTemplate;
    
    @Repository //声明一个Dao
    public class UsersDao {
    
        @Autowire //注入jdbcTemplate
        JdbcTemplate template;
        
        public void query() { //用户的查询
            String sql = "select * from users";
            List<Map> list = template.queryForList(sql);
            System.out.println("list = " + list);
        }
        
        public Map query(String username, String userpwd) {
            //获取用户信息的操作还是使用Spring的JDBC
            String sql = "select * from users where user_name= ?anduser_pwd = ?";
            Object[] obj = {username, userpwd};
            return template.queryForMap(sql, obj);
        }
    
    }
  • 相关阅读:
    只是记录一些东西在上面,不是为了炫耀,也不是为了。。。。
    之友赠言
    登陆名---惊涛骇浪
    JNI
    学长们的求职血泪史(C/C++/JAVA)
    胡震宁先生的《职业生涯规划》
    大小端地址转换
    关于Android不能启动的问题
    编译Android 必须安装的库
    ubuntu11.10 64bit 编译android 4.0
  • 原文地址:https://www.cnblogs.com/liuyangjava/p/6689598.html
Copyright © 2011-2022 走看看