現在大部分的專案都物件化
以前碰過Hibernate專案
因歷代維運的痕跡最後被我翻版下線了
現在卻因為新的專案再導入iBATIS
又要走回去的感覺 😳
來點iBATIS基本知識筆記
◎ 一詞來源於「internet」和「abatis」的組合
◎ 最初重於密碼軟體的開發,現在是一個基於Java的持久層框架
◎ 持久層框架包括SQL Maps和Data Access Objects(DAO)
◎ 開發人員自己來寫sql語句(靈活性)
iBATIS和Hibernate都做了映射:
§ iBATIS是把實體類和sql語句之間建立了映射關係,可以允許開發人員自己來寫合適的sql語句
§ Hibernate在實體類和資料庫之間建立了映射關係,sql對於開發人員是不可見的
所以實際應用,還是要看看自己專案適合哪種囉 😊😉
假設開發環境已安裝完畢Maven 💪
接下來就把相關設定添加
接下來就把相關設定添加
pom.xml 設定
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.4</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.3.1</version>
</dependency>
applicationContext.xml 設定
<bean id="iBatisDataSourceDemo" class="packagePath.DynamicDataSourceDemo"> <description>iBatis客製化動態資料源元件(Demo元件)</description> <property name="targetDataSources"> <map key-type="java.lang.String"> <entry value-ref="dataSource" key="schemaUser"></entry> </map> </property> <property name="defaultTargetDataSource" ref="dataSource"> <description>預設資料源的設定</description> </property> </bean>
applicationContext-service.xml
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean" p:configLocation="classpath:mybatis-Demo.xml" p:dataSource-ref="iBatisDataSourceDemo" p:mapperLocations="classpath*:packagePath/**/*.xml" />
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager" p:dataSource-ref="iBatisDataSourceDemo">
<qualifier value="schemaUser" />
</bean>
<bean id="mapperScannerConfigurer" class="org.mybatis.spring.mapper.MapperScannerConfigurer" p:basePackage="packagePath" p:annotationClass="packagePath.annotation.Mapper"
p:sqlSessionFactoryBeanName="sqlSessionFactory" />
<tx:annotation-driven transaction-manager="transactionManager" />
根據以上的設定的新增對應的檔案
mybatis-Demo.xml
<plugins>
<plugin interceptor="packagePath.pagination.PaginationInterceptor">
<property name="databaseType" value="SQLServer2005" />
<property name="nameRegularExpress" value=".*WithPagination.*" />
</plugin>
</plugins>
*.xml
<javaModelGenerator targetPackage="packagePath" targetProject="src/main/java/">
<property name="enableSubPackages" value="true" />
<property name="trimStrings" value="true" />
<property name="constructorBased" value="false" />
</javaModelGenerator>
<sqlMapGenerator targetPackage="packagePath" targetProject="src/main/resources">
<property name="enableSubPackages" value="true" />
</sqlMapGenerator>
<javaClientGenerator targetPackage="packagePath" type="MIXEDMAPPER" targetProject="src/main/java/">
<property name="enableSubPackages" value="true" />
</javaClientGenerator>
<!-- =============================table list ============================= -->
<table tableName="TABLENAME" domainObjectName="TABLENAME_PARAMS_NAME" delimitIdentifiers="true" delimitAllColumns="true">
<property name="ignoreQualifiersAtRuntime" value="true" />
</table>
如果沒有成功,就要看以上的設定是否有對應名稱
剛開始設定的時候眼花撩亂 😆😆😆
our code...
沒有留言:
張貼留言