mydatis入门教程(二)| Mybatis实现关联数据的查询
实际项目中,通常会用 spring 这个沾合剂来管理 datasource 等。充分利用spring 基于接口的编程,以及aop ,ioc 带来的方便。用spring 来管理 mybatis,这里重点是数据源管理以及 bean的配置。
(一)添加jar包
(二)建立 spring 配置文件:applicationContext.xml
这一步是最重要,把数据源、映射工厂放在Spring的IoC容器里管理
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
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.xsd">
<!--本示例采用DBCP连接池,应预先把DBCP的jar包复制到工程的lib目录下。-->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="com.microsoft.sqlserver.jdbc.SQLServerDriver"></property>
<property name="url" value="jdbc:sqlserver://localhost:1433;useUnicode=true;databaseName=mybatis"></property>
<property name="username" value="sa"></property>
<property name="password" value="12345678"></property>
</bean>
<bean id="sqlSessionFactory"
class="org.mybatis.spring.SqlSessionFactoryBean">
<!--dataSource属性指定要用到的连接池-->
<property name="dataSource" ref="dataSource"/>
<!--configLocation属性指定mybatis的核心配置文件-->
<property name="configLocation" value="mybatis.cfg.xml"/>
</bean>
<bean id="userMapper"
class="org.mybatis.spring.mapper.MapperFactoryBean">
<!--sqlSessionFactory属性指定要用的SqlSessionFactory-->
<property name="sqlSessionFactory" ref="sqlSessionFactory"/>
<!--mapperInterface属性指定映射器接口,用于实现此接口并生成映射器对象-->
<property name="mapperInterface" value="com.mybatis.mapper.UserMapper"/>
</bean>
</beans>
(三)测试
import com.mybatis.beans.ArticleBean;
import com.mybatis.beans.UserBean;
import com.mybatis.mapper.UserMapper;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import java.util.List;
/**
* Created by 在云端 on 2017/2/15.
*/
public class MybatisSpringTest {
@Test
public void MybatisSpringTest() throws Exception
{
ApplicationContext context=new
ClassPathXmlApplicationContext("applicationContext.xml");
UserMapper mapper= (UserMapper) context.getBean("userMapper");
UserBean user=mapper.selectUserById(123);
System.out.println(user.toString());
List<ArticleBean> articleBeans=mapper.getUserArticles(123);
for (ArticleBean articleBean:articleBeans)
{
System.out.println(articleBean.getContext()+" "+
articleBean.getTitle()+" "+articleBean.getId());
}
}
}
运行结果