Rumah pangkalan data tutorial mysql spring中配置数据源_MySQL

spring中配置数据源_MySQL

May 30, 2016 pm 05:10 PM
sumber data

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
Salin selepas log masuk

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}" />
Salin selepas log masuk

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 {      
    }
}
Salin selepas log masuk

方式二:

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

Salin selepas log masuk

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>
Salin selepas log masuk

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();
}
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk

value值即JNDI的名称

方式二:

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

    <value>queue/testQueue</value>
  </property>
</bean>
Salin selepas log masuk

方式三:

如果不使用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
Salin selepas log masuk

方式四:

使用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>
Salin selepas log masuk

 


Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Power BI tidak dapat menyambung, ralat telah ditemui semasa cuba menyambung Power BI tidak dapat menyambung, ralat telah ditemui semasa cuba menyambung Feb 18, 2024 pm 05:48 PM

PowerBI mungkin menghadapi kesukaran apabila ia tidak dapat menyambung ke sumber data yang merupakan fail XLS, SQL atau Excel. Artikel ini akan meneroka kemungkinan penyelesaian untuk membantu anda menyelesaikan isu ini. Artikel ini akan membimbing anda tentang perkara yang perlu dilakukan jika anda menghadapi ralat atau kegagalan sambungan semasa proses sambungan. Jadi, jika anda menghadapi masalah ini, teruskan membaca dan kami akan memberikan anda beberapa cadangan berguna. Apakah ralat sambungan get laluan dalam PowerBI? Ralat gerbang dalam PowerBI selalunya disebabkan oleh ketidakpadanan antara maklumat sumber data dan set data asas. Untuk menyelesaikan masalah ini, anda perlu memastikan bahawa sumber data yang ditakrifkan pada get laluan data setempat adalah tepat dan konsisten dengan sumber data yang dinyatakan dalam desktop PowerBI. PowerBI tidak dapat menyambung

Penjelasan terperinci tentang langkah-langkah untuk melaksanakan operasi Sisipan kelompok menggunakan MyBatis Penjelasan terperinci tentang langkah-langkah untuk melaksanakan operasi Sisipan kelompok menggunakan MyBatis Feb 22, 2024 pm 08:27 PM

Tajuk: Cara menggunakan MyBatis untuk melaksanakan operasi Sisipan kelompok MyBatis ialah rangka kerja lapisan kegigihan yang sangat baik yang digunakan secara meluas dalam pembangunan Java. Dalam pembangunan sebenar, kami sering menghadapi situasi di mana data perlu dimasukkan dalam kelompok Artikel ini akan memperkenalkan secara terperinci cara menggunakan MyBatis untuk melaksanakan operasi Sisipan kelompok, dengan contoh kod tertentu. Langkah 1: Konfigurasikan MyBatis Perkenalkan MyBatis ke dalam projek dan konfigurasikan maklumat berkaitan MyBatis, termasuk maklumat sambungan pangkalan data, Ma

Apakah maksud sumber data? Apakah maksud sumber data? Jul 25, 2022 am 11:31 AM

Sumber data bermaksud "pangkalan data atau pelayan pangkalan data yang digunakan oleh aplikasi pangkalan data" juga merupakan sumber data, iaitu peranti atau media asal yang menyediakan data tertentu yang diperlukan Semua maklumat yang diperlukan untuk mewujudkan sambungan pangkalan data disimpan dalam data sumber. Maklumat, dengan memberikan nama sumber data yang betul, sambungan pangkalan data yang sepadan boleh ditemui.

Pengekstrakan data dalam rangka kerja Yii: mendapatkan data daripada sumber data yang berbeza Pengekstrakan data dalam rangka kerja Yii: mendapatkan data daripada sumber data yang berbeza Jun 21, 2023 am 11:37 AM

Dengan perkembangan pesat Internet, data telah menjadi sumber penting untuk pembangunan perusahaan. Untuk menggunakan data dengan lebih baik, kami perlu mengekstrak data daripada sumber data yang berbeza untuk analisis dan pemprosesan. Dalam artikel ini, kami akan menumpukan pada cara mendapatkan data daripada sumber data yang berbeza dalam rangka kerja Yii. 1. Ekstrak data daripada pangkalan data MySQL MySQL adalah salah satu pangkalan data hubungan yang paling popular pada masa ini Pemasangan dan penggunaannya sangat mudah. Di bawah ini kami akan memperkenalkan cara mengekstrak data daripada pangkalan data MySQL dalam rangka kerja Yii

Bagaimana untuk mengintegrasikan sumber data luaran dalam C++ untuk memperkayakan proses analisis? Bagaimana untuk mengintegrasikan sumber data luaran dalam C++ untuk memperkayakan proses analisis? Jun 01, 2024 pm 05:00 PM

Mengintegrasikan sumber data luaran dalam C++ boleh mengembangkan keupayaan analisis data dengan banyak. Langkah-langkahnya termasuk: memilih penyambung yang serasi dengan sumber data sasaran, mewujudkan sambungan mengikut keperluan sumber data dan menggunakan SQL untuk membuat pertanyaan. Contoh menggunakan penyambung ODBC untuk menyambung ke MySQL menunjukkan cara mengekstrak hasil data. Mengintegrasikan sumber data luaran memperkayakan proses analisis dan membolehkan keputusan yang lebih termaklum.

Ambil stok lebih daripada 20 sumber data yang berkuasa dan percuma yang boleh digunakan oleh sesiapa sahaja untuk membina AI Ambil stok lebih daripada 20 sumber data yang berkuasa dan percuma yang boleh digunakan oleh sesiapa sahaja untuk membina AI Jun 05, 2023 pm 02:29 PM

Apabila kita bercakap tentang kecerdasan buatan dalam perniagaan dan masyarakat hari ini, kita benar-benar merujuk kepada pembelajaran mesin. Pembelajaran mesin ialah aplikasi yang menggunakan algoritma (satu set arahan) untuk menjadi lebih baik dan lebih baik dalam melaksanakan tugas tertentu kerana ia terdedah kepada lebih banyak data yang berkaitan dengan tugas itu. Tugasan ini boleh terdiri daripada menjawab soalan, mencipta teks atau imej (seperti yang boleh dilakukan oleh aplikasi seperti ChatGPT atau Dall-E) kepada mengenali imej (penglihatan komputer) atau menavigasi kereta pandu sendiri dari titik A ke titik B. Semua tugasan ini memerlukan data dan perniagaan yang ingin melatih algoritma pembelajaran mesin mereka sendiri untuk mengautomasikan tugas rutin akan memerlukan beberapa sumber data. Apakah jenis data yang ada? Data perusahaan secara amnya dibahagikan kepada dua kategori - data dalaman dan luaran

PHP PDO dan ODBC: Menyambung kepada pelbagai sumber data PHP PDO dan ODBC: Menyambung kepada pelbagai sumber data Feb 20, 2024 am 10:20 AM

PHPPDOPHPPDO (phpDataObjects) ialah lapisan abstraksi capaian data berorientasikan objek yang membolehkan pembangun menyambung ke pelbagai sistem pengurusan pangkalan data (DBMS) menggunakan antara muka bersatu. Ia menyediakan cara standard untuk berinteraksi dengan pangkalan data, tanpa mengira DBMS asas. Kelebihan PDO: Antara muka bersatu: PDO menyediakan API bersatu untuk menyambung, melaksanakan pertanyaan dan mendapatkan hasil, dengan itu memudahkan interaksi dengan DBMS yang berbeza. PreparedStatements: PDO menyokong kenyataan yang disediakan, yang membantu mencegah serangan suntikan SQL dan meningkatkan prestasi. Sokongan transaksi: PDO membenarkan pengurusan transaksi untuk memastikan operasi pangkalan data sama ada semuanya berjaya atau semuanya gagal. Ralat pengendalian :P

Sistem teragih sebagai sumber data dalam bahasa Go Sistem teragih sebagai sumber data dalam bahasa Go May 31, 2023 pm 11:51 PM

Dengan kemunculan Internet dan era data besar, data telah menjadi bahagian yang sangat diperlukan dalam kehidupan orang ramai. Perniagaan dan organisasi yang besar perlu memproses set data yang besar untuk meningkatkan perniagaan mereka. Bagi saintis data dan penyelidik, mencari sumber data yang boleh dipercayai dan cekap adalah keutamaan. Bahasa Go telah menjadi pilihan ideal untuk sistem teragih sebagai sumber data. Bahasa Go (pendek kata Golang) ialah bahasa pengaturcaraan yang berorientasikan pengaturcaraan serentak. Ia pada asalnya dibangunkan oleh Google pada tahun 2009 untuk menyediakan aplikasi berskala besar

See all articles