【Mybatis】使用java方式实现SM框架整合
来源:互联网 发布:reshade画面优化补丁 编辑:程序博客网 时间:2024/04/28 17:56
首先导入相应的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
<?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> <!-- 设置类型别名 --> <typeAliases> <package name="cn.qblank.entity" /> </typeAliases> </configuration>
创建一个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 */@Beanpublic SqlSessionFactoryBean sqlSessionFactoryBean(DataSource dataSource) {//创建工厂beanSqlSessionFactoryBean factoryBean = new SqlSessionFactoryBean();factoryBean.setConfigLocation(new ClassPathResource("mybatis-config.xml"));factoryBean.setDataSource(dataSource);return factoryBean;}/** * 获取数据源 * @param env * @return */@Bean // 依赖Environmentpublic 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 */@Beanpublic 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{@Autowiredprivate BlogMapper blogMapper;@Overridepublic Blog findOne(Long id) {return blogMapper.findOne(1L);}}
书写对应的BlogMapper.xml配置
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="cn.qblank.mapper.BlogMapper"><!-- 一对一案例:查询作者以及其博客信息 --><select id="findOne" resultMap="blogResult">SELECT a.id blog_id,a.name author_name,b.id,b.title blog_title,b.author_id FROM blog b INNER JOIN author a ON a.id = b.author_id where a.id = #{id};</select><resultMap type="Blog" id="blogResult"><id property="id" column="blog_id"/><result property="title" column="blog_title"/><association property="author" javaType="Author"><id property="id" column="author_id"/><result property="name" column="author_name"/></association></resultMap></mapper>
这样,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();}}
阅读全文
0 0
- 【Mybatis】使用java方式实现SM框架整合
- SM框架——详细整合教程(Spring+SpringMVC+MyBatis)
- sm-Spring与Mybatis的整合
- sm(spring+mybatis)注释版的整合
- sm(spring+mybatis)注释版的整合
- SM Java实现
- 框架整合____Spring整合Mybatis(主流,最精简整合方式,)
- java连接数据库方式(二):单独使用MyBatis 框架实现
- sm整合
- java框架整合Springmvc+mybatis+shiro+bootstrap
- java框架整合Springmvc+mybatis+shiro+bootstrap
- 使用maven,实现ssm(spring+springmvc+mybatis)三大框架的整合DEMO
- 分布式 java后台框架 springmvc整合mybatis框架源码
- java后台框架 springmvc整合mybatis框架源码 bootstrap
- 【框架整合】三、整合mybatis
- MyBatis-Spring框架整合
- struts2+MyBatis框架整合
- springMVC+mybatis 框架整合
- Jmeter之JAVA Request的应用
- arcgis api4.5中不同的screenPoint坐标原点的位置说明
- OSI七层与TCP/IP五层网络架构详解
- Android中TextView:maxWidth、maxLength、maxEms的区别
- Spring MVC 接收POST表单请求,获取参数总结
- 【Mybatis】使用java方式实现SM框架整合
- 如何迁移整个git仓库
- Boost.Asio使用实例
- windows 常用命令和设置
- MFC、WTL、WPF、wxWidgets、Qt、GTK、Cocoa、VCL 各有什么特点?
- 如何让 Qt 的程序使用 Sleep
- Boost.Asio技术文档汇总
- 关于Android中常用的四种线程池的介绍
- 路漫漫兮,吾将上下而求索