ssm框架中dao层如何调用数据库中数据spring配置——个人小总结

  1. propertyConfigurer读取dbconfig数据库连接信息,通过org.springframework.beans.factory.config.PropertyPlaceholderConfigurer 将dbcongfig的信息返回给阿里 druid数据库连接池
    1
    2
    3
    4
    5
    6
    7
    8

    <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="locations">
    <list>
    <value>/WEB-INF/classes/dbconfig.properties</value>
    </list>
    </property>
    </bean>
  2. 阿里 druid数据库连接池,通过${}获得org.springframework.beans.factory.config.PropertyPlaceholderConfigurer 吐出的数据
    参考文档 :https://www.cnblogs.com/wuyun-blog/p/5679073.html
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    <!-- 阿里 druid数据库连接池 -->
    <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" destroy-method="close">
    <!-- 数据库基本信息配置 -->
    <property name="url" value="${url}" />
    <property name="username" value="${username}" />
    <property name="password" value="${password}" />
    <property name="driverClassName" value="${driverClassName}" />
    <property name="filters" value="${filters}" /> --属性类型是字符串,通过别名的方式配置扩展插件,常用的插件有: 监控统计用的filter:stat日志用的filter:log4j防御sql注入的filter:wall

    <!-- 最大并发连接数 -->
    <property name="maxActive" value="${maxActive}" />
    <!-- 初始化连接数量 -->
    <property name="initialSize" value="${initialSize}" />
    <!-- 配置获取连接等待超时的时间 -->
    <property name="maxWait" value="${maxWait}" />
    <!-- 最小空闲连接数 -->
    <property name="minIdle" value="${minIdle}" />
    <!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 -->
    <property name="timeBetweenEvictionRunsMillis" value="${timeBetweenEvictionRunsMillis}" />
    <!-- 配置一个连接在池中最小生存的时间,单位是毫秒 -->
    <property name="minEvictableIdleTimeMillis" value="${minEvictableIdleTimeMillis}" />
    <property name="validationQuery" value="${validationQuery}" />
    <property name="testWhileIdle" value="${testWhileIdle}" />
    <property name="testOnBorrow" value="${testOnBorrow}" />
    <property name="testOnReturn" value="${testOnReturn}" />
    <property name="maxOpenPreparedStatements" value="${maxOpenPreparedStatements}" />
    <!-- 打开removeAbandoned功能 -->
    <property name="removeAbandoned" value="${removeAbandoned}" />
    <!-- 1800秒,也就是30分钟 -->
    <property name="removeAbandonedTimeout" value="${removeAbandonedTimeout}" />
    <!-- 关闭abanded连接时输出错误日志 -->
    <property name="logAbandoned" value="${logAbandoned}" />
    </bean>
    3 .mybatis调用sqlSessionFactory
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <!-- 配置mybatis -->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    <property name="dataSource" ref="dataSource" />
    <property name="configLocation" value="classpath:mybatis/mybatis-config.xml"></property>
    <!-- mapper扫描 -->
    <property name="mapperLocations" value="classpath:mybatis/*/*.xml"></property>
    </bean>

    <bean id="sqlSessionTemplate" class="org.mybatis.spring.SqlSessionTemplate">
    <constructor-arg ref="sqlSessionFactory" />
    </bean>

java逻辑代码实现dao层使用sql获取数据库信息

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
@Repository("daoSupport")
public class DaoSupport implements DAO {
@Resource(name = "sqlSessionTemplate")
private SqlSessionTemplate sqlSessionTemplate;

/**
* 保存对象
* @param str
* @param obj
* @return
* @throws Exception
*/
public Object save(String str, Object obj) throws Exception {
return sqlSessionTemplate.insert(str, obj);
}