今天天气已经转凉了呀!
明天开始要早点6.30分起床了!不然时间不够了。
今天讲的书Tomcat数据源。
传统的JDBC操作分为四种:
1.加载去数据库的驱动程序(通过classpath映射找到驱动)
2.通过DriverManage类取得连接对象(Connection)
3.通过链接取得PreparedStatement对象,编写sql操作语句,进行crud操作。
4.数据库操作是属于资源操作,运行完成以后要关闭自愿。
今天学习的是在tomcat前提下配置的数据源,既然是在tomcat那么必然要对tomcat进行配置:
首先还是要先来解释下JNDI这个名词。
命名与目录借口。
1.拷贝数据库驱动程序到tomcat/comman/lib目录下。
2.修改Tomcat的server.xml文件。
<context·····>
<Resource name = "jdbc/mldn" -->>设置一个匹配名字,在项目web.xml中要设置用到。
auth = "Container" -->>这个一听是连接池的设置属性吧。(有Container 和Application两个属性,一般都选用Container)
type = "javax.sql.Datasource" -->>所有的链接池里面的链接都要用Datasource获得,所以一定要让链接指向这个库。
maxActive = "100" -->>设置最大链接数
minIdle = "10" -->>设置最小保存在链接池里面的链接数。
maxWait = "10000" -->>最大等待时间,如果再等待时间内有链接空闲的话就可以继续取得连接,但是如果超过这个时间的话将对数据库的操作失 败。这个是毫秒数,这个数表示为10S
username = "root" --->>链接的数据库的用户名。
password = "root123" -->>数据库用户的密码。
DriverClassName = "" -->>驱动程序
url = "" -->>数据库的地址
>
</Resource>
</context>
3.修改项目中的web.xml -->>这个设置的主要目的是要让他读取到Tomcat中<resource>属性中的值。
<resource-ref>
<description>DB DRIVER</description> -->>这个仅仅是描述,可以在程序中取得,现在还体现不到他又什么用。
<res-ref-name>jdbc/mldn</res-ref-name> -->>这个名字跟Tomcat中<resource>属性中的name匹配的。通过这个名字找到Tomcat中的配置。
<res-type>javax.sql.Datasource</res-type> -->>跟Tomcat中<resource>属性中的type匹配的。
<res-auth>Container</res-auth> -->>跟Tomcat中<resource>属性中的auth匹配的.
<resource -ref>
4.在项目中具体的读取方式:(取的Connection pool中的链接)
A.初始化名称,查找上下文。
B.通过名称(JNDI)查找Datasource
C.通过Datasource取得链接。
eg:
String jndi = "java:comp/env/jdbc/mldn"
Context ctx = InitialContext();
Datasource ds = (Datasource) ctx.lookUp(jndi);
Connection conn = ds.getConnection();
java:comp/env/这个是javaee规范特定的在Tomcat中没有实现,其他服务器的话都已经实现,换句话说,其他地方只要用server中的name属性即可。