首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > 其他数据库 >

从配置文件读取连接数据库的配备信息

2013-09-04 
从配置文件读取连接数据库的配置信息在webapps下新建Web应用程序的目录为conntest:其目录结构如下:webapps

从配置文件读取连接数据库的配置信息
在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.OracleDriverdriverClass=com.mysql.jdbc.Driver#url(要连接数据库的地址)#url=jdbc:oracle:thin:@192.168.1.180:1521:orcl#url=jdbc:mysql://127.0.0.1:3306/testurl=jdbc:mysql://127.0.0.1:3306#user(数据库用户)#user=scottuser=root#password(密码)#password=tigerpassword=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.javaF:\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




热点排行