文章目錄
Dao層整合
1.項目結構
2.添加配置檔案
2.1mybatis的配置檔案
2.2Spring的配置檔案
2.3資料庫屬性檔案
上篇文章介紹了mybatis的逆向工程,本文來實作SSM(SpringMVC+Spring+Mybatis)整合中的Spring整合mybatis。
spring和mybatis的整合我們有兩個配置檔案要添加,分别是spring的配置檔案和mybatis的配置檔案。但是這兩個配置檔案放在哪兒呢?因為logistics-manager-dao和logistics-manager-service都是jar工程,最終會被打成jar包,配置檔案也會被打包在jar包裡面,我們調用起來比較麻煩,建議放到logistics-manager-web工程中,因為logistics-manager-web是war工程,logistics-manager聚合工程最終會打包成一個war包,war包整合了聚合工程的所有内容。是以更适合進行架構整合。 在src/main/resource目錄下建立一個mybatis檔案夾,然後在該檔案夾下建立一個Mybatis的配置檔案SqlMapConfig.xml,如下圖所示 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,如下圖所示
我們在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"/>
添加資料庫的屬性檔案
解決屬性檔案中文亂碼問題:要解決該問題也很簡單,就是我們在db.properties檔案上右鍵----->Properties,會看到如下圖所示界面,我們選擇"UTF-8"編碼,然後點選"OK"。點選"OK"後有個警告,我們直接點選确定即可
#mysql資料庫連接配接
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/logistics?characterEncoding=utf-8
jdbc.username=root
jdbc.password=123456
注意:配置檔案中千萬不要有空格,否則會連不上資料庫,請大家一定要仔細檢查
到此Dao層配置完成~