一,普通maven项目
1.导入myabtis依赖
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.2</version>
</dependency>
2.配置mybatis核心配置文件以及数据源(用于连接数据库的驱动,密码,配置事务等等)
<?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>
<!--mybatis的核心配置文件-->
<!--将数据源引入-->
<!--引用配置文件-->
<properties resource="db.properties"></properties>
<settings>
<setting name="logImpl" value="STDOUT_LOGGING" />
</settings>
<environments default="development">
<!--s表示可以配置多套配置-->
<environment id="development" >
<!--事务管理 默认jdbc事务-->
<transactionManager type="JDBC"/>
<!--数据源,pooled连接池-->
<dataSource type="POOLED">
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/><!--安全连接-->
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</dataSource>
</environment>
</environments>
<mappers>
<!--每一个核心配置文件都要配置,即mapper.xml都要在核心配置文件中注册-->
<mapper resource="com/lxyk/dao/UserDao.xml"/>
</mappers>
</configuration>
一定要在核心配置文件中注册
#我们的驱动是mysql
driver=com.mysql.jdbc.Driver
#告诉程序,我们得mysql地址以及要操作的数据库
url=jdbc:mysql://localhost:3306/mybatis?useSSL=true&useUnicode=true&characterEncoding=UTF-8
username="****"
password="****"
3.通过工具类获取sqlsession
//工具类
//sqlSessionFactory
public class MybatisUtils {
private static SqlSessionFactory sessionFactory;
static {
try {
//通过工厂模式
String resource = "mybatis-config.xml";
InputStream resourceAsStream = Resources.getResourceAsStream(resource);
//通过SqlSessionFactionBilder 获取SqlSessionFactory
sessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream);
}
catch (IOException e) {
e.printStackTrace();
}
}
//既然有了SqlSessionFactory,我们变可以从中获得SqlSession
//SqlSession 提供了在数据库执行 Sql命令所需的方法
public static SqlSession getSqlSession(){
return sessionFactory.openSession(true);//true是自动提交事务
}
}
4.编写接口mapper 以及mapper.xml
注意:
接口mapper与mapper.xml是通过mapper.xml文件中的
<mapper namespace="com.lxyk.dao.Userdao">
来进行绑定
mapper与mapper.xml文件通过xml映射器来进行绑定
二,mybatis集成spring(不使用注解的方式)
要和 Spring 一起使用 MyBatis,需要在 Spring 应用上下文中定义至少两样东西:一个 SqlSessionFactory 和至少一个数据映射器类。
1.导入mybatis架包以及mybatis-spring整和包,
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>2.0.2</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.2</version>
</dependency>
注意spring与mybatis整合需要相应的版本来对应
相应的版本如下:
2.在applicatio.bean中配置数据源
<!--1.(以前我们的数据源),配置数据源 数据很多 Spring提供的JDBC-->
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource" >
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/demo1?useSSL=true&characterEncoding=UTF-8"/><!--安全连接-->
<property name="username" value="****"/>
<property name="password" value="****"/>
</bean>
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<!--关联Mybatis-->
<property name="configLocation" value="classpath:mybatis-config.xml"/>
<!--配置-->
<property name="mapperLocations" value="classpath:com/lxky/mapper/*.xml"/>
</bean>
3.编写mybatis配置文件(以前我们将关于数据库的数据源,连接池,映射器等等写到该文件中,现在整合到application.xml文件中去)
<?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:核心配置文件-->
<configuration>
</configuration>
4.在Mybatis-Spring中,可使用SessionFactoryBean来创建SqlSesssionFactory。
现在要配置工厂bean,需要将sqlSessionFactorybean注入到bean容器中去,我们在application.xml文件中实现
<!--2.配置sqlSessionFactory-->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<!--关联Mybatis-->
<property name="configLocation" value="classpath:mybatis-config.xml"/>
<!--配置-->
<property name="mapperLocations" value="classpath:com/lxky/mapper/*.xml"/>
</bean>
注意:在sqlSessionFactoryBean中,我们关联了数据源以及mybatis和映射器
5.编写编写了mapper接口以及mapper.xml文件,并将mapper接口注入进去
<bean id="userMapper" class="com.lxky.mapper.UserMapperImpl" >
<property name="sqlSessionFactory" ref="sqlSessionFactory"/>
</bean>
在userMapper中,我们绑定并配置了sqlsessionFactory
到此为止,我们的mybatis集成spring大体框架已经完成啦
6.直接测试
@Test
public void test01()
{
//获取Spring上下文对象
ApplicationContext context=new ClassPathXmlApplicationContext("applicationContext.xml");
UserMapper userMapper = context.getBean("userMapper", UserMapper.class);
userMapper.selectUser().forEach(System.out::println);
}