applicationContext.xmljava
<!-- dataSource --> <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close"> <property name="driverClass" value="${datasource.driverClassName}" /> <property name="jdbcUrl" value="${datasource.url}" /> <property name="user" value="${datasource.username}" /> <property name="password" value="${datasource.password}" /> <property name="initialPoolSize" value="${datasource.initialPoolSize}" /> <property name="minPoolSize" value="${datasource.minPollSize}" /> <property name="maxPoolSize" value="${datasource.maxPoolSize}" /> <property name="maxIdleTime" value="${datasource.maxIdleTime}" /> <property name="acquireIncrement" value="${datasource.acquireIncrement}" /> <property name="idleConnectionTestPeriod" value="${datasource.idleConnectionTestPeriod}" /> <property name="acquireRetryAttempts" value="${datasource.acquireRetryAttempts}" /> <property name="breakAfterAcquireFailure" value="${datasource.breakAfterAcquireFailure}" /> <property name="maxStatements" value="${datasource.maxStatements}" /> <property name="testConnectionOnCheckout" value="${datasource.testConnectionOnCheckout}" /> </bean> <!-- sqlSession --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <property name="mapperLocations" value="classpath:mapper/*Mapper.xml" /> </bean> <bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate"> <constructor-arg index="0" ref="sqlSessionFactory" /> </bean> <!-- transaction --> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource" /> </bean> <tx:annotation-driven transaction-manager="transactionManager" proxy-target-class="true"/> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="com.iread.persistence.dao" /> <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" /> </bean>
其中Dao接口文件在 com.iread.persistence.dao 包下,如:<property name="basePackage" value="com.iread.persistence.dao" />spring
mapper文件放在 classpath:mapper/*Mapper.xml 下sql
對應mapper文件的寫法,命名空間:namespace="com.iread.persistence.dao.AppDao",爲mapper文件對應的Dao接口路徑mybatis
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > <mapper namespace="com.iread.persistence.dao.AppDao"> <resultMap id="BaseResultMap" type="com.iread.persistence.entity.App"> <id column="id" property="id" jdbcType="BIGINT" /> <result column="version_code" property="versionCode" jdbcType="VARCHAR" /> <result column="app_size" property="appSize" jdbcType="INTEGER" /> <result column="download_url" property="downloadUrl" jdbcType="VARCHAR" /> <result column="description" property="description" jdbcType="VARCHAR" /> <result column="release_timestamp" property="releaseTimestamp" jdbcType="BIGINT" /> <result column="release_flag" property="releaseFlag" jdbcType="TINYINT" /> <result column="update_flag" property="updateFlag" jdbcType="TINYINT" /> <result column="created_timestamp" property="createdTimestamp" jdbcType="BIGINT" /> <result column="created_user" property="createdUser" jdbcType="INTEGER" /> <result column="updated_timestamp" property="updatedTimestamp" jdbcType="BIGINT" /> <result column="updated_user" property="updatedUser" jdbcType="INTEGER" /> </resultMap> <!-- parameterType必須寫完整的路徑 com.iread.persistence.entity.App --> <insert id="insertOne" parameterType="com.iread.persistence.entity.App"> INSERT INTO ir_app ( id, version_code, version_name, app_name,app_size, download_url, description, released_timestamp, release_flag, update_flag, created_timestamp, created_user, updated_timestamp, updated_user ) VALUES ( #{id}, #{versionCode},#{versionName},#{appName}, #{appSize}, #{downloadUrl}, #{description}, #{releasedTimestamp}, #{releaseFlag}, #{updateFlag}, #{createdTimestamp}, #{createdUser}, #{updatedTimestamp}, #{updatedUser} ) </insert> </mapper>
<!-- sqlSession --> <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close"> <property name="driverClass" value="${datasource.driverClassName}" /> <property name="jdbcUrl" value="${datasource.url}" /> <property name="user" value="${datasource.username}" /> <property name="password" value="${datasource.password}" /> <property name="initialPoolSize" value="${datasource.initialPoolSize}" /> <property name="minPoolSize" value="${datasource.minPollSize}" /> <property name="maxPoolSize" value="${datasource.maxPoolSize}" /> <property name="maxIdleTime" value="${datasource.maxIdleTime}" /> <property name="acquireIncrement" value="${datasource.acquireIncrement}" /> <property name="idleConnectionTestPeriod" value="${datasource.idleConnectionTestPeriod}" /> <property name="acquireRetryAttempts" value="${datasource.acquireRetryAttempts}" /> <property name="breakAfterAcquireFailure" value="${datasource.breakAfterAcquireFailure}" /> <property name="maxStatements" value="${datasource.maxStatements}" /> <property name="testConnectionOnCheckout" value="${datasource.testConnectionOnCheckout}" /> </bean> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <property name="configLocation" value="classpath:mybatis-config.xml" /> </bean> <bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate"> <constructor-arg index="0" ref="sqlSessionFactory" /> </bean> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource" /> </bean> <tx:annotation-driven transaction-manager="transactionManager" />
須要一個mybatis-config.xmlapp
<?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> <typeAliases> <package name="com.iread.spider.persistence.entity"/> </typeAliases> <mappers> <mapper resource="mapper/contentMapper.xml" /> </mappers> </configuration>
配置mapper 文件和實體類位置ide
對應mapper文件的寫法以下,namespace能夠隨意命名 namespace="content"ui
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="content"> <resultMap id="subSourceMap" type="subSourceEntity"> <id property="id" column="id" /> <result property="name" column="name" /> <result property="url" column="url" /> <result property="contentType" column="content_type" /> <result property="account" column="account" /> <result property="uplevelType" column="uplevel_type" /> <result property="uplevelCode" column="uplevel_code" /> <result property="uplevelName" column="uplevel_name" /> <result property="crawlFlag" column="crawl_flag" /> <result property="autoPublishFlag" column="auto_publish_flag" /> <result property="offlineFlag" column="offline_flag" /> <result property="description" column="description" /> <result property="createdTimestamp" column="created_timestamp" /> <result property="createdUser" column="created_user" /> </resultMap> </mapper>
而後Java代碼以下:url
@Autowired protected SqlSession sqlSession; sqlSession.selectList("content.select_subsourceurls_by_cate", cateCode); sqlSession.insert("content.insert_content", content);