版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第Spring整合Mybatis具体代码实现流程目录原始方式读取mybatis配置文件,获取SqlSessionSqlSessionFactory等
packagecom.atguigu.rj1192.zyk;
importorg.apache.ibatis.io.Resources;
importorg.apache.ibatis.session.SqlSession;
importorg.apache.ibatis.session.SqlSessionFactory;
importorg.apache.ibatis.session.SqlSessionFactoryBuilder;
importjava.io.IOException;
importjava.io.InputStream;
importjava.util.List;
publicclassTestMybatis{
publicstaticvoidmain(String[]args)throwsIOException{
//从配置文件中构建SqlSessionFactory
Stringresource="mybatis-config.xml";
InputStreaminputStream=Resources.getResourceAsStream(resource);
SqlSessionFactorysqlSessionFactory=newSqlSessionFactoryBuilder().build(inputStream);
//创建一个SqlSession对象(获取自动事务管理的session)
SqlSessionsession=sqlSessionFactory.openSession(true);
//获取Mapper对象(反射,设计模式之代理模式)
UserMappermapper=session.getMapper(UserMapper.class);
Useruser=newUser();
user.setUsername("sdfs");
user.setPassword("123456");
user.setPhone("123456578909");
user.setStatus(1);
mapper.insert(user);
System.out.println(mapper.selectById(3));
}
这种方式就是将SqlSessionSqlSessionFactory等类,全部用bean标签放到ioc容器中,
如果这样的话,我只能从ioc中获得到sqlsession,要使用接口的方法,还需要getbean(),不方便,可以再加一个类,它去getbean(),并把这个类放进ioc容器中,使用方法的时候直接从ioc中拿这个类,再.方法名就行了
这个新的类,有mapper生成的sqlsession,sqlsession中有mapper的所有的方法,所以这个类中要有sqlsession的所有方法,即实现接口(有点绕,就是为了调用这个类的时候,mapper中的所有方法都可以调用)
xmlversion="1.0"encoding="UTF-8"
beansxmlns="/schema/beans"
xmlns:xsi="/2001/XMLSchema-instance"
xsi:schemaLocation="/schema/beans
/schema/beans/spring-beans.xsd"
!--dataSource使用spring的数据源替换mybatis的连接池还可以用c3p0dbcp--
beanid="dataSource"
propertyname="driverClassName"value="com.mysql.jdbc.Driver"/property
propertyname="url"value="jdbc:mysql://:3306/accountserverTimezone=UTC"/property
propertyname="username"value="root"/property
propertyname="password"value="mysql"/property
/bean
!--sqlsessionFactory--
beanid="sqlSessionFactory"
propertyname="dataSource"ref="dataSource"/
!--绑定mybatis的配置文件--
!--这个文件可以写别名,和绑定的mapper
但是为了方便管理,这两项单独写个mybatis-config.xml再导入该文件即可--
propertyname="configLocation"value="classpath:mybatis-config.xml"/property
/bean
!--sqlsessionTemplate就是我们用的sqlsession--
beanid="sqlsession"
!--因为没有set方法,只能使用构造器注入--
constructor-argindex="0"ref="sqlSessionFactory"/constructor-arg
/bean
beanid="accountdaoimpl"
propertyname="sqlSession"ref="sqlsession"/property
/bean
/beans
新加的类
packagecom.atguigu.rj1192.zyk.dao;
importcom.atguigu.rj1192.zyk.pojo.Account;
importorg.apache.ibatis.session.SqlSession;
importorg.mybatis.spring.SqlSessionTemplate;
importjava.util.List;
publicclassAccoountDaoImplimplementsAccountDao{
publicSqlSessionTemplatesqlSession;
publicvoidsetSqlSession(SqlSessionTemplatesqlSession){
this.sqlSession=sqlSession;
@Override
publicListAccountselectall(){
AccountDaoaccountDao=sqlSession.getMapper(AccountDao.class);
returnaccountDao.selectall();
}
importcom.atguigu.rj1192.zyk.dao.AccountDao;
importcom.atguigu.rj1192.zyk.pojo.Account;
importorg.apache.ibatis.io.Resources;
importorg.apache.ibatis.session.SqlSession;
importorg.apache.ibatis.session.SqlSessionFactory;
importorg.apache.ibatis.session.SqlSessionFactoryBuilder;
importorg.junit.Test;
importorg.springframework.context.ApplicationContext;
importorg.springframework.context.annotation.AnnotationConfigApplicationContext;
importorg.springframework.context.support.ClassPathXmlApplicationContext;
importjava.io.IOException;
importjava.io.InputStream;
importjava.util.List;
publicclasstest{
@Test
publicvoidquery()throwsIOException{
ApplicationContextapplicationContext=newClassPathXmlApplicationContext("Spring-dao.xml");
AccountDaoaccountadoimpl=(AccountDao)applicationContext.getBean("accountdaoimpl");
System.out.println(accountadoimpl.selectall());
}
第二种方法那个新的类继承SqlSessionDaoSupport,配置文件就可以只配置sqlSessionFactory和datasource,
xmlversion="1.0"encoding="UTF-8"
beansxmlns="/schema/beans"
xmlns:xsi="/2001/XMLSchema-instance"
xsi:schemaLocation="/schema/beans
/schema/beans/spring-beans.xsd"
!--dataSource使用spring的数据源替换mybatis的连接池还可以用c3p0dbcp--
beanid="dataSource"
propertyname="driverClassName"value="com.mysql.jdbc.Driver"/property
propertyname="url"value="jdbc:mysql://:3306/accountserverTimezone=UTC"/property
propertyname="username"value="root"/property
propertyname="password"value="mysql"/property
/bean
!--sqlsessionFactory--
beanid="sqlSessionFactory"
propertyname="dataSource"ref="dataSource"/
!--绑定mybatis的配置文件--
!--这个文件可以写别名,和绑定的mapper
但是为了方便管理,这两项单独写个mybatis-config.xml再导入该文件即可--
propertyname="configLocation"value="classpath:mybatis-config.xml"/property
/bean
将新的类放进ioc容器中
beanid="AccoountDaoImpl2"
propertyname="sqlSessionFactory"ref="sqlSessionFactory"/property
/bean
/beans
packagecom.atguigu.rj1192.zyk.dao;
importcom.atguigu.rj1192.zyk.pojo.Account;
importorg.apache.ibatis.session.SqlSession;
importorg.mybatis.spring.support.SqlSessionDaoSupport;
importjava.util.List;
publicclassAccoountDaoImpl2extendsSqlSessionDaoSupportimplementsAccountDao{
@Override
publicListAccountselectall(){
//和第一种是一样的,只是将赋值写在了SqlSessionDaoSupport类中,不用自己在xml中赋值了
//getSqlSession();父类中的方法
SqlSessionsqlSession=getSqlSe
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年四川省泸州市辅警协警笔试模拟题(附答案)
- 无人驾驶飞行器成品综合性能测试报告
- 医院多学科联合诊疗流程手册
- 2025年中级会计职称之中级会计财务管理提升训练试卷附答案
- 2025年公共卫生执业医师资格考试《第一单元》真题卷(含新版答案)
- 2025年辅警招聘考试考试综合练习附参考答案详解
- (2025年)沧州市新华区社区《网格员》真题汇编(含答案)
- 2026重庆财经学院财务处工作人员招聘1人备考题库及参考答案详解(基础题)
- 2026东方电气集团数字科技有限公司面向全社会招聘6人备考题库完整版附答案详解
- 2026广东惠州博罗县人民医院招聘69人备考题库附答案详解(基础题)
- 摄影服务照片版权转让协议
- 《心脏急危重症诊治》课件
- 电商视觉设计课件 第2章 商品图片精修与视觉合成
- 2024-年全国医学博士外语统一入学考试英语试题
- 中医适宜技术-中药热奄包
- 厂房镀锌圆形风管施工方案
- JB-T 13101-2017 机床 高速回转油缸
- YYT 0473-2004 外科植入物 聚交醋共聚物和共混物 体外降解试验
- DL∕T 1848-2018 220kV和110kV变压器中性点过电压保护技术规范
- 涉企行政执法自查报告市场监管
- T-SCTSS 16-2023 珠兰花茶团体标准
评论
0/150
提交评论