接下來是整合mybatis到工程中。
首先是導入需要的jar包:
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>4.3.10.RELEASE</version>
</dependency>
<!-- mysql -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>6.0.6</version>
</dependency>
<!-- 數據連接池,並提供其他功能 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.2</version>
</dependency>
<!-- end -->
<!-- mybatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.1</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.3.0</version>
</dependency>
<!-- end -->
這裏用到了阿里巴巴開發的druid作爲數據連接池,它的基本配置可以參考
https://github.com/alibaba/druid/wiki/%E9%85%8D%E7%BD%AE_DruidDataSource%E5%8F%82%E8%80%83%E9%85%8D%E7%BD%AE
其他內容可以百度搜索。
導入所需JAR包後就要開始建立配置文件,在springMVC中整合mybatis需要以下幾個配置文件
application-dao.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:mybatis="http://mybatis.org/schema/mybatis-spring"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://mybatis.org/schema/mybatis-spring http://mybatis.org/schema/mybatis-spring.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
<!-- 該包下的類支持註解,表示會被當作{@code mybatis mapper}處理 配置了之後表示可以自動引入mapper類-->
<mybatis:scan base-package="com.rf"/>
<!--引入屬性文件 -->
<context:property-placeholder location="classpath:jdbc.properties"/>
<!--數據庫連接-->
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
<!-- 配置初始化大小、最小、最大 -->
<property name="initialSize"><value>1</value></property>
<property name="maxActive"><value>5</value></property>
<property name="minIdle"><value>1</value></property>
<!-- 配置獲取連接等待超時的時間 -->
<property name="maxWait"><value>60000</value></property>
<!-- 配置監控統計攔截的filters -->
<property name="filters"><value>stat</value></property>
<!-- 配置間隔多久才進行一次檢測,檢測需要關閉的空閒連接,單位是毫秒 -->
<property name="timeBetweenEvictionRunsMillis"><value>60000</value></property>
<!-- 配置一個連接在池中最小生存的時間,單位是毫秒 -->
<property name="minEvictableIdleTimeMillis"><value>300000</value></property>
</bean>
<!-- mybatis配置 -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
</bean>
</beans>
然後是.properties屬性文件,如果嫌麻煩可以不要這個,一些參數直接寫在上述配置文件中,比如url,username等。
下面是配置文件的目錄:
接下來就是建立相關類實驗一下:
這裏我使用註解的方式實現動態注入,各類的註解詳情如下:
controller:
@Controller
@RequestMapping("/fc")
public class FirstController {
@Autowired
private FirstService fService;
@RequestMapping("/start.do")
@ResponseBody
public Object start(HttpServletRequest request) {
Object result = new Object();
result = "hello world!";
Integer n = fService.countNum();
result = result + "--" + n;
return result;
}
}
service:
@Service
public class FirstService {
@Autowired
private FirstDao fDao;
public Integer countNum() {
return fDao.countNum();
}
}
dao:
@Repository
public class FirstDao {
@Resource
private FirstMapper fMapper;
public Integer countNum() {
return fMapper.countNum();
}
}
最後測試一下,成功從庫中查詢到數據了。