天天看點

好好程式設計-物流項目05【Dao層整合】

文章目錄

Dao層整合

1.項目結構

2.添加配置檔案

2.1mybatis的配置檔案

2.2Spring的配置檔案

2.3資料庫屬性檔案

 上篇文章介紹了mybatis的逆向工程,本文來實作SSM(SpringMVC+Spring+Mybatis)整合中的Spring整合mybatis。

好好程式設計-物流項目05【Dao層整合】
 spring和mybatis的整合我們有兩個配置檔案要添加,分别是spring的配置檔案和mybatis的配置檔案。但是這兩個配置檔案放在哪兒呢?因為logistics-manager-dao和logistics-manager-service都是jar工程,最終會被打成jar包,配置檔案也會被打包在jar包裡面,我們調用起來比較麻煩,建議放到logistics-manager-web工程中,因為logistics-manager-web是war工程,logistics-manager聚合工程最終會打包成一個war包,war包整合了聚合工程的所有内容。是以更适合進行架構整合。
好好程式設計-物流項目05【Dao層整合】
 在src/main/resource目錄下建立一個mybatis檔案夾,然後在該檔案夾下建立一個Mybatis的配置檔案SqlMapConfig.xml,如下圖所示
好好程式設計-物流項目05【Dao層整合】
schema代碼

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
 
</configuration>      

 在src/main/resource目錄下建立一個spring檔案夾,然後在該檔案夾下建立一個Mybatis的配置檔案applicationContext-dao.xml,如下圖所示

好好程式設計-物流項目05【Dao層整合】

 我們在applicationContext-dao.xml檔案當中配置資料庫連接配接池、SqlSessionFactory(Mybatis的連接配接工廠)、Mybatis映射檔案的包掃描器,配置内容如下

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p"
    xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.2.xsd
    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.2.xsd
    http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.2.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.2.xsd
    http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.2.xsd">
    
    <!-- 配置資料庫連接配接池 -->
    <!-- 加載配置檔案 -->
    <context:property-placeholder location="classpath:properties/db.properties" />
    <!-- 資料庫連接配接池 -->
    <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"
        destroy-method="close">
        <property name="url" value="${jdbc.url}" />
        <property name="username" value="${jdbc.username}" />
        <property name="password" value="${jdbc.password}" />
        <property name="driverClassName" value="${jdbc.driver}" />
        <property name="maxActive" value="10" />
        <property name="minIdle" value="5" />
    </bean>
    <!-- SqlSessionFactory -->
    <!-- 讓spring管理sqlsessionfactory 使用mybatis和spring整合包中的 -->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <!-- 資料庫連接配接池 -->
        <property name="dataSource" ref="dataSource" />
        <!-- 加載mybatis的全局配置檔案 -->
        <property name="configLocation" value="classpath:mybatis/Mybatis-Config.xml" />
        <!-- 
            映射檔案和接口檔案不在同一個目錄下的時候 
            它的spring是不會去掃描jar包中的相應目錄的,隻會去他目前項目下擷取。其實要改變這種情況很簡單,
            在classpath後面加一個*号,*号的作用是讓spring的掃描涉及全個目錄包括jar
        -->
        <property name="mapperLocations" value="classpath*:mapper/*.xml"/>
    </bean>
    <!-- Mapper映射檔案的包掃描器 -->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="com.bobo.mapper" />
    </bean>
</beans>      

 資料庫連接配接池配置的是druid連接配接池,Druid是目前最好的資料庫連接配接池,在功能、性能、擴充性方面,都超過其他資料庫連接配接池,包括DBCP、C3P0、BoneCP、Proxool、JBoss DataSource。Druid已經在阿裡巴巴部署了超過600個應用,經過多年多生産環境大規模部署的嚴苛考驗。

 資料庫的配置直接讀取的是配置檔案,是以我們需要在classpath(src/main/resource)目錄下建立一個properties檔案夾,然後在該目錄下建立一個db.properties檔案,如下圖所示。

 因為資料庫的映射檔案我們放在了logistics-manager-dao的resource目錄下的mapper檔案夾下一樣會被打包到jar中,是以我們在配置檔案中額外添加這行配置

<!-- 
    映射檔案和接口檔案不在同一個目錄下的時候 
    它的spring是不會去掃描jar包中的相應目錄的,隻會去他目前項目下擷取。其實要改變這種情況很簡單,
    在classpath後面加一個*号,*号的作用是讓spring的掃描涉及全個目錄包括jar
-->
<property name="mapperLocations" value="classpath*:mapper/*.xml"/>      

 添加資料庫的屬性檔案

好好程式設計-物流項目05【Dao層整合】

解決屬性檔案中文亂碼問題:要解決該問題也很簡單,就是我們在db.properties檔案上右鍵----->Properties,會看到如下圖所示界面,我們選擇"UTF-8"編碼,然後點選"OK"。點選"OK"後有個警告,我們直接點選确定即可

好好程式設計-物流項目05【Dao層整合】
好好程式設計-物流項目05【Dao層整合】
#mysql資料庫連接配接
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/logistics?characterEncoding=utf-8
jdbc.username=root
jdbc.password=123456      

注意:配置檔案中千萬不要有空格,否則會連不上資料庫,請大家一定要仔細檢查

到此Dao層配置完成~