单例模式:软件设计模式,定义是单例对象的类只能允许一个实例存在。
1)properties读取配置文件
Properties pro = new Properties();
pro.load( ConfigManager.class.getClassLoader().getResourceAsStream(file));不能加任何符号 ,比如:空格
配置数据源—读取数据源连接数据库
用连接池的方式连接数据库的几大重要步骤:
步骤一:
1,将数据库的mysql-connector-java-5.0.8-bin.jar文件拷到tomcat安装目录下的lib文件夹中。
2,在Tomcat的conf/context.xml
注意:在配置文件中不允许有中文,包括注释内的中文
auth="Container" type="javax.sql.DataSource" maxActive="100"
maxIdle="30" maxWait="10000" username="root" password="root"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/mydb2"/>
其中:
name:表示你的连接池的名称也就是你要访问连接池的地址
auth:是连接池管理权属性,Container表示容器管理
type:是对象的类型
driverClassName:是数据库驱动的名称
url:是数据库的地址
username:是登陆数据库的用户名
password:是登陆数据库的密码
maxIdle,最大空闲数,数据库连接的最大空闲时间。超过空闲时间,数据库连
接将被标记为不可用,然后被释放。设为0表示无限制。
MaxActive,连接池的最大数据库连接数。设为0表示无限制。
maxWait ,最大建立连接等待时间。如果超过此时间将接到异常。设为-1表示
无限制。
3,配置应用程序的web.xml文件(可选)
jdbc/news
javax.sql.DataSource
Container
步骤二:
1,编写java代码,获取与逻辑名相关联的数据源对象
关键代码:
public Connection getConnection2() {
try {
//初始化上下文
Context cxt=new InitialContext();
//获取与逻辑名相关联的数据源对象
//是环境命名上下文(environment naming context(ENC)
Context ctx2=(Context) cxt.lookup("java:comp/env");
DataSource ds=(DataSource) ctx2.lookup("jdbc/news");
/*另一种写法,两种方法本质是不一样的
* DataSource ds=(DataSource)cxt.lookup("java:comp/env/jdbc/news");
*/
conn=ds.getConnection();
} catch (NamingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return conn;
}
步骤三:
1,编写jsp页面:验证数据源连接
关键代码:
<%
BaseDao baseDao=new BaseDao();
Connection conn=baseDao.getConnection2();
%>
<%=conn %>