Apache Tomcat - Database Connection pooling
In Apache Tomcat je kunt doen Database Connection pooling waar in het beheer van de server zal geen van de verbindingen met de database. In dit artikel zullen we weten hoe we kunnen Database Connection pooling te bereiken met behulp van Apache Tomcat.
OPMERKING:
Hier ben ik laten zien als mijn MySql-database, kunnen ontwikkelaars hetzelfde resultaat met behulp van een andere Database Engine ze er maar voor de database connectie string. Ook ben ik het creëren van een Web Application Context .
Database Connection pooling is een 2 stappen:
1) Het toevoegen van Database Resource in Web Application Context
2) Vervoer / het lezen van de JDBC-verbinding in Java
Database Resource toevoegen in Web Application Context:
Ik neem aan dat je weet hoe je nieuwe Application Context maken in Apache Tomcat, weet nog niet dan kunt u door middel van dit artikel . Hier moeten we een extra tag zogenaamde "bron" binnen context toe te voegen.
docBase = "/home/hitesh/test/web" reloadable = "true" > <context path = "/test" Docbase = "/home/hitesh/test/web" oplaadbaar "true" => prefix = "localhost_test_log." suffix = ".txt" timestamp = "true" /> <logger className = "org.apache.catalina.logger.FileLogger" prefix = "localhost_test_log." suffix = ".txt" timestamp = "true" /> auth = "Container" type = "javax.sql.DataSource" username = "test" password = "test" driverClassName = "org.gjt.mm.mysql.Driver" url = "jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true" maxActive = "100" maxIdle = "30" /> <Resource naam = "jdbc / test" auth = "Container" type = "javax.sql.DataSource" username = "test" password = "test" driverClassName = "org.gjt.mm.mysql.Driver" url = "jdbc : mysql: / / 127.0.0.1:3306 / test? useUnicode = true & Tekencodering = UTF-8 & autoReconnect = true "maxActive =" 100 "maxIdle =" 30 "/> </ Context>
Hier als je kunt zien heb ik een bron toegevoegd tag bevat alle essentiële informatie die nodig is voor verbinding met de database. Ontwikkelaar moet driverClassName veranderen en url Incase ze met behulp van andere Database Engine.
Vervoer / lezen van de JDBC Connection in Java:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 | ; com.hiteshagrawal pakket; ; invoer javax.naming .*; ; invoer java.sql .*; ; invoer javax.sql .*; ; invoer java.io. *; openbare laatste klasse ConnectionManager ( null ; particuliere DataSource ds = null; openbare ConnectionManager getDatabaseInstance () ( null ; Context ctx = null; null ; String DataSource = null; is = null ; Java. io. inputlijn is = null; null != ds ) { Als (null, = DS) ( terug ds; ) try ( InitialContext ( ) ; CTX = new InitialContext (); null == ctx ) { if (null == CTX) ( ( "Context is null. Error in connecting to the datasource." ) ; throw new Exception ("Context is nietig. Fout in de verbinding met de gegevensbron."); ) . getResourceAsStream ( "jdbc" ) ; is = DBConnection. klas. getResourceAsStream ("JDBC"); is == null ) { if (is == null) ( DataSource ) ctx. lookup ( "java:comp/env/jdbc/test" ) ; ds = (DataSource) CTX. lookup ("java: comp / env / JDBC / test"); { ) Else ( String ( convertStreamToString ( is ) ) . trim ( ) ; DataSource = new String (convertStreamToString (is)). trim (); DataSource ) ctx. lookup ( datasource ) ; ds = (DataSource) CTX. lookup (datasource); ) ( Exception e ) { ) Catch (Exception e) ( ; e. printStackTrace (); ) terug ds; ) getDatabaseConnection ( ) { openbare verbinding getDatabaseConnection () ( null ; Connection con = null; try ( ( ) ; con = ds. getConnection (); ( Exception e ) { ) Catch (Exception e) ( ; e. printStackTrace (); ) return con; ) convertStreamToString ( InputStream is ) { private String convertStreamToString (inputlijn is) ( new BufferedReader ( new InputStreamReader ( is ) ) ; BufferedReader reader = nieuwe BufferedReader (nieuw InputStreamReader (is)); StringBuilder ( ) ; StringBuilder sb = new StringBuilder (); null ; String lijn = null; try ( line = reader. readLine ( ) ) != null ) { while ((lijn = lezer. readline ())! = null) ( line + " \n " ) ; sb. append (lijn + "\ n"); ) ( IOException e ) { ) Catch (IOException e) ( ; e. printStackTrace (); { ) (Uiteindelijk try ( ; wordt. close (); ( IOException e ) { ) Catch (IOException e) ( ; e. printStackTrace (); ) ) ( ) ; terug sb. toString (); ) ) |
Code Uitleg:
getDatabaseInstance () functie zal zoeken voor de resource naam die u hebt gedefinieerd in uw Web Application Context. U kunt ook opslaan in dezelfde eigenschappen bestand of binnen WEB-INF map.
getDatabaseConnection ()-functie is verantwoordelijk voor het verkrijgen van nieuwe database verbinding van het zwembad.
convertStreamToString () functie zal inputlijn converteren naar String.



































