数据源简介
JDBC2.0提供了javax.sql.DataSource接口,它负责建立与数据库的连接,在应用程序中访问数据库时不必编写数据库的代码,可以直接从数据源获得数据库连接。
1. 数据源与连接池
在DataSource中事先了多个数据库连接,这些数据库连接保存在连接池(Connect Pool)中。Java程序访问数据库时,只需从连接池中取出空闲状态的数据库连接;当程序访问数据库结束,再将数据库连接施加连接池,这样做可以提高访问数据库的效率。
2. 数据源和JNDI资源
DataSource对象是由Tomcat提供的,因此不能在程序中采用创建一个实例的方式来生成DataSource对象,而需要采用Java的另一个技术JNDI,来获得DataSource对象的引用。
可以简单地把JNDI理解为一种将对象和名字绑定的技术,对象工厂负责生产出对象,这些对象都和惟一的名字绑定。外部程序可以通过名字来锋利某个对象的引用。
3. 下载与配置jdbc
下载mysql-connector-java-3.0.17-ga-bin.jar。
把文件mysql-connector-java-3.0.17-ga-bin.jar拷贝到<CATALINA_HOME>\common\lib下面。
4. 配置数据源
假如为应用实例bookstore配置数据源。
在<CATALINA_HOME>\conf\Catalina\localhost\下创建文件bookstore.xml。文件内容:
<?xml version="1.0" encoding="UTF-8"?> <Context> <Resource name="mysql" type="javax.sql.DataSource" password="mysql" driverClassName="com.mysql.jdbc.Driver" maxIdle="2" maxWait="5000" username="root" url="jdbc:mysql://localhost:3306/test" maxActive="4"/> </Context>
5. 配置web.xml
在web.xml文件中加入引用jdbc/BookDB数据源的代码:
<resource-ref> <description>connection</description> <res-ref-name>mysql</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref>6. 程序中访问数据源 //建立数据库连接 Context ctx = new InitialContext(); DataSource ds = (DataSource)ctx.lookup("java:comp/env/mysql"); Connection con = ds.getConnection(); //关闭数据库连接 Con.close();
相关资源:敏捷开发V1.0.pptx