Analyse von 2 Implementierungsmethoden zum Konfigurieren der JNID-Datenquelle in Tomcatc3p0

Analyse von 2 Implementierungsmethoden zum Konfigurieren der JNID-Datenquelle in Tomcatc3p0

Verwenden von c3p0

Importieren Sie das c3p0jar-Paket

<!-- https://mvnrepository.com/artifact/com.mchange/c3p0 -->
  <Abhängigkeit>
   <groupId>com.mchange</groupId>
   <artifactId>c3p0</artifactId>
   <version>0.9.5.2</version>
  </Abhängigkeit>

Fügen Sie der Datei context.xml von Tomcat eine Datenquellenkonfiguration hinzu

<Ressource 
    auth="Behälter" 
    Beschreibung="DB-Verbindung" 
    TreiberClass="com.mysql.jdbc.Driver" 
    maxPoolgröße="100" minPoolgröße="2" 
    acquireIncrement="2" 
    Name="jdbc/meineDB" 
    Benutzer="root" 
    Passwort="123456" 
    Fabrik="org.apache.naming.factory.BeanFactory" 
    Typ="com.mchange.v2.c3p0.ComboPooledDataSource" 
    jdbcUrl="jdbc:mysql://localhost:3306/attendance_system?characterEncoding=utf8&serverTimezone=GMT%2B8" />

Sei verbunden

geschützt void doGet(HttpServletRequest-Anforderung, HttpServletResponse-Antwort)
      wirft ServletException, IOException {
    versuchen {
      //KontextKontext erstellen context=new InitialContext();
      //Datenquelle abrufen ComboPooledDataSource comboPooledDataSource= (ComboPooledDataSource) context.lookup
          ("java:comp/env/jdbc/myDB");
      //Datenbankverbindung abrufen Connection connection=comboPooledDataSource.getConnection();
      
      wenn(!connection.isClosed()){
        System.out.println("Verbindung erfolgreich hergestellt");
      }
    } Fang (NamingException e) {
      e.printStackTrace();
    } Fang (SQLException e) {
      e.printStackTrace();
    }
  }

Druiden verwenden

JAR-Paket importieren

 <!-- https://mvnrepository.com/artifact/com.alibaba/druid -->
  <Abhängigkeit>
   <groupId>com.alibaba</groupId>
   <artifactId>Druide</artifactId>
   <version>1.1.16</version>
  </Abhängigkeit>

Fügen Sie der Datei context.xml von Tomcat eine Datenquellenkonfiguration hinzu

<Ressource
  Name="jdbc/MysqlDataSource"
  Fabrik="com.alibaba.druid.pool.DruidDataSourceFactory"
  auth="Behälter"
  Typ="javax.sql.DataSource"
  TreiberKlassenname="com.mysql.cj.jdbc.Treiber"
  url="jdbc:mysql://localhost:3306/yl?characterEncoding=utf8&serverTimezone=GMT%2B8"
  Benutzername="root"
  Passwort="123456"
  maxActive="50"
  maxWartezeit="10000"
  entfernenabandoned="true"
  entfernenabandonedtimeout="60"
  logabandoned="false"
  Filter = "stat"/>

Sei verbunden

geschützt void doGet(HttpServletRequest-Anforderung, HttpServletResponse-Antwort)
      wirft ServletException, IOException {
    versuchen {
      //Holen Sie sich das Kontextobjekt Context context=new InitialContext();
      //Datenquelle abrufen DataSource ds= (DataSource) context.lookup("java:comp/env/jdbc/MysqlDataSource");
      //Holen Sie sich das Verbindungsobjekt Connection connection=ds.getConnection();
​
      wenn(!connection.isClosed()){
        System.out.println("Verbindung erfolgreich");
​
      }
    } Fang (NamingException e) {
      e.printStackTrace();
    } Fang (SQLException e) {
      e.printStackTrace();
    }
  }

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • Einführung in die Prinzipien, Konfiguration und Verwendung von Tomcat-Datenquellen
  • Tomcat-Datenquellen-Konfigurationsmethode_JBuilder
  • Drei Möglichkeiten zum Konfigurieren einer JNDI-Datenquelle in Tomcat

<<:  MySQL-Schnellwiederherstellungslösung basierend auf dem Zeitpunkt

>>:  Beispielcode zur Verwendung der Elementkalenderkomponente in Vue

Artikel empfehlen

Das WeChat-Applet realisiert den Effekt des Siebschüttelns

In diesem Artikel wird der spezifische Code des W...

Vue muss Wissenspunkte lernen: die Verwendung von forEach()

Vorwort Bei der Frontend-Entwicklung stoßen wir h...

Methoden und Probleme zum Festlegen des HTML-Zeilenabstands

Um den Zeilenabstand von <p></p> festz...

Lösung für das Problem ungültiger Breiteneinstellungen für Label und Span

Standardmäßig ist die Einstellung der Breite für B...

Detaillierte Erklärung des Sandbox-Mechanismus von Vue3

Inhaltsverzeichnis Vorwort Browser kompilierte Ve...

Ausführliche Erklärung zum Currying von JS-Funktionen

Inhaltsverzeichnis 1. Ergänzende Wissenspunkte: i...

Detaillierte Erklärung der Docker-Nutzung unter CentOS8

1. Installation von Docker unter CentOS8 curl htt...

Einfaches Anwendungsbeispiel für eine rekursive Vue-Komponente

Vorwort Ich glaube, dass viele Studenten bereits ...

Reagieren Sie mit Beispielcode zur Implementierung des Anmeldeformulars

Als Vue-Benutzer ist es an der Zeit, React zu erw...

Proxy_pass-Methode in mehreren if in Nginx-Standorten

1. Lassen Sie uns zunächst das relevante Wissen z...

Implementierung der Webpack-Codefragmentierung

Inhaltsverzeichnis Hintergrund CommonsChunkPlugin...