p.443 DB Connection Pool(CP) : datasource
1. ํฐ์บฃ ์ฌ์ดํธ๋ก ์ด๋ (http://tomcat.apache.org/)
2. ๋ฒ์ ์ ๋ง๊ฒ ํด๋ฆญ
ํฐ์บฃ ํ์ด์ง ์ผ์ชฝ ๋ฐ
3. JDBC Datasouce๋ก ์ด๋
4. MySQL DBCP ์์ ๋ณด๊ธฐ
5. JDBC MySQL Connector ๋ค์ด๋ก๋
https://www.mysql.com/products/connector/๋ก ์ด๋
6. MySQL๋ฒ์ ์ผ๋ก ๋ค์ด๋ก๋, ์์ถ ํ๊ณ jarํ์ผ lib์ ๋ฃ๊ธฐ, ๋ฐ๋ก ๋น๋ํจ์ค ์ํด๋๋จ
7. ์์ค์ฝ๋ ์์ฑ
http://tomcat.apache.org/tomcat-8.5-doc/jndi-datasource-examples-howto.html#MySQL_DBCP_2_Example
http://tomcat.apache.org/tomcat-8.5-doc/jndi-datasource-examples-howto.html#MySQL_DBCP_2_Example
์ ์ฌ์ดํธ๋ฅผ ํ์ธ ํ์ฌ ์ฐจ๋ก๋๋ก ๊ตฌ์ฑ
(1) META-INF/context.xml
<Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
maxTotal="100" maxIdle="30" maxWaitMillis="10000"
username="jsp" password="1234" driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/javatest??serverTimezone=Asia/Seoul
"/>
(2) WEB-INF/web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.1"
xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd">
<description>MySQL Test App</description>
<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/TestDB</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
</web-app>
(3) DBUtil
package com.cos.board.db;
import java.sql.Connection;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.sql.DataSource;
public class DButil {
public static Connection getConnection() {
try {
Context initContext = new InitialContext();
Context envContext = (Context) initContext.lookup("java:/comp/env");
DataSource ds = (DataSource) envContext.lookup("jdbc/TestDB");
Connection conn = ds.getConnection();
System.out.println("DB Success");
return conn;
} catch (Exception e) {
System.out.println("DB Fail");
e.printStackTrace();
}
return null;
}
}
(3) ์ฃผ์ ํ ์
- web.xml ์์ ver="3.1"๊ณผ ๋ด ํ๋ก์ ํธ์ ํฐ์ผ๋ฒ์ ๊ณผ ๋ง์ถฐ์ผํ๋ค.
๋ด ํ๋ก์ ํธ์ ํฐ์บฃ ๋ฒ์ ๋ณด๋ ๋ฐฉ๋ฒ
- context.xml ์ ์๋ฒ์๊ฐ์ค์ ์ ํด์ ์ฐ๊ฒฐํด์ผํ๋ค.
mysql ๋ฒ์ ์ด 8.0 ๋ฒ์ ๋ถํฐ๋severTimezone์ ์๋์ผ๋ก ์ก์ง๋ชปํ๋ฏ๋ก ์๋์ ๊ฐ์ด timezone์ถ๊ฐํด์ผํจ
context.xml์์
private String url = "jdbc:mysql://localhost:3306/calendar";
->
private String url = "jdbc:mysql://localhost:3306/calendar?serverTimezone=Asia/Seoul";
โ
========================================================== ์ฐธ๊ณ ์ฌํญ
- ๋ํ๋ฆฌ์ผ์ดํธ ์ค๋ฅ๋ฉ์์ง๊ฐ ๋จ๋ ๊ฒฝ์ฐ CJ ๊ฒฝ๋ก๋ก ๋ณ๊ฒฝํ์ฌ์ ํจ.
ํ์ฌ ๊ฒฝ๋ก์ ๋๋ผ์ด๋ธํ์ผ์ ๊ณง ์ง์ ์ข ๋ฃ ๋ ์์ CJ๋ก ๊ฒฝ๋ก๋ฅผ ๋ฐ๊ฟ๊ฒ์ ๊ถ์ฅํจ.
context.xml์ driverClassName="com.mysql.cj.jdbc.Driver"์ ๋ณ๊ฒฝํด์ฃผ์ด์ผํจ.
- taglib
'java' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
JSP - ๊ฒ์ํ๋ง๋ค๊ธฐ(7) ์ค๋ฅ๋ฌธ์ ๋ฆฌ:-) (0) | 2020.11.09 |
---|---|
JSP - ๊ฒ์ํ ๋ง๋ค๊ธฐ(6) PrepareStatement๋ฅผ ์ด์ฉํ CRUD ํ ์คํธ (0) | 2020.11.09 |
JSP - ๊ฒ์ํ๋ง๋ค๊ธฐ(2) - MySQL ํ๊ธ ์ ํ ํ๊ธฐ, ์ ์ ์์ฑ (0) | 2020.11.09 |
JSP - ๊ฒ์ํ๋ง๋ค๊ธฐ(1) - ํฉํ ๋ฆฌ ํจํด ์์ (0) | 2020.11.09 |
MVCํจํด (0) | 2020.11.09 |