spring中配置数据源_MySQL

May 30, 2016 pm 05:10 PM
情報元

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>
ログイン後にコピー

 


このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Power BI に接続できません。接続中にエラーが発生しました。 Power BI に接続できません。接続中にエラーが発生しました。 Feb 18, 2024 pm 05:48 PM

PowerBI は、XLS、SQL、または Excel ファイルのデータ ソースに接続できない場合に問題が発生することがあります。この記事では、この問題を解決するために考えられる解決策を検討します。この記事では、接続プロセス中にエラーや接続障害が発生した場合の対処方法について説明します。したがって、この問題に直面している場合は、読み続けてください。役立つ提案がいくつか提供されます。 PowerBI のゲートウェイ接続エラーとは何ですか? PowerBI のゲートウェイ エラーは、多くの場合、データ ソース情報と基になるデータセットの不一致によって発生します。この問題を解決するには、ローカル データ ゲートウェイで定義されたデータ ソースが正確であり、PowerBI デスクトップで指定されたデータ ソースと一貫性があることを確認する必要があります。 PowerBI に接続できません

MyBatis を使用してバッチ挿入操作を実装する手順の詳細な説明 MyBatis を使用してバッチ挿入操作を実装する手順の詳細な説明 Feb 22, 2024 pm 08:27 PM

タイトル: MyBatis を使用してバッチ挿入操作を実装する方法 MyBatis は、Java 開発で広く使用されている優れた永続層フレームワークです。実際の開発ではデータを一括で挿入する場面がよくありますが、この記事ではMyBatisを使って一括で挿入操作を実装する方法を具体的なコード例を交えて詳しく紹介します。ステップ 1: MyBatis の構成 MyBatis をプロジェクトに導入し、データベース接続情報などの MyBatis 関連情報を構成します。

データソースとはどういう意味ですか? データソースとはどういう意味ですか? Jul 25, 2022 am 11:31 AM

データ ソースとは、「データベース アプリケーションによって使用されるデータベースまたはデータベース サーバー」を意味します。データ ソースは、特定の必要なデータを提供するデバイスまたは元のメディアであるデータのソースでもあります。データベース接続を確立するために必要なすべての情報は、データに保存されます。正しいデータ ソース名を指定すると、対応するデータベース接続が見つかります。

Yii フレームワークでのデータ抽出: さまざまなデータソースからデータを取得する Yii フレームワークでのデータ抽出: さまざまなデータソースからデータを取得する Jun 21, 2023 am 11:37 AM

インターネットの急速な発展に伴い、データは企業の発展にとって重要なリソースとなっています。データをより有効に活用するには、分析と処理のためにさまざまなデータ ソースからデータを抽出する必要があります。この記事では、Yii フレームワークでさまざまなデータソースからデータを取得する方法に焦点を当てます。 1. MySQL データベースからデータを抽出する MySQL は現在最も人気のあるリレーショナル データベースの 1 つであり、インストールと使用は非常に簡単です。以下では、Yii フレームワークで MySQL データベースからデータを抽出する方法を紹介します。

外部データ ソースを C++ に統合して分析プロセスを強化するにはどうすればよいですか? 外部データ ソースを C++ に統合して分析プロセスを強化するにはどうすればよいですか? Jun 01, 2024 pm 05:00 PM

外部データ ソースを C++ に統合すると、データ分析機能が大幅に拡張されます。手順には、ターゲット データ ソースと互換性のあるコネクタの選択、データ ソースの要件に従って接続の確立、SQL を使用したクエリが含まれます。 ODBC コネクタを使用して MySQL に接続する例では、データ結果を抽出する方法を示します。外部データ ソースを統合すると、分析プロセスが強化され、より多くの情報に基づいた意思決定が可能になります。

誰でも AI の構築に使用できる 20 を超える強力な無料データ ソースを確認します。 誰でも AI の構築に使用できる 20 を超える強力な無料データ ソースを確認します。 Jun 05, 2023 pm 02:29 PM

今日、ビジネスや社会で人工知能について話すとき、私たちは実際には機械学習を指します。機械学習は、アルゴリズム (一連の命令) を使用して、特定のタスクに関連するデータにさらされるにつれて、そのタスクの実行がますます向上するアプリケーションです。これらのタスクは、質問に答えること、テキストや画像を作成すること (ChatGPT や Dall-E などのアプリで実行できること)、画像を認識すること (コンピューター ビジョン)、または自動運転車を地点 A から地点 B までナビゲートすることまで、さまざまです。これらすべてのタスクにはデータが必要であり、日常的なタスクを自動化するために独自の機械学習アルゴリズムをトレーニングしたい企業には、何らかのデータ ソースが必要になります。どのような種類のデータがありますか?企業データは通常、内部データと外部データの 2 つのカテゴリに分類されます。

PHP PDO と ODBC: さまざまなデータ ソースへの接続 PHP PDO と ODBC: さまざまなデータ ソースへの接続 Feb 20, 2024 am 10:20 AM

PHPPDOPHPPDO (phpDataObjects) は、開発者が統一インターフェイスを使用してさまざまなデータベース管理システム (DBMS) に接続できるようにするオブジェクト指向のデータ アクセス抽象化レイヤーです。これは、基盤となる DBMS に関係なく、データベースと対話するための標準的な方法を提供します。 PDO の利点: 統合インターフェイス: PDO は、接続、クエリの実行、結果の取得のための統合 API を提供するため、さまざまな DBMS との対話が簡素化されます。 PreparedStatements: PDO は、SQL インジェクション攻撃を防止し、パフォーマンスを向上させるのに役立つプリペアド ステートメントをサポートします。トランザクションのサポート: PDO を使用すると、トランザクションを管理して、データベース操作がすべて成功するかすべて失敗するかを確認できます。エラー処理:P

Go 言語のデータソースとしての分散システム Go 言語のデータソースとしての分散システム May 31, 2023 pm 11:51 PM

インターネットとビッグデータ時代の到来により、データは人々の生活に欠かせないものになりました。大企業や組織は、ビジネスを促進するために膨大なデータセットを処理する必要があります。データ サイエンティストや研究者にとって、信頼性が高く効率的なデータ ソースを見つけることは最優先事項です。 Go 言語は、分散システムのデータ ソースとして理想的な選択肢となっています。 Go 言語 (略して Golang) は、同時プログラミングを指向したプログラミング言語です。もともとは、大規模なアプリケーションを提供するために 2009 年に Google によって開発されました。

See all articles