MyBatis和Spring框架整合
关于Sping与MyBatis的整合,通过Spring实例化Bean,然后调用实例对象中的查询方法来执行MyBatis映射文件中的SQL语句,如果能够正确查询出数据库中的数据,我们就认为已经整合好,具体实现流程见下图
第一步,src目录下创建db.properties文件,配置数据库的基本四项
jdbc.driver=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3306/mybatis jdbc.username=root jdbc.password=root jdbc.maxTotal=30 jdbc.maxIdle=10 <!--最大空闲数--> jdbc.initialSize=5 <!--初始化连接数-->
第二步,src目录下创建Spring的配置文件 ,applicationContext.xml
- 读取db.properties文件的配置
- 配置数据源
- 配置事务管理器并开启了事务注解
- 配置MyBatis工厂与Spring整合
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.3.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.3.xsd"> <!--读取db.properties --> <context:property-placeholder location="classpath:db.properties"/> <!-- 配置数据源 --> <bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource"> <!--数据库驱动 --> <property name="driverClassName" value="${jdbc.driver}" /> <!--连接数据库的url --> <property name="url" value="${jdbc.url}" /> <!--连接数据库的用户名 --> <property name="username" value="${jdbc.username}" /> <!--连接数据库的密码 --> <property name="password" value="${jdbc.password}" /> <!--最大连接数 --> <property name="maxTotal" value="${jdbc.maxTotal}" /> <!--最大空闲连接 --> <property name="maxIdle" value="${jdbc.maxIdle}" /> <!--初始化连接数 --> <property name="initialSize" value="${jdbc.initialSize}" /> </bean> <!-- 事务管理器,依赖于数据源 --> <bean id="transactionManager" class= "org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource" /> </bean> <!--开启事务注解 --> <tx:annotation-driven transaction-manager="transactionManager"/> <!--配置MyBatis工厂 --> <!--MyBatis工厂构建的SqlSesstionFactory的作用:通常在配置时,需要提供两个参数,一个是数据源,一个是MyBatis的配置文件的构建路径,这样在配置时,Spring的Ioc容器就会在初始化id为sqlSessionFactory的bean时解析MyBatis的配置文件时就会与数据源一同保存在Spring的bean中--> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <!--注入数据源 --> <property name="dataSource" ref="dataSource" /> <!--指定核心配置文件位置 --> <property name="configLocation" value="classpath:mybatis-config.xml"/> </bean> 以下不在项目最开始的文件中,根据项目后期的要求自行添加 ----开始----- <!--实例化Dao --> <bean id="customerDao" class="com.itheima.dao.impl.CustomerDaoImpl"> <!-- 注入SqlSessionFactory对象实例--> <property name="sqlSessionFactory" ref="sqlSessionFactory" /> </bean> -----结束---- <!-- Mapper代理开发(基于MapperScannerConfigurer)也可以理解为配置mapper扫描器 --> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="com.itheima.mapper" /> </bean> <!-- 开启扫描 --> <context:component-scan base-package="com.itheima.service" /> </beans>
第三步,以及MyBatis的配置文件,由于Spring的配置文件中已经配置了数据源,所以在这里就不需要在配置,
<configuration> <!--配置别名 --> <typeAliases> <package name="com.itheima.po" /> </typeAliases> <!--配置Mapper的位置 --> <mappers> <mapper resource="com/itheima/po/CustomerMapper.xml" /> <!-- Mapper接口开发方式 --> <mapper resource="com/itheima/mapper/CustomerMapper.xml" /> </mappers> </configuration>
第四步,创建log4j.properties文件,直接复制就行
# Global logging configuration log4j.rootLogger=ERROR, stdout # MyBatis logging configuration... log4j.logger.com.itheima=DEBUG # Console output... log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n
第五步,实现持久层
在src目录下,创建一个po包,并创建持久层Customer
public class Customer { private Integer id; // 涓婚敭id private String username; // 瀹㈡埛鍚嶇О private String jobs; // 鑱屼笟 private String phone; // 鐢佃瘽 public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getJobs() { return jobs; } public void setJobs(String jobs) { this.jobs = jobs; } public String getPhone() { return phone; } public void setPhone(String phone) { this.phone = phone; } @Override public String toString() { return "Customer [id=" + id + ", username=" + username + ", jobs=" + jobs + ", phone=" + phone + "]"; } }
在创建一个映射文件CustomerMapper.xml,该文件编写根据id查询客户信息的映射语句
<?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="com.itheima.po.CustomerMapper"> <!--根据id查询客户信息 --> <select id="findCustomerById" parameterType="Integer" resultType="customer"> select * from t_customer where id = #{id} </select> </mapper>
第六步,实现Dao层
src下创建dao包,先创建一个接口CustomerDao,在接口声明一个findCustomerById的方法
import com.itheima.po.Customer; public interface CustomerDao { // 通过id查询客户 public Customer findCustomerById(Integer id); }
第七步,创建一个dao.impl包,创建CustomerDao接口的实现类CustomerDaoImpl
import org.mybatis.spring.support.SqlSessionDaoSupport; import com.itheima.dao.CustomerDao; import com.itheima.po.Customer; public class CustomerDaoImpl extends SqlSessionDaoSupport implements CustomerDao { SqlSessionDaoSupport类在使用时需要一个SqlSessionFactory或一个SqlSessionTemplate对象,所以需要Spring在applicationContext.xml中注入一个上述的对象,这样子类可以通过调用SqlSessionDaoSupprot类的getSqlSession方法获取SqlSession对象,并使用其方法 // 通过id查询客户 public Customer findCustomerById(Integer id) { return this.getSqlSession().selectOne("com.itheima.po" + ".CustomerMapper.findCustomerById", id); } }
第八步,整合测试
public class DaoTest { @Test public void findCustomerByIdDaoTest(){ ApplicationContext act = new ClassPathXmlApplicationContext("applicationContext.xml"); // 根据容器中Bean的id来获取指定的Bean CustomerDao customerDao = (CustomerDao) act.getBean("customerDao"); // CustomerDao customerDao = act.getBean(CustomerDao.class); Customer customer = customerDao.findCustomerById(1); System.out.println(customer); } }
https://blog.csdn.net/weixin_42578658/article/details/91046198
相关信息
- mybatis和spring整合
- Mybatis学习--spring和Mybatis整合
- spring boot mybatis 整合教程
- 【Spring】Spring+SpringMVC+MyBatis框架的搭建
- 《Java Spring框架》通过Idea 整合Spring和Mybatis
- SSM框架整合( Spring 、 SpringMVC 和 Mybatis )
- MyBatis 与 Spring 整合
- 【JavaWeb】Spring+SpringMVC+MyBatis+SpringSecurity+EhCache+JCaptcha 完整Web基础框架(五)
- spring boot2 整合(一)Mybatis (特别完整!)
- Spring整合MyBatis(二)Spring整合MyBatis
- 阶段3 3.SpringMVC·_07.SSM整合案例_05.ssm整合之Spring整合SpringMVC的框架
- 框架篇:Spring+SpringMVC+Mybatis整合开发
- Spring+SpringMVC+MyBatis深入学习及搭建(九)——MyBatis和Spring整合
- SpringBoot整合系列--整合MyBatis-plus
- SSM整合(2): spring 与 mybatis 整合
- SSM框架简介及整合教程
- springmvc mybatis 整合
- SSM框架——详细整合教程(Spring+SpringMVC+MyBatis)
- Spring整合Mybatis
- SSM整合(spring,spirngmvc,mybatis)
- SSM 三大框架系列:Spring 5 + Spring MVC 5 + MyBatis 3.5 整合(附源码)
- Spring Boot:整合MyBatis框架
- SSM三大框架整合(Spring+SpringMVC+MyBatis)
- Spring+SpringMVC+MyBatis深入学习及搭建(十四)——SpringMVC和MyBatis整合
- SSM框架——详细整合教程(Spring+SpringMVC+MyBatis)
- 《Java Spring框架》Idea+gradle 整合Springboot和Mybatis
- mybatis和spring整合
- SSM框架——详细整合教程(Spring+SpringMVC+MyBatis)
- SpringBoot2.0 基础案例(10):整合Mybatis框架,集成分页助手插件
- Spring和MyBatis框架整合
- Spring整合MyBatis(五)MapperScannerConfigurer
- Spring+SpringMVC+MyBatis+Maven框架整合
- Spring 与 MyBatis 的整合
- SSM框架——Spring+SpringMVC+Mybatis的搭建教程
- Spring+SpringMVC+MyBatis整合基础篇(二)牛刀小试
- 两大热门框架 Spring 与 Mybatis 如何整合呢?
- 不需要怎么修改配置的Mybatis整合Spring要点
- SSM三大框架整合详细总结(Spring+SpringMVC+MyBatis)
- Spring+SpringMVC+Mybatis整合系列(三)SSM框架整合
- Spring+SpringMVC+Mybatis整合系列(三)SSM框架整合
- Springmvc+mybatis+restful+bootstrap框架整合
- spring和hibernate整合
- spring和struts整合
- Spring4-整合MyBatis
- Spring Boot 整合 MyBatis
- spring和mybatis整合配置文件
- Spring MVC整合Mybatis 入门
- spring整合mybatis(hibernate)配置
- SSM框架——详细整合教程(Spring+SpringMVC+MyBatis)
- SSM框架——详细整合教程(Spring+SpringMVC+MyBatis)
热门资讯
推荐资讯
最新资讯
- 每个程序员必学的10个Git命令
- 学习 WCF (4)--学会使用配置文件 无论是Web应用程序还是Win应用程序,我们都会经常用到配置文件。WCF作为分布式开发的基础框架,在定义服务以及定义消费服务的客户端时,都使用了配置文件的方法...
- WCF 新手教程二
- Hibernate为什么如此成功?
- Dubbo线程模型
- 概述异步编程模型
- BM00002——|Javase|MS-DOS(Microsoft Disk Operating|
- MS-DOS 6.22 +Vim+masm 汇编环境
- 批量下载 Windows 零散系统更新的得力工具 -Windows Updates Downloader
- NO.A.0002——day01——MS-DOS(Microsoft Disk Operating System)
- ubuntu 中文拼音输入法安装
- 在ubuntu10.10下安装Google谷歌拼音输入法
- [转]ubuntu14.04安装好用的google拼音输入法
- (转)[GIT]Fatal: cannot do a partial commit during a merge
- libevent(十四)http client 请求 (GET、POST)
- Mysql 保存float数组的一种方式
- 极简主义
- JVM调优
- JVM调优-GC基本原理和调优关键分析
- 通过日志分析,实现 Kubernetes Helm Release 的自动回滚
评论