一 先来看 为整合的Mybatis 使用过程
1 接口服务
public interface ServerDao{
public User selUser(username);//根据用户名查找用户对象信息
}
2 接口服务对应的sql映射文件(serverdao.xml)
//xml 前缀。。。
<mapper namespace="Mapper.ServerDao">
<select id="selUser" resultType="User" parameterType="String">
select * from user where username = #{username}
</select>
</mapper>
3 mybatis_config 配置
//xml 前缀。。。
<configuration>
<environments default="development">
//配置数据源
<environment id="development">
<transactionManager type="jdbc"/>
<dataSource type="POOLED">
<property name="driver" value="oracle.jdbc.driver.OracleDriver"/>
<property name="url" value="jdbc:oracle:thin:@192.168.56.201:1521:system"/>
<property name="username" value="vincent"/>
<property name="password" value="1234"/>
</dataSource>
</environment>
</environments>
//配置拥有的 映射文件
<mappers>
<mapper resource="serverdao.xml" />
</mappers>
</configuration>
4 dao 类
String resource = "resource/mybatis-config.xml";
Reader reader = null;
reader = Resources.getResourceAsReader(resource);
sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);//可连接数据库 且拥有了sql映射配置
SqlSession sqlSession = sqlSessionFactory.openSession();
ServerDao serverDao = sqlSession.getMapper(ServerDao.class); //个人理解 根据类名和xml文件名相同来匹配 将服务接口和对应的SQL操作匹配映射
User user = serverDao.selUser("jun");
//sqlSession.commit();插入操作这里一定要提交,不然数据进不去数据库中
sqlSession.close();
二:Spring 整合mybatis配置
1 映射器接口
public interface ServerDao{
public User selUser(username);//根据用户名查找用户对象信息
}
2 映射接口 与 sql 的映射文件(serverdao.xml)
//xml 前缀。。。
<mapper namespace="Mapper.ServerDao">
<select id="selUser" resultType="User" parameterType="String">
select * from user where username = #{username}
</select>
</mapper>
3 数据源的配置 不用在mybatis 中配置了,交给spring来管理, 同样 sqlSessionFactory 的bean 创建也交给spring来管理,同时指明 dao的服务接口
<xml 前缀>
<beans xmlns:....>
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName"> <value>oracle.jdbc.driver.OracleDriver</value> </property>
<property name="url"> <value>jdbc:oracle:thin:@192.168.1.134:1521:orcl</value> </property>
<property name="username"> <value>scott</value> </property>
<property name="password"> <value>oracle</value> </property>
</bean>
<!-- 配完数据源 和 拥有的 sql映射文件 sqlSessionFactory 也可以访问数据库 和拥有 sql操作能力了-->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="configLocation" value="classpath:/config/mybatis-config.xml"></property>
<property name="dataSource" ref="dataSource" />
</bean>
<!-- 通过设置 mapperInterface属性,使接口服务bean 和对应xml文件管理 可以使用其中的sql -->
<bean id="serverDao" class="org.mybatis.spring.mapper.MapperFactoryBean" >
<!-- 此处等同于 Mybatis 中 ServerDao serverDao = sqlSession.getMapper(ServerDao.class); 指明映射关系-->
<property name="mapperInterface" value="com.azc.dao.ServerDao" />
<property name="sqlSessionFactory" ref="sqlSessionFactory" />
</bean>
</beans>
4 mybatis_config.xml 文件不需要在配置数据源,只需要指明对应的映射xml文件jike
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<mappers>
<mapper resource="com/azc/dao/UserDao.xml"/>
</mappers>
</configuration>
5调用时
注入该接口的一个 上溯对象
Class Demo{
private ServerDao serverDao;
//set get Method....
serverDao.selUser(username);
}