spring中配置数据源_MySQL
spring中配置数据源的几种常见方式:
#mysql 数据库配置(jdbc.properties) jdbc.driverClassName=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3306/databaseName?useUnicode=true&characterEncoding=UTF-8 jdbc.username=root jdbc.password=root
1.使用spring自带的数据源org.springframework.jdbc.datasource.DriverManagerDataSource;
方式一:
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer" p:location="/WEB-INF/jdbc.properties" /> <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource" p:driverClassName="${jdbc.driverClassName}" p:url="${jdbc.url}" p:username="${jdbc.username}" p:password="${jdbc.password}" />
p标记需要:xmlns:p="http://www.springframework.org/schema/p"
DriverManagerDataSource源码实现:
public class DriverManagerDataSource extends AbstractDriverBasedDataSource { public DriverManagerDataSource() { } public DriverManagerDataSource(String url) { } public DriverManagerDataSource(String url, String username, String password) { } public DriverManagerDataSource(String url, Properties conProps) { } public void setDriverClassName(String driverClassName) { } protected Connection getConnectionFromDriver(Properties props) throws SQLException { } protected Connection getConnectionFromDriverManager(String url, Properties props) throws SQLException { } }
方式二:
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver" /> <property name="url" value="jdbc:oracle:thin:@127.0.0.1:1521:ORCL" /> <property name="username" value="root" /> <property name="password" value="root" /> </bean>
2.DBCP数据源;
DBCP(DataBase connection pool)。是 apache 上的一个 java 连接池项目,也是 tomcat 使用的连接池组件。单独使用dbcp需要2个包:commons-dbcp.jar,commons-pool.jar由于建立数据库连接是一个非常耗时耗资源的行为,所以通过连接池预先同数据库建立一些连接,放在内存中,应用程序需要建立数据库连接时直接到连接池中申请一个就行,用完后再放回去。
<bean id="dataSource" destroy-method="close" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName" value="${jdbc.driverClassName}" /> <property name="url" value="${jdbc.url}" /> <property name="username" value="${jdbc.username}" /> <property name="password" value="${jdbc.password}" /> </bean>
DBCP实现:
class JdbcUtil { private static BasicDataSource bds; static { if(bds==null) { bds= new BasicDataSource(); } //分别设置数据库的连接参数 bds.setDriverClassName(); bds.setUrl(); bds.setUsername(); bds.setPassword(); } public static Connection getConnection() { return bds.getConnection(); }
3.C3P0数据源;
C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。目前使用它的有Hibernate,Spring等。
依赖jar包:c3p0-0.9.1.jar、c3p0-0.9.1.2.jar、c3p0-0.9.1-pre6.jar
c3p0与dbcp区别:
dbcp没有自动回收空闲连接的功能
c3p0有自动回收空闲连接功能
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close"> <property name="driverClass"><value>oracle.jdbc.driver.OracleDriver</value></property> <property name="jdbcUrl"><value>jdbc:oracle:thin:@localhost:1521:Test</value></property> <property name="user"><value>root</value></property> <property name="password"><value>root</value></property> <!--连接池中保留的最小连接数。--> <property name="minPoolSize" value="10" /> <!--连接池中保留的最大连接数。Default: 15 --> <property name="maxPoolSize" value="100" /> <!--最大空闲时间,1800秒内未使用则连接被丢弃。若为0则永不丢弃。Default: 0 --> <property name="maxIdleTime" value="1800" /> <!--当连接池中的连接耗尽的时候c3p0一次同时获取的连接数。Default: 3 --> <property name="acquireIncrement" value="3" /> <property name="maxStatements" value="1000" /> <property name="initialPoolSize" value="10" /> <!--每60秒检查所有连接池中的空闲连接。Default: 0 --> <property name="idleConnectionTestPeriod" value="60" /> <!--定义在从数据库获取新连接失败后重复尝试的次数。Default: 30 --> <property name="acquireRetryAttempts" value="30" /> <property name="breakAfterAcquireFailure" value="true" /> <property name="testConnectionOnCheckout" value="false" /> </bean>
4.JNDI数据源;
如果应用配置在高性能的应用服务器(如WebLogic或Websphere等)上,我们可能更希望使用应用服务器本身 提供的数据源。应用服务器的数据源 使用JNDI开放调用者使用,Spring为此专门提供引用JNDI资源的 JndiObjectFactoryBean类。下面是一个简单的配置:
方式一:
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean"> <property name="jndiName" value="java:comp/env/jdbc/bbt"/> </bean>
value值即JNDI的名称
方式二:
<bean id="queueTarget" class="org.springframework.jndi.JndiObjectTargetSource"> <property name="jndiName"> <value>queue/testQueue</value> </property> </bean>
方式三:
如果不使用JndiTemplate实现InitialContext环境变量的配置,则需要jndi.properties文件(放在classpath中,一般放在src下面),内容如下
java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory java.naming.provider.url=jnp://localhost:1099 java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
方式四:
使用JndiTemplate实现InitialContext环境变量的配置,例如
<bean id="queueTarget" class="org.springframework.jndi.JndiObjectTargetSource"> <property name="jndiName"> <value>queue/testQueue</value> </property> <property name="jndiTemplate"> <ref local="jndiTemplate"/> </property> </bean> <bean id="jndiTemplate" class="org.springframework.jndi.JndiTemplate"> <property name="environment"> <props> <prop key="java.naming.factory.initial">org.jnp.interfaces.NamingContextFactory</prop> <prop key="java.naming.provider.url">jnp://localhost:1099</prop> <prop key="java.naming.factory.url.pkgs">org.jboss.naming:org.jnp.interfaces</prop> </props> </property> </bean>

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

当PowerBI无法连接到XLS、SQL或Excel文件的数据源时,可能会遇到困难。本文将探讨可能的解决方案,以帮助您解决这一问题。如果您在连接过程中遇到错误或连接失败的情况,本文将指导您采取一些措施。因此,如果您面临这个问题,请继续阅读,我们将为您提供一些有用的建议。PowerBI中的网关连接错误是什么?PowerBI中的网关错误通常是由数据源信息与底层数据集不匹配引起的。要解决这个问题,需要确保本地数据网关上定义的数据源与PowerBI桌面中指定的数据源是准确且一致的。PowerBI无法连接

标题:如何使用MyBatis实现批量Insert操作MyBatis是一款优秀的持久层框架,广泛应用于Java开发中。在实际开发中,经常会遇到需要批量插入数据的情况,本文将详细介绍如何使用MyBatis来实现批量Insert操作,并附带具体的代码示例。步骤一:配置MyBatis在项目中引入MyBatis,并配置MyBatis的相关信息,包括数据库连接信息、Ma

数据源的意思是“数据库应用程序所使用的数据库或者数据库服务器”;数据源也即数据的来源,是提供某种所需要数据的器件或原始媒体,在数据源中存储了所有建立数据库连接的信息,通过提供正确的数据源名称,可以找到相应的数据库连接。

随着互联网的迅猛发展,数据已经成为了企业发展的重要资源。为了更好地利用数据,我们需要将数据从不同的数据源中提取出来进行分析和处理。在这篇文章中,我们将重点介绍如何在Yii框架中从不同的数据源中获取数据。一、从MySQL数据库中提取数据MySQL是目前最流行的关系型数据库之一,它的安装和使用非常简单。下面我们将介绍如何在Yii框架中从MySQL数据库中提取数据

C++中集成外部数据源可大幅拓展数据分析能力。步骤包括:选择与目标数据源兼容的连接器,根据数据源要求建立连接,并使用SQL进行查询。一个使用ODBC连接器连接MySQL的实例显示如何提取数据结果。集成外部数据源可丰富分析过程、做出更明智的决策。

当我们谈论当今商业领域和社会中的人工智能时,我们其实指的是机器学习。机器学习是一种应用,通过使用算法(一组指令)变得越来越擅长执行某项特定任务,因为它接触了越来越多与这项任务相关的数据。这些任务可以是任何任务,从回答问题、创建文本或图像(如ChatGPT或Dall-E等应用所能做的)到识别图像(计算机视觉)或者把自动驾驶汽车从A地导航到B地。所有这些任务都需要数据,那些想要训练自己的机器学习算法以自动执行日常任务的企业,他们需要一些数据源。有哪些类型的数据?企业数据通常分为两类——内部数据和外部

PHPPDOPHPPDO(phpDataObjects)是一个面向对象的数据访问抽象层,允许开发者使用统一的接口连接到各种数据库管理系统(DBMS)。它提供了与数据库交互的标准方法,无论底层的DBMS是何种。PDO的优点:统一接口:PDO提供统一的api,用于连接、执行查询和获取结果,从而简化了与不同DBMS的交互。PreparedStatements:PDO支持预处理语句,这有助于防止sql注入攻击并提高性能。事务支持:PDO允许管理事务,确保数据库操作要么全部成功,要么全部失败。错误处理:P

随着互联网和大数据时代的到来,数据已经成为了人们生活中不可或缺的一部分。大型企业和组织需要处理庞大的数据集来促进业务发展。对于数据科学家和研究人员来说,寻找可靠、高效的数据源是他们的首要任务。而Go语言则成为了分布式系统作为数据源的理想选择。Go语言(简称Golang)是一种面向并发编程的编程语言。它最初由Google在2009年开发,旨在为大型应用程序提供
