热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

springboot+mybatis+oracle

写在前面:工作原因,使用的是oracle数据库。由于之前没有接触过,写一篇博客做点笔记。如果要在springboot项目中连接oracle

  

 

 

  写在前面:工作原因,使用的是oracle数据库。由于之前没有接触过,写一篇博客做点笔记。


 

 

 如果要在springboot项目中连接oracle,首先肯定是要先加入依赖,但是好像在maven仓库里没有oracle驱动的jar,需要自己下载并安装到本地仓库。

 

1.安装jar到本地仓库,并在在项目中引入依赖。

mvn install:install-file -Dfile&#61; -DgroupId&#61; -DartifactId&#61; -Dversion&#61; -Dpackaging&#61;<打包类型>

 

在pom.xml中

com.oracleojdbc611.2.0.1.0

 

2.在application.yaml文件中添加配置(或properties文件)&#xff0c;由于项目需要&#xff0c;我这里配置的是多数据源的情况。

spring:datasource:datasource1:driver-class-name: oracle.jdbc.driver.OracleDriver# 注&#xff1a;jdbc-url为配置多数据源时使用&#xff0c;单个数据源写url即可jdbc-url: jdbc:oracle:thin:&#64;xxx:1521/xxxxusername: password: datasource2:driver-class-name: oracle.jdbc.driver.OracleDriverjdbc-url: jdbc:oracle:thin:&#64;xxx:1521/xxxusername: password:

 

 

3.由于多数据源&#xff0c;所以我们的dao和mapper都要分不同的包创建。

  

 

 

4.由于我们会写配置类来让spring找到datasourde,所以我们在boot启动文件中不必再加扫描包。

 

5.最后我们就可以编写配置类&#xff0c;以这种方式注册到spring容器中。当有多个数据源时&#xff0c;必须指定一个主数据源&#xff0c;并以&#64;Primary注解区分。

 注&#xff1a;本例中所有bean没有显式指定id&#xff0c;默认以方法名为id。

 

package com.demo.web.config.dataSource;import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.SqlSessionTemplate;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.jdbc.DataSourceBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
import org.springframework.jdbc.datasource.DataSourceTransactionManager;import javax.sql.DataSource;/*** &#64;Description: 主数据源配置类* &#64;Author: 乔木* &#64;Date: 2019/6/5 0005*/
&#64;Configuration
//basePackages 为dao所在的包
&#64;MapperScan(basePackages
&#61; "com.demo.web.dao.dao1",sqlSessionFactoryRef &#61; "sqlSessionFactory1")
public class DatasourceConfig1 {&#64;Bean&#64;ConfigurationProperties(prefix &#61; "spring.datasource.datasource1")
//&#64;Primary 必须要有&#xff0c;而且只能加在主数据源中&#xff0c;以下同。&#64;Primary
public DataSource dataSource1(){return DataSourceBuilder.create().build();}&#64;Bean&#64;Primarypublic SqlSessionFactory sqlSessionFactory1(&#64;Qualifier("dataSource1") DataSource dataSource) throws Exception {SqlSessionFactoryBean bean &#61; new SqlSessionFactoryBean();bean.setDataSource(dataSource);bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath*:/config/mapper/mapper1/*.xml"));return bean.getObject();}&#64;Bean&#64;Primarypublic DataSourceTransactionManager dataSourceTransactionManager1(&#64;Qualifier("dataSource1") DataSource dataSource){return new DataSourceTransactionManager(dataSource);}&#64;Bean&#64;Primarypublic SqlSessionTemplate sqlSessionTemplate1(&#64;Qualifier("sqlSessionFactory1") SqlSessionFactory sqlSessionFactory){return new SqlSessionTemplate(sqlSessionFactory);}
}

 

接下来我们配置第二个配置类

 

package com.demo.web.config.dataSource;import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.SqlSessionTemplate;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.jdbc.DataSourceBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
import org.springframework.jdbc.datasource.DataSourceTransactionManager;import javax.sql.DataSource;
/*** &#64;Description: 次数据源配置类* &#64;Author: 乔木* &#64;Date: 2019/6/5 0005*/
&#64;Configuration
&#64;MapperScan(basePackages
&#61; "com.demo.web.dao.dao2",sqlSessionFactoryRef &#61; "sqlSessionFactory2")
public class DatasourceConfig2 {&#64;Bean&#64;ConfigurationProperties(prefix &#61; "spring.datasource.datasource2")public DataSource dataSource2(){return DataSourceBuilder.create().build();}&#64;Beanpublic SqlSessionFactory sqlSessionFactory2(&#64;Qualifier("dataSource2") DataSource dataSource) throws Exception {SqlSessionFactoryBean bean &#61; new SqlSessionFactoryBean();bean.setDataSource(dataSource);bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath*:/config/mapper/mapper2/*.xml"));return bean.getObject();}&#64;Beanpublic DataSourceTransactionManager dataSourceTransactionManager2(&#64;Qualifier("dataSource2") DataSource dataSource){return new DataSourceTransactionManager(dataSource);}&#64;Beanpublic SqlSessionTemplate sqlSessionTemplate2(&#64;Qualifier("sqlSessionFactory2") SqlSessionFactory sqlSessionFactory){return new SqlSessionTemplate(sqlSessionFactory);}
}

 

 


 

写在后面&#xff1a;至此&#xff0c;springboot&#43;mybatis 使用oracle数据源就可以了。我们就可以根据业务需要&#xff0c;灵活操作不同的数据库啦。不过好像文中也没有提到mybatis 哈哈。这是我的第一篇博客&#xff0c;可能大家也看的出来&#xff0c;文采和技术显得粗糙。希望以后能养成写博客的习惯&#xff0c;快下班了&#xff0c;还要回去看函数极限和连续性&#xff0c;就到这了。

 

转:https://www.cnblogs.com/studentc/p/11078229.html



推荐阅读
  • r2dbc配置多数据源
    R2dbc配置多数据源问题根据官网配置r2dbc连接mysql多数据源所遇到的问题pom配置可以参考官网,不过我这样配置会报错我并没有这样配置将以下内容添加到pom.xml文件d ... [详细]
  • web.py开发web 第八章 Formalchemy 服务端验证方法
    本文介绍了在web.py开发中使用Formalchemy进行服务端表单数据验证的方法。以User表单为例,详细说明了对各字段的验证要求,包括必填、长度限制、唯一性等。同时介绍了如何自定义验证方法来实现验证唯一性和两个密码是否相等的功能。该文提供了相关代码示例。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 本文介绍了Oracle数据库中tnsnames.ora文件的作用和配置方法。tnsnames.ora文件在数据库启动过程中会被读取,用于解析LOCAL_LISTENER,并且与侦听无关。文章还提供了配置LOCAL_LISTENER和1522端口的示例,并展示了listener.ora文件的内容。 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • Spring学习(4):Spring管理对象之间的关联关系
    本文是关于Spring学习的第四篇文章,讲述了Spring框架中管理对象之间的关联关系。文章介绍了MessageService类和MessagePrinter类的实现,并解释了它们之间的关联关系。通过学习本文,读者可以了解Spring框架中对象之间的关联关系的概念和实现方式。 ... [详细]
  • GreenDAO快速入门
    前言之前在自己做项目的时候,用到了GreenDAO数据库,其实对于数据库辅助工具库从OrmLite,到litePal再到GreenDAO,总是在不停的切换,但是没有真正去了解他们的 ... [详细]
  • 如何在php文件中添加图片?
    本文详细解答了如何在php文件中添加图片的问题,包括插入图片的代码、使用PHPword在载入模板中插入图片的方法,以及使用gd库生成不同类型的图像文件的示例。同时还介绍了如何生成一个正方形文件的步骤。希望对大家有所帮助。 ... [详细]
  • Oracle Database 10g许可授予信息及高级功能详解
    本文介绍了Oracle Database 10g许可授予信息及其中的高级功能,包括数据库优化数据包、SQL访问指导、SQL优化指导、SQL优化集和重组对象。同时提供了详细说明,指导用户在Oracle Database 10g中如何使用这些功能。 ... [详细]
  • 本文详细介绍了MysqlDump和mysqldump进行全库备份的相关知识,包括备份命令的使用方法、my.cnf配置文件的设置、binlog日志的位置指定、增量恢复的方式以及适用于innodb引擎和myisam引擎的备份方法。对于需要进行数据库备份的用户来说,本文提供了一些有价值的参考内容。 ... [详细]
  • Oracle10g备份导入的方法及注意事项
    本文介绍了使用Oracle10g进行备份导入的方法及相关注意事项,同时还介绍了2019年独角兽企业重金招聘Python工程师的标准。内容包括导出exp命令、删用户、创建数据库、授权等操作,以及导入imp命令的使用。详细介绍了导入时的参数设置,如full、ignore、buffer、commit、feedback等。转载来源于https://my.oschina.net/u/1767754/blog/377593。 ... [详细]
  • Oracle seg,V$TEMPSEG_USAGE与Oracle排序的关系及使用方法
    本文介绍了Oracle seg,V$TEMPSEG_USAGE与Oracle排序之间的关系,V$TEMPSEG_USAGE是V_$SORT_USAGE的同义词,通过查询dba_objects和dba_synonyms视图可以了解到它们的详细信息。同时,还探讨了V$TEMPSEG_USAGE的使用方法。 ... [详细]
  • 本文介绍了在MySQL8.0中如何查看性能并解析SQL执行顺序。首先介绍了查询性能工具的开启方法,然后详细解析了SQL执行顺序中的每个步骤,包括from、on、join、where、group by、having、select distinct、union、order by和limit。同时还介绍了虚拟表的概念和生成过程。通过本文的解析,读者可以更好地理解MySQL8.0中的性能查看和SQL执行顺序。 ... [详细]
  • Imtryingtofigureoutawaytogeneratetorrentfilesfromabucket,usingtheAWSSDKforGo.我正 ... [详细]
author-avatar
手机用户2502904233
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有