Tomcat5 Configures MySQL JDBC Database Connection Pool

xiaoxiao2021-03-06  55

If you just interested in mysql, you can use this short message. If you want to configure the connection pool of other database types, you can also use simple modification parameters.

1, install Tomcat

Refer to the Tomcat for WINDOW installation wizard, it is basically directly installed. Note: Enter the management username and password when installing, this is the username and password used later, remember.

2, install MySQL

The default is installed.

3, use Tomcat's Web Management Application Configure Data Source

Start the Tomcat server, open the browser, enter http: // localhost: 8080 / admin / (where localhost may be a machine's IP or server name), enter the login page of the management interface, please enter the original installation requirement Enter the username and password, log in to the management interface,

Select Resources-Data Sources to enter the configuration data source interface, select Data Source Actions -> Select Create New Data Source to enter the configuration details interface, the content is as follows: JNDI Name: JDBC / MySQL Data Source URL: JDBC: mysql: //192.168. 0.16 / subrdb jdbc driver class: org.gjt.mm.mysql.driver user name: root password: ******** Max. Active Connections: 4 max. Idle Connections: 2 max. Wait for Connection: 500 Validation Query:

The information requested by JNDI Name is required, in which other other can be filled in according to your needs. For example, the content of the Data Source URL may be: jdbc: mysql: // ip or name / databasename, where DatabaseName is your database name, IP is the IP or name of the server where your database is located. Finally click Save-> Commit Change. So your basic data of your data source is half configured.

4, Web.xml and% Tomcat_Home% / conf / Catalina / LocalHost, corresponding to your reference configuration file modification

Navigate through the folder to% tomcat_home / conf, open web.xml, add the following in front of ::

DB Connection

jdbc / mysql

javax.sql.datasource

container

Note that the content fill in RES-REF-NAME is consistent with the JNDI Name name mentioned above.

Navigate through the folder to% tomcat_home / conf / Catalina / localhost, find the .xml file corresponding to your web application, such as root.xml, and add the code under this file:

to here, the configuration work is basically completed.

5, other considerations

Don't forget the JDBC driver mysql-connection-bin.ja must be placed to Tomcat's corresponding directory, your JDBC driver may be high, but as long as you can correspond to the mysql used Yes, because I found that the version of the JDBC driver that does not support 4.0. * Version of the MySQL database, it is recommended to place under the% Tomcat_Home / Common / LIB and the application of Web-INF / LIB. What is the difference between the two? In fact, I will understand that Common / Li is all applications where all applications can be used.

Restart your Tomcat service.

6, write test code

Create a Test.jsp file in the application's directory, the code is as follows:

"http://www.w3.org/tr/rec-html40/strict.dtd">

<% @ Page Import = "java.sql. *"%>

<% @ Page Import = "javax.sql. *"%>

<% @ Page Import = "javax.naming. *"%>

<% @ Page session = "false"%>

</ title></p> <p><%</p> <p>Out.print ("My Test Start");</p> <p>DataSource DS = NULL;</p> <p>Try {</p> <p>InitialContext CTX = New InitialContext ();</p> <p>DS = (DataSource) CTX.lookup ("Java: Comp / Env / JDBC / MySQL");</p> <p>Connection conn = ds.getConnection ();</p> <p>Statement Stmt = conn.createstatement ();</p> <p>// Tip: Users must be a table for the database,</p> <p>// The database mentioned in the Data Source URL configuration herein is included in the database.</p> <p>String strsql = "select * from users";</p> <p>ResultSet RS = Stmt.executeQuery (strsql);</p> <p>While (rs.next ()) {</p> <p>Out.print (Rs.getstring (1));</p> <p>}</p> <p>Out.print ("My Test ends");</p> <p>}</p> <p>Catch (Exception EX) {</p> <p>Out.print ("Exception Exceptions, information is:" ex.getMessage ());</p> <p>EX.PrintStackTrace ();</p> <p>}</p> <p>%></p> <p></ hEAD></p> <p><body></p> <p></ body></p> <p></ html></p> <p>operation result:</p> <p>My test starts 12345678 My test ends because my RS.Getstring (1) is stored in the database 123456787, summary</p> <p>The configuration process and its simple understanding, these configurations are exempt from the developers to write the pain of the data source to connect the pool, which is also a strong support for the development process.</p></div><div class="text-center mt-3 text-grey"> 转载请注明原文地址:https://www.9cbs.com/read-111798.html</div><div class="plugin d-flex justify-content-center mt-3"></div><hr><div class="row"><div class="col-lg-12 text-muted mt-2"><i class="icon-tags mr-2"></i><span class="badge border border-secondary mr-2"><h2 class="h6 mb-0 small"><a class="text-secondary" href="tag-2.html">9cbs</a></h2></span></div></div></div></div><div class="card card-postlist border-white shadow"><div class="card-body"><div class="card-title"><div class="d-flex justify-content-between"><div><b>New Post</b>(<span class="posts">0</span>) </div><div></div></div></div><ul class="postlist list-unstyled"> </ul></div></div><div class="d-none threadlist"><input type="checkbox" name="modtid" value="111798" checked /></div></div></div></div></div><footer class="text-muted small bg-dark py-4 mt-3" id="footer"><div class="container"><div class="row"><div class="col">CopyRight © 2020 All Rights Reserved </div><div class="col text-right">Processed: <b>0.039</b>, SQL: <b>9</b></div></div></div></footer><script src="./lang/en-us/lang.js?2.2.0"></script><script src="view/js/jquery.min.js?2.2.0"></script><script src="view/js/popper.min.js?2.2.0"></script><script src="view/js/bootstrap.min.js?2.2.0"></script><script src="view/js/xiuno.js?2.2.0"></script><script src="view/js/bootstrap-plugin.js?2.2.0"></script><script src="view/js/async.min.js?2.2.0"></script><script src="view/js/form.js?2.2.0"></script><script> var debug = DEBUG = 0; var url_rewrite_on = 1; var url_path = './'; var forumarr = {"1":"Tech"}; var fid = 1; var uid = 0; var gid = 0; xn.options.water_image_url = 'view/img/water-small.png'; </script><script src="view/js/wellcms.js?2.2.0"></script><a class="scroll-to-top rounded" href="javascript:void(0);"><i class="icon-angle-up"></i></a><a class="scroll-to-bottom rounded" href="javascript:void(0);" style="display: inline;"><i class="icon-angle-down"></i></a></body></html><script> var forum_url = 'list-1.html'; var safe_token = 'q0BSxOMJltvqm2yu826ggb7B3l0_2FtLqGPy_2Bib0cIeOlCpCNX_2Fyp0ka95zyIG1_2BhIt24nrvohYtEeliev'; var body = $('body'); body.on('submit', '#form', function() { var jthis = $(this); var jsubmit = jthis.find('#submit'); jthis.reset(); jsubmit.button('loading'); var postdata = jthis.serializeObject(); $.xpost(jthis.attr('action'), postdata, function(code, message) { if(code == 0) { location.reload(); } else { $.alert(message); jsubmit.button('reset'); } }); return false; }); function resize_image() { var jmessagelist = $('div.message'); var first_width = jmessagelist.width(); jmessagelist.each(function() { var jdiv = $(this); var maxwidth = jdiv.attr('isfirst') ? first_width : jdiv.width(); var jmessage_width = Math.min(jdiv.width(), maxwidth); jdiv.find('img, embed, iframe, video').each(function() { var jimg = $(this); var img_width = this.org_width; var img_height = this.org_height; if(!img_width) { var img_width = jimg.attr('width'); var img_height = jimg.attr('height'); this.org_width = img_width; this.org_height = img_height; } if(img_width > jmessage_width) { if(this.tagName == 'IMG') { jimg.width(jmessage_width); jimg.css('height', 'auto'); jimg.css('cursor', 'pointer'); jimg.on('click', function() { }); } else { jimg.width(jmessage_width); var height = (img_height / img_width) * jimg.width(); jimg.height(height); } } }); }); } function resize_table() { $('div.message').each(function() { var jdiv = $(this); jdiv.find('table').addClass('table').wrap('<div class="table-responsive"></div>'); }); } $(function() { resize_image(); resize_table(); $(window).on('resize', resize_image); }); var jmessage = $('#message'); jmessage.on('focus', function() {if(jmessage.t) { clearTimeout(jmessage.t); jmessage.t = null; } jmessage.css('height', '6rem'); }); jmessage.on('blur', function() {jmessage.t = setTimeout(function() { jmessage.css('height', '2.5rem');}, 1000); }); $('#nav li[data-active="fid-1"]').addClass('active'); </script>