在webapps下新建Web应用程序的目录为conntest:
其目录结构如下:
webapps:
|-conntext
| |-src
| | |-conntest
| | |-DBConfig.java
| | |-ConnDBServlet.java
| |
| |-WEB-INF
| |-classes
| | |-conntest
| | |-database.properties
| | |-DBConfig.class
| | |-ConnDBServlet.class
| |
| |-lib
| | |-mysql-connector-java-5.1.26-bin.jar
| |
| |-web.xml
1.database.properties
#driverClass(数据库驱动类的类名)
#driverClass=oracle.jdbc.OracleDriver
driverClass=com.mysql.jdbc.Driver
#url(要连接数据库的地址)
#url=jdbc:oracle:thin:@192.168.1.180:1521:orcl
#url=jdbc:mysql://127.0.0.1:3306/test
url=jdbc:mysql://127.0.0.1:3306
#user(数据库用户)
#user=scott
user=root
#password(密码)
#password=tiger
password=root
2.web.xml
<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0"
metadata-complete="true">
<context-param>
<param-name>driverClass</param-name>
<param-value>com.mysql.jdbc.Driver</param-value>
</context-param>
<context-param>
<param-name>url</param-name>
<param-value>jdbc:mysql://localhost:3306/test</param-value>
</context-param>
<context-param>
<param-name>user</param-name>
<param-value>root</param-value>
</context-param>
<context-param>
<param-name>password</param-name>
<param-value>root</param-value>
</context-param>
<servlet>
<servlet-name>ConnDBServlet</servlet-name>
<servlet-class>conntest.ConnDBServlet</servlet-class>
<init-param>
<param-name>driverClass</param-name>
<param-value>com.mysql.jdbc.Driver</param-value>
</init-param>
<init-param>
<param-name>url</param-name>
<param-value>jdbc:mysql://localhost:3306</param-value>
</init-param>
<init-param>
<param-name>user</param-name>
<param-value>root</param-value>
</init-param>
<init-param>
<param-name>password</param-name>
<param-value>root</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>ConnDBServlet</servlet-name>
<url-pattern>/conndb</url-pattern>
</servlet-mapping>
</web-app>
3.DBConfig.java
package conntest;
public class DBConfig{
private String driverClass;
private String url;
private String user;
private String password;
public DBConfig(String driverClass, String url, String user, String password){
this.driverClass = driverClass;
this.url = url;
this.user = user;
this.password = password;
}
public String getDriverClass(){
return this.driverClass;
}
public String getUrl(){
return this.url;
}
public String getUser(){
return this.user;
}
public String getPassWord(){
return this.password;
}
}
4.ConnDBServlet.java
package conntest;
import java.io.IOException;
import java.io.InputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.PrintWriter;
import java.util.Properties;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.sql.DriverManager;
import java.sql.Connection;
import java.sql.SQLException;
public class ConnDBServlet extends HttpServlet{
private DBConfig dbconfig;
//读取database.properties配置文件的配置信息
public DBConfig readDbConfig(String propFileName) throws IOException{
try{
//主要就是获取输入流
//方法1:通过FileInputStream构造函数得到
//String propFileName = "F:\\webapps\\conntest\\WEB-INF\\classes\\conntest\\database.properties";
//FileInputStream in=new FileInputStream(propFileName);//FileNotFoundException
//方法2:通过Class.getResourceAsStream()
//String propFileName = "/conntest/database.properties";
//InputStream in = this.getClass().getResourceAsStream(propFileName);
//方法3:通过ServletContext.getResourceAsStream()
//String propFileName = "/WEB-INF/classes/conntest/database.properties";
InputStream in = this.getServletContext().getResourceAsStream(propFileName);
Properties props = new Properties();
props.load(in);//IOException
String driverClass = props.getProperty("driverClass");
String url = props.getProperty("url");
String user = props.getProperty("user");
String password = props.getProperty("password");
return new DBConfig(driverClass, url, user, password);
}
catch(FileNotFoundException e) {
new RuntimeException(e);
}
catch(IOException e) {
new RuntimeException(e);
}
return null;
}
//读取web.xml中的配置信息
public DBConfig readDbConfig(){
//<servlet>元素中的<init-param>
// String driverClass = getInitParameter("driverClass");
// String url = getInitParameter("url");
// String user = getInitParameter("user");
// String password = getInitParameter("password");
//<context-param>
String driverClass = getServletContext().getInitParameter("driverClass");
String url = getServletContext().getInitParameter("url");
String user = getServletContext().getInitParameter("user");
String password = getServletContext().getInitParameter("password");
return new DBConfig(driverClass, url, user, password);
}
public void init() throws ServletException{
//String propFileName = "F:\\webapps\\conntest\\WEB-INF\\classes\\conntest\\database.properties";
//String propFileName = "/conntest/database.properties";
String propFileName = "/WEB-INF/classes/conntest/database.properties";
//String propFileName = null;
try{
if(propFileName == null){
dbconfig = readDbConfig();
}
else{
dbconfig = readDbConfig(propFileName);
}
Class.forName(dbconfig.getDriverClass());//ClassNotFoundException
}
catch(ClassNotFoundException e){
throw new ServletException("加载数据库驱动失败!");
}
catch(FileNotFoundException e) {
throw new ServletException("没有找到属性文件!");
}
catch(IOException e) {
throw new ServletException("加载属性文件失败!");
}
}
public void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException{
Connection conn = null;
try{
conn = DriverManager.getConnection(dbconfig.getUrl(), dbconfig.getUser(), dbconfig.getPassWord());
res.setContentType("text/html; charset=UTF-8");
PrintWriter out = res.getWriter();
out.println("数据库连接成功!");
out.close();
}
catch(SQLException e){
throw new ServletException(e);
}
finally{
if(conn != null){
try{
conn.close();
}
catch(SQLException e){
e.printStackTrace();
}
conn = null;
}
}
}
}
5.编译
F:\webapps\conntest>javac -d ./WEB-INF/classes ./src/conntest/DBConfig.java
F:\webapps\conntest>javac -classpath D:\web\tomcat\lib\servlet-api.jar;./WEB-INF/classes -d ./WEB-INF/classes ./src/conntest/ConnDBServlet.java
6.访问:
http:localhost:8080/conntest/conndb
分享到:
相关推荐
c# 实现的。通过配置文件config 读取数据库连接字符串,用户名密码等。通过配置文件,有利于系统的升级。
从配置文件XML读取信息用JDBC连接数据库
delphi配置ini文件动态读取数据库连接字符串,内置源码,是delphi7开发的,直接就可以运行测试
JAVA读取数据库的XML配置文件. 前言.虽然现在有HEIBERNATE开源框架做为持久层,可以很好的解决这个问题. 当然,SSH这些开源框架,也必不是人人都得学去用.我个人就喜欢自已写几个常用的类在开发时可以多次使用... 下次...
c# 基于vs2005 开发 CE 系统实现读取声音 连接数据库 读取配置文件,扫描一维条码等
C# 读取保存App.config配置文件的完整源码参考(转) http://smartsoft.5d6d.com/thread-6550-1-1.html C# 读取保存App.config配置文件的完整源码参考 最近出差在北京做一个小项目,项目里需要读取配置文件的小功能...
这是一款C#连接配置文件的程序,可以拓展为数据库的外部连接,当然数据库有限制,我用的数据库为Acess,要用到这个,所以就做了这个,用Acess连接很简单,只要读取ini的内容,然后连接即可。
通过读取INI文件中的SQL SERVER配置信息来读取SQL SERVER数据库
如何用XML配置JAVA项目数据库,方便用户配置数据库
将数据库链接和Sql语句全部写在配置文件当中JDBC链接数据库时自动读取,一个通用的数据库持久化类
java读取、更新ini配置文件,可以分块配置
开发环境:VS2010C++ 用ADO方式读取数据库,代码清晰易懂,适合新手学习 数据库文件为ACCESS 需要用数据源配置的
该实例通过配置XML文件,并且读取XML文件实现数据库连接的配置!
Spring配置文件中注册三种数据源及从属性文件中读取DB连接四要素
在C#中读写INI配置文件 个人珍藏版一般人我可不让他下载哦 大家赶紧下吧
在开发Asp.net站点的时候,我们会遇到很多的配置参数:网站名称,上传图片后缀,上传文件后缀,关键字过滤,数据库连接字串等等,这些内容如果比较少的话,直接配置到Web.config文件中,借由.NET提供的操作类,将会非常方便的...
数据库链接基础类,读取配置文件信息。
定时读取PDF文件并且批量插入38W条数到数据库,里面包含线程定时执行线程,事务批量插入,读取配置文件工具类,数据库连接工具类,日期工具类,一个小的项目。
比如说我们开发了一个操作数据库的模块,在开发的时候我们连接本地的数据库那么IP ,数据库名称,表名称,数据库主机等信息是我们本地的,要使得这个操作数据的模块具有通用性,那么以上信息就不能写死在程序里。...
gradle导入本地oracle包连接数据库,内含oracle6.jar包