本文共 3848 字,大约阅读时间需要 12 分钟。
首先导入相应的jar包
mybatis的jar包
mybatis-Spreing的jar包
Spring的相关jar包
h2数据库的驱动包
首先准备数据库相关配置jdbc.properties
jdbc.driverClassName=org.h2.Driverjdbc.url=jdbc:h2:tcp://localhost/D:/H2/h2/binjdbc.username=sajdbc.password=123456
我们可以创建一个mybatis-config.xml配置类的别名
创建一个AppConfig类进行整合配置
package cn.qblank;import javax.sql.DataSource;import org.mybatis.spring.SqlSessionFactoryBean;import org.mybatis.spring.annotation.MapperScan;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.ComponentScan;import org.springframework.context.annotation.Configuration;import org.springframework.context.annotation.PropertySource;import org.springframework.core.env.Environment;import org.springframework.core.io.ClassPathResource;import org.springframework.jdbc.datasource.DataSourceTransactionManager;import org.springframework.jdbc.datasource.DriverManagerDataSource;import org.springframework.transaction.PlatformTransactionManager;import org.springframework.transaction.annotation.EnableTransactionManagement;@Configuration@ComponentScan("cn.qblank")@EnableTransactionManagement@PropertySource("jdbc.properties")@MapperScan("cn.qblank.mapper")public class AppConfig { /** * 获取Session工厂bean * @param dataSource * @return */ @Bean public SqlSessionFactoryBean sqlSessionFactoryBean(DataSource dataSource) { //创建工厂bean SqlSessionFactoryBean factoryBean = new SqlSessionFactoryBean(); factoryBean.setConfigLocation(new ClassPathResource("mybatis-config.xml")); factoryBean.setDataSource(dataSource); return factoryBean; } /** * 获取数据源 * @param env * @return */ @Bean // 依赖Environment public DataSource dataSource(Environment env) { DriverManagerDataSource ds = new DriverManagerDataSource(); // env.getProperty("someKey") 获得属性值 ds.setDriverClassName(env.getProperty("jdbc.driverClassName")); ds.setUrl(env.getProperty("jdbc.url")); ds.setUsername(env.getProperty("jdbc.username")); ds.setPassword(env.getProperty("jdbc.password")); return ds; } /** * 事务管理 * @param dataSource * @return */ @Bean public PlatformTransactionManager transactionManager(DataSource dataSource) { DataSourceTransactionManager manager = new DataSourceTransactionManager(); manager.setDataSource(dataSource); return manager; }}创建对应的Service接口BlogService
package cn.qblank.service;import cn.qblank.entity.Blog;public interface BlogService { /** * 查询 * @param id * @return */ Blog findOne(Long id);}实现接口BlogServiceImpl
package cn.qblank.service;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;import org.springframework.transaction.annotation.Transactional;import cn.qblank.entity.Blog;import cn.qblank.mapper.BlogMapper;@Service@Transactionalpublic class BlogServiceImpl implements BlogService{ @Autowired private BlogMapper blogMapper; @Override public Blog findOne(Long id) { return blogMapper.findOne(1L); }}
书写对应的BlogMapper.xml配置
这样,Spring+mybatis的简单整合就完成了,接下来,我们来测试一下
package cn.qblank.test;import org.springframework.context.annotation.AnnotationConfigApplicationContext;import cn.qblank.AppConfig;import cn.qblank.entity.Blog;import cn.qblank.service.BlogService;/** * 三大框架整合 * @author Administrator */public class MybatisSpringTest { public static void main(String[] args) { AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(AppConfig.class); BlogService blogService = context.getBean(BlogService.class); Blog blog = blogService.findOne(1L); System.out.println(blog); context.close(); }}测试结果如下: