博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【Mybatis】使用java方式实现SM框架整合
阅读量:2056 次
发布时间:2019-04-28

本文共 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();	}}

测试结果如下:

你可能感兴趣的文章
什么?终止一个容器竟然用了 10 秒钟,这不能忍!
查看>>
Openshift 4.4 静态 IP 离线安装系列(一):准备离线资源
查看>>
万字长文,说透了 Openshift4 的安装过程!
查看>>
Envoy 中文指南系列:Envoy 介绍
查看>>
[译] BeyondProd:云原生安全的一种新方法(Google, 2019)
查看>>
什么?VMware Fusion 也能 docker run 了?
查看>>
教你玩转微服务的装逼指南!
查看>>
Envoy 中文指南系列:Sidecar 模式
查看>>
面试官邪魅一笑:你猜一个 TCP 重置报文的序列号是多少?
查看>>
Envoy 中文指南系列: 安装
查看>>
最华丽的 Kubernetes 桌面客户端:Lens
查看>>
太赞了,这个神器竟然能分分钟将多个 kubeconfig 合并成一个!
查看>>
如何解决容器中 nginx worker process 自动设置的问题
查看>>
ethtool 原理介绍和解决网卡丢包排查思路
查看>>
HPE 推出容器平台 Ezmeral,向 VMware 与 Red Hat 下战书
查看>>
使用 Prometheus-Operator 监控 Calico
查看>>
如果你不习惯新版的 Github 的 UI 界面,可以试试这款插件
查看>>
容器化囧途——没上容器时好好的?
查看>>
linux内核网络参数tcp_tw_recycle 和 tcp_tw_reuse 你搞清楚了吗?
查看>>
40核CPU+80G内存的云资源终终终终终于免费了!
查看>>