在Jsp中三种连接数据库的配置
2009-06-21 20:04
288 查看
很多初学者会不知道怎么配置连接字符串而烦恼,今天笔者就写一些很实用的三种配置连接字符串的方式,当然简单的那种我没有写,那种在公司的开发中也不实用,总结不好请指教。有几个数据库驱动包和连接池包可以到我的空间下载,已上传了,有不懂的联系油箱:devid_pitoushi@Live.cn
一、连接池方式:
1、连接迟3个包+sqlserver驱动包复制到tomcat\common\lib
2、配置tomcat\conf\context.xml,注意2000和2005 驱动名字和路径
<Resource name="jdbc/pubs"
auth="Container" type="javax.sql.DataSource" maxActive="100"
maxIdle="30" maxWait="10000" username="sa" password="120010"
driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver"
url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=books"/>
2000:
driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver"
url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=books"/>
2005:
driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"
url="jdbc:sqlserver://localhost:1433;DatabaseName=books"/>
3、在工程web.xml添加节点
<resource-ref>
<res-ref-name>jdbc/pubs</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
4、得到连接的方法内导如以下几个包:
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;
//得到Connection对象的方法
public static Connection getConnection(){
try {
Context ic = new InitialContext();
DataSource source = (DataSource)ic.lookup("java:comp/env/jdbc/bbs");
con = source.getConnection();
}catch(NamingException ex){
ex.printStackTrace();
}catch(SQLException ex){
ex.printStackTrace();
}
return con;
}
==================================================================================
二、读取属性文件方式
*.properties文件
driverName=com.microsoft.sqlserver.jdbc.SQLServerDriver
url=jdbc:sqlserver://localhost:1433;DatabaseName=books
user=sa
password=123
//读取*.properties文件的类
import java.io.InputStream;
import java.util.Properties;
public final class Env extends Properties {
private static Env instance;
public static Env getInstance(){
if(instance != null){
return instance;
}else{
makeInstance();
return instance;
}
}
//synchronized 同步方法,保证同一时间只能被一个用户调用
private static synchronized void makeInstance(){
if(instance == null){
instance = new Env();
}
}
private Env(){
InputStream is =getClass().getResourceAsStream("db.properties");//配置文件位置
try{
load(is);
}catch(Exception ex){
System.err.println("请确认读取的文件是否存在!");
}
}
public static void main(String[] args) {
System.out.println(getInstance().getProperty("driverName"));
}
}
注意类的调用:譬如String url = Env.getInstance().getProperties("url");就能得到相应的字符窜
驱动driverName,用户user, 密码password获取方式同上
==================================================================================
三、读取xml文件中的节点方式
首先报连接池包3个和1个数据库驱动包复制到工程下WEB-INF\lib中
1、工程下的web.xml要添加以下节点:
<context-param>
<param-name>driverName</param-name>
<param-value>com.microsoft.sqlserver.jdbc.SQLServerDriver</param-value>
</context-param>
<context-param>
<param-name>url</param-name>
<param-value>jdbc:sqlserver://localhost:1433;DatabaseName=bbs</param-value>
</context-param>
<context-param>
<param-name>userName</param-name>
<param-value>sa</param-value>
</context-param>
<context-param>
<param-name>passWord</param-name>
<param-value>123</param-value>
</context-param>
2、新建一个普通类继承HttpServlet类,并实现ServletContextListener监听接口,如下:
import java.sql.Connection;
import java.sql.ResultSet;
import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.http.HttpServlet;
public class ContextListener extends HttpServlet implements ServletContextListener {
/**
* 销毁servlet
*/
public void contextDestroyed(ServletContextEvent sc) {
}
/**
* 初始化
*/
public void contextInitialized(ServletContextEvent sc) {
System.out.println("开启:");
ServletContext servletContext = sc.getServletContext();
String driverName = servletContext.getInitParameter("driverName");
String url = servletContext.getInitParameter("url");
String userName = servletContext.getInitParameter("userName");
String passWord = servletContext.getInitParameter("passWord");
BaseDAO.setDriverName(driverName);
BaseDAO.setUrl(url);
BaseDAO.setUser(userName);
BaseDAO.setPassword(passWord);
}
}
3、在公共类BaseDao中
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;
import org.apache.commons.dbcp.BasicDataSource; //连接池要到包
/*
* 获取数据库连接
*/
public class BaseDAO {
private static Connection con;
private static String driverName;
private static String url;
private static String userName;
private static String passWord;
//获取连接对象Connection
public static Connection getConnection(){
BasicDataSource dataSource = new BasicDataSource();
dataSource.setDriverClassName(driverName);
dataSource.setUrl(url);
dataSource.setUsername(userName);
dataSource.setPassword(passWord);
try{
con = dataSource.getConnection();
} catch(SQLException ex) {
ex.printStackTrace();
}
return con;
}
/*
* 配置:从web.xml
*/
//驱动名称
public static String getDriverName() {
return getDriverName();
}
public static void setDriverName(String driverName) {
BaseDAO.driverName = driverName;
}
//URL
public static String getUrl(){
return getUrl();
}
public static void setUrl(String url) {
BaseDAO.url = url;
}
//用户名
public static String getUser(){
return getUser();
}
public static void setUser(String userName) {
BaseDAO.userName = userName;
}
//密码
public static String getPassWord(){
return getPassWord();
}
public static void setPassword(String passWord) {
BaseDAO.passWord = passWord;
}
}
一、连接池方式:
1、连接迟3个包+sqlserver驱动包复制到tomcat\common\lib
2、配置tomcat\conf\context.xml,注意2000和2005 驱动名字和路径
<Resource name="jdbc/pubs"
auth="Container" type="javax.sql.DataSource" maxActive="100"
maxIdle="30" maxWait="10000" username="sa" password="120010"
driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver"
url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=books"/>
2000:
driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver"
url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=books"/>
2005:
driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"
url="jdbc:sqlserver://localhost:1433;DatabaseName=books"/>
3、在工程web.xml添加节点
<resource-ref>
<res-ref-name>jdbc/pubs</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
4、得到连接的方法内导如以下几个包:
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;
//得到Connection对象的方法
public static Connection getConnection(){
try {
Context ic = new InitialContext();
DataSource source = (DataSource)ic.lookup("java:comp/env/jdbc/bbs");
con = source.getConnection();
}catch(NamingException ex){
ex.printStackTrace();
}catch(SQLException ex){
ex.printStackTrace();
}
return con;
}
==================================================================================
二、读取属性文件方式
*.properties文件
driverName=com.microsoft.sqlserver.jdbc.SQLServerDriver
url=jdbc:sqlserver://localhost:1433;DatabaseName=books
user=sa
password=123
//读取*.properties文件的类
import java.io.InputStream;
import java.util.Properties;
public final class Env extends Properties {
private static Env instance;
public static Env getInstance(){
if(instance != null){
return instance;
}else{
makeInstance();
return instance;
}
}
//synchronized 同步方法,保证同一时间只能被一个用户调用
private static synchronized void makeInstance(){
if(instance == null){
instance = new Env();
}
}
private Env(){
InputStream is =getClass().getResourceAsStream("db.properties");//配置文件位置
try{
load(is);
}catch(Exception ex){
System.err.println("请确认读取的文件是否存在!");
}
}
public static void main(String[] args) {
System.out.println(getInstance().getProperty("driverName"));
}
}
注意类的调用:譬如String url = Env.getInstance().getProperties("url");就能得到相应的字符窜
驱动driverName,用户user, 密码password获取方式同上
==================================================================================
三、读取xml文件中的节点方式
首先报连接池包3个和1个数据库驱动包复制到工程下WEB-INF\lib中
1、工程下的web.xml要添加以下节点:
<context-param>
<param-name>driverName</param-name>
<param-value>com.microsoft.sqlserver.jdbc.SQLServerDriver</param-value>
</context-param>
<context-param>
<param-name>url</param-name>
<param-value>jdbc:sqlserver://localhost:1433;DatabaseName=bbs</param-value>
</context-param>
<context-param>
<param-name>userName</param-name>
<param-value>sa</param-value>
</context-param>
<context-param>
<param-name>passWord</param-name>
<param-value>123</param-value>
</context-param>
2、新建一个普通类继承HttpServlet类,并实现ServletContextListener监听接口,如下:
import java.sql.Connection;
import java.sql.ResultSet;
import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.http.HttpServlet;
public class ContextListener extends HttpServlet implements ServletContextListener {
/**
* 销毁servlet
*/
public void contextDestroyed(ServletContextEvent sc) {
}
/**
* 初始化
*/
public void contextInitialized(ServletContextEvent sc) {
System.out.println("开启:");
ServletContext servletContext = sc.getServletContext();
String driverName = servletContext.getInitParameter("driverName");
String url = servletContext.getInitParameter("url");
String userName = servletContext.getInitParameter("userName");
String passWord = servletContext.getInitParameter("passWord");
BaseDAO.setDriverName(driverName);
BaseDAO.setUrl(url);
BaseDAO.setUser(userName);
BaseDAO.setPassword(passWord);
}
}
3、在公共类BaseDao中
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;
import org.apache.commons.dbcp.BasicDataSource; //连接池要到包
/*
* 获取数据库连接
*/
public class BaseDAO {
private static Connection con;
private static String driverName;
private static String url;
private static String userName;
private static String passWord;
//获取连接对象Connection
public static Connection getConnection(){
BasicDataSource dataSource = new BasicDataSource();
dataSource.setDriverClassName(driverName);
dataSource.setUrl(url);
dataSource.setUsername(userName);
dataSource.setPassword(passWord);
try{
con = dataSource.getConnection();
} catch(SQLException ex) {
ex.printStackTrace();
}
return con;
}
/*
* 配置:从web.xml
*/
//驱动名称
public static String getDriverName() {
return getDriverName();
}
public static void setDriverName(String driverName) {
BaseDAO.driverName = driverName;
}
//URL
public static String getUrl(){
return getUrl();
}
public static void setUrl(String url) {
BaseDAO.url = url;
}
//用户名
public static String getUser(){
return getUser();
}
public static void setUser(String userName) {
BaseDAO.userName = userName;
}
//密码
public static String getPassWord(){
return getPassWord();
}
public static void setPassword(String passWord) {
BaseDAO.passWord = passWord;
}
}
相关文章推荐
- 在Jsp中三种连接数据库的配置
- JSP连接Mysql的数据库连接池配置相关
- JSP初级系列--Eclipse3.21+SQl 2005 JDBC数据库连接配置方法
- 一步一步学JSP(环境配置,数据库连接,web应用配置)
- JSP连接Mysql的数据库连接池配置相关
- spring配置datasource三种方式 数据库连接
- 一步一步学JSP(环境配置,数据库连接,web应用配置)
- 最简单的Jsp环境配置及数据库连接调试(Jdk7+Tomcat7+Mysql5.5)
- 使用Spring连接数据库,配置JSP json数据
- 三种不配置tnsnames.ora的另类sqlplus连接数据库方式
- 三种不配置tnsnames.ora的另类sqlplus连接数据库方式
- J2EE 初学者 sqlserver 连接数据库的三种配置
- 一步一步学JSP(环境配置,数据库连接,web应用配置)
- spring中三种数据库连接配置
- 连接数据库的三种配置方式
- 【转】一步一步学JSP(环境配置,数据库连接,web应用配置)
- jsp 连接数据库MySQL相关驱动的配置
- Hibernate连接三种数据库的配置(SQL Server、Oracle、MySQL)
- 配置MysqlProxy连接阿里云的内网rds数据库
- 利用conn.properties配置文件进行数据库连接