我正在开发一个简单的项目。在此项目中,我不使用任何jsp页面和servlet与数据库进行交互。我要如何写连接字符串。目前,我在每个jsp页面上都编写了连接字符串。(我知道这不是最佳实践)。现在我的问题是我必须如何管理连接字符串?我只需要写一个普通页面,然后我就必须利用它。有人可以指导我吗?
您需要在servlet容器中创建JNDI数据源。默认情况下,它已经是一个连接池数据源。如何做到这一点取决于servlet容器的制造/版本。因此,这只是一个针对Tomcat的示例:
首先创建一个文件/META-INF/context.xml(要清楚,META-INF与webapp的WEB- INF处于同一级别),然后用以下文件填充(假定为MySQL DB)。
/META-INF/context.xml
<?xml version="1.0" encoding="UTF-8"?> <Context> <Resource name="jdbc/mydatabase" type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="10000" url="jdbc:mysql://localhost:3306/mydatabase" driverClassName="com.mysql.jdbc.Driver" username="java" password="pass" /> </Context>
然后将其注册到您的webapp的中/WEB-INF/web.xml。
/WEB-INF/web.xml
<resource-env-ref> <resource-env-ref-name>jdbc/mydatabase</resource-env-ref-name> <resource-env-ref-type>javax.sql.DataSource</resource-env-ref-type> </resource-env-ref>
在您的数据库管理器/ DAO类中按以下方式获取它。
try { this.dataSource = (DataSource) new InitialContext().lookup("java:comp/env/jdbc/mydatabase"); } catch (NamingException e) { throw new RuntimeException("DataSource is missing in JNDI.", e); }
最后,在执行查询的DAO方法中获取它的连接。
connection = dataSource.getConnection();
不要忘记close()它里面finally的try你在哪里得到它。
close()
finally
try