Heim Datenbank MySQL-Tutorial spring中配置数据源_MySQL

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
Nach dem Login kopieren

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}" />
Nach dem Login kopieren

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 {      
    }
}
Nach dem Login kopieren

方式二:

<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> 

Nach dem Login kopieren

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>
Nach dem Login kopieren

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();
}
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

value值即JNDI的名称

方式二:

<bean id="queueTarget" class="org.springframework.jndi.JndiObjectTargetSource">
  <property name="jndiName">

    <value>queue/testQueue</value>
  </property>
</bean>
Nach dem Login kopieren

方式三:

如果不使用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
Nach dem Login kopieren

方式四:

使用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>
Nach dem Login kopieren

 


Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Power BI kann keine Verbindung herstellen. Beim Versuch, eine Verbindung herzustellen, ist ein Fehler aufgetreten Power BI kann keine Verbindung herstellen. Beim Versuch, eine Verbindung herzustellen, ist ein Fehler aufgetreten Feb 18, 2024 pm 05:48 PM

PowerBI kann auf Schwierigkeiten stoßen, wenn keine Verbindung zu einer Datenquelle hergestellt werden kann, bei der es sich um eine XLS-, SQL- oder Excel-Datei handelt. In diesem Artikel werden mögliche Lösungen untersucht, die Ihnen bei der Lösung dieses Problems helfen. In diesem Artikel erfahren Sie, was zu tun ist, wenn während des Verbindungsvorgangs Fehler oder Verbindungsfehler auftreten. Wenn Sie also mit diesem Problem konfrontiert sind, lesen Sie weiter und wir werden Ihnen einige nützliche Vorschläge unterbreiten. Was ist der Gateway-Verbindungsfehler in PowerBI? Gateway-Fehler in PowerBI werden häufig durch eine Nichtübereinstimmung zwischen den Datenquelleninformationen und dem zugrunde liegenden Datensatz verursacht. Um dieses Problem zu lösen, müssen Sie sicherstellen, dass die auf dem lokalen Datengateway definierte Datenquelle korrekt und mit der im PowerBI-Desktop angegebenen Datenquelle übereinstimmt. PowerBI kann keine Verbindung herstellen

Ausführliche Erläuterung der Schritte zur Implementierung von Batch-Einfügevorgängen mit MyBatis Ausführliche Erläuterung der Schritte zur Implementierung von Batch-Einfügevorgängen mit MyBatis Feb 22, 2024 pm 08:27 PM

Titel: So verwenden Sie MyBatis zum Implementieren von Batch-Einfügevorgängen. MyBatis ist ein hervorragendes Persistenzschicht-Framework, das in der Java-Entwicklung häufig verwendet wird. In der tatsächlichen Entwicklung stoßen wir häufig auf Situationen, in denen Daten stapelweise eingefügt werden müssen. In diesem Artikel wird anhand spezifischer Codebeispiele ausführlich beschrieben, wie MyBatis zum Implementieren von Stapeleinfügevorgängen verwendet wird. Schritt 1: Konfigurieren Sie MyBatis in das Projekt und konfigurieren Sie MyBatis-bezogene Informationen, einschließlich Datenbankverbindungsinformationen, Ma

Was bedeutet Datenquelle? Was bedeutet Datenquelle? Jul 25, 2022 am 11:31 AM

Datenquelle bedeutet „Datenbank oder Datenbankserver, die von Datenbankanwendungen verwendet wird“; Datenquelle ist auch die Datenquelle, bei der es sich um ein Gerät oder Originalmedium handelt, das bestimmte erforderliche Daten bereitstellt. Alle zum Herstellen einer Datenbankverbindung erforderlichen Informationen werden in den Daten gespeichert Quellinformationen: Durch Angabe des korrekten Datenquellennamens kann die entsprechende Datenbankverbindung gefunden werden.

Datenextraktion im Yii-Framework: Abrufen von Daten aus verschiedenen Datenquellen Datenextraktion im Yii-Framework: Abrufen von Daten aus verschiedenen Datenquellen Jun 21, 2023 am 11:37 AM

Mit der rasanten Entwicklung des Internets sind Daten zu einer wichtigen Ressource für die Unternehmensentwicklung geworden. Um Daten besser nutzen zu können, müssen wir Daten aus verschiedenen Datenquellen zur Analyse und Verarbeitung extrahieren. In diesem Artikel konzentrieren wir uns darauf, wie man Daten aus verschiedenen Datenquellen im Yii-Framework erhält. 1. Extrahieren Sie Daten aus der MySQL-Datenbank. MySQL ist derzeit eine der beliebtesten relationalen Datenbanken. Die Installation und Verwendung ist sehr einfach. Im Folgenden stellen wir vor, wie man Daten aus der MySQL-Datenbank im Yii-Framework extrahiert

Wie integriere ich externe Datenquellen in C++, um den Analyseprozess zu bereichern? Wie integriere ich externe Datenquellen in C++, um den Analyseprozess zu bereichern? Jun 01, 2024 pm 05:00 PM

Durch die Integration externer Datenquellen in C++ können die Möglichkeiten der Datenanalyse erheblich erweitert werden. Zu den Schritten gehören: Auswahl eines mit der Zieldatenquelle kompatiblen Connectors, Herstellen einer Verbindung gemäß den Anforderungen der Datenquelle und Verwendung von SQL zum Abfragen. Ein Beispiel für die Verwendung des ODBC-Connectors zur Verbindung mit MySQL zeigt, wie Datenergebnisse extrahiert werden. Die Integration externer Datenquellen bereichert den Analyseprozess und ermöglicht fundiertere Entscheidungen.

Machen Sie eine Bestandsaufnahme von mehr als 20 leistungsstarken und kostenlosen Datenquellen, die jeder zum Aufbau von KI nutzen kann Machen Sie eine Bestandsaufnahme von mehr als 20 leistungsstarken und kostenlosen Datenquellen, die jeder zum Aufbau von KI nutzen kann Jun 05, 2023 pm 02:29 PM

Wenn wir heute über künstliche Intelligenz in Wirtschaft und Gesellschaft sprechen, meinen wir eigentlich maschinelles Lernen. Maschinelles Lernen ist eine Anwendung, die einen Algorithmus (eine Reihe von Anweisungen) verwendet, um eine bestimmte Aufgabe immer besser auszuführen, da sie immer mehr für diese Aufgabe relevanten Daten ausgesetzt wird. Diese Aufgaben können von der Beantwortung von Fragen über das Erstellen von Texten oder Bildern (wie Apps wie ChatGPT oder Dall-E dies können) bis hin zum Erkennen von Bildern (Computer Vision) oder dem Navigieren eines selbstfahrenden Autos von Punkt A nach Punkt B reichen. Für alle diese Aufgaben sind Daten erforderlich, und Unternehmen, die ihre eigenen Algorithmen für maschinelles Lernen trainieren möchten, um Routineaufgaben zu automatisieren, benötigen eine Datenquelle. Welche Arten von Daten gibt es? Unternehmensdaten werden im Allgemeinen in zwei Kategorien unterteilt: interne und externe Daten

PHP PDO und ODBC: Verbindung zu verschiedenen Datenquellen PHP PDO und ODBC: Verbindung zu verschiedenen Datenquellen Feb 20, 2024 am 10:20 AM

PHPPDOPHPPDO (phpDataObjects) ist eine objektorientierte Abstraktionsschicht für den Datenzugriff, die es Entwicklern ermöglicht, über eine einheitliche Schnittstelle eine Verbindung zu verschiedenen Datenbankverwaltungssystemen (DBMS) herzustellen. Es bietet eine Standardmethode für die Interaktion mit einer Datenbank, unabhängig vom zugrunde liegenden DBMS. Vorteile von PDO: Einheitliche Schnittstelle: PDO bietet eine einheitliche API zum Verbinden, Ausführen von Abfragen und Erhalten von Ergebnissen und vereinfacht so die Interaktion mit verschiedenen DBMS. PreparedStatements: PDO unterstützt vorbereitete Anweisungen, was dazu beiträgt, SQL-Injection-Angriffe zu verhindern und die Leistung zu verbessern. Transaktionsunterstützung: PDO ermöglicht die Verwaltung von Transaktionen, um sicherzustellen, dass Datenbankvorgänge entweder alle erfolgreich sind oder alle fehlschlagen. Fehlerbehandlung :P

Verteilte Systeme als Datenquellen in der Go-Sprache Verteilte Systeme als Datenquellen in der Go-Sprache May 31, 2023 pm 11:51 PM

Mit dem Aufkommen des Internets und des Big-Data-Zeitalters sind Daten zu einem unverzichtbaren Bestandteil des Lebens der Menschen geworden. Große Unternehmen und Organisationen müssen riesige Datenmengen verarbeiten, um ihr Geschäft anzukurbeln. Für Datenwissenschaftler und Forscher hat die Suche nach zuverlässigen und effizienten Datenquellen oberste Priorität. Die Go-Sprache ist zu einer idealen Wahl für verteilte Systeme als Datenquellen geworden. Die Go-Sprache (kurz Golang) ist eine Programmiersprache, die sich an der gleichzeitigen Programmierung orientiert. Es wurde ursprünglich 2009 von Google entwickelt, um umfangreiche Anwendungen bereitzustellen

See all articles