JDBC编程是java web应用中最为常见的。
1. 那么什么是JDBC呢?J
DBC全称Java DataBase Connectivity——顾名思义,就是java语言操纵数据库连接。说白了就是java程序操作数据库,代替直接手动操作。
其实除了JDBC外还有ODBC(open DataBase Connetivity 开放式数据库互连)。它是微软开发的一套数据库应用系统接口规范。开放式在于
ODBC可以多种数据库适配性,相当于一个转换开关,需要操纵的数据库是什么,就选择相应驱动,sql就会转换成相应标准,执行。其优点是普适性强,但是效率低下,使用不方便。
而JDBC驱动则是由Oracle公司提供专门jar包 一般ojdbc14.jar,直接对数据库进行操作,方便效率高,应用广泛,
1.2.JDBC编程四部曲:
(1)加载驱动 (2)根据连接URL 建立连接获得Connection (3)获得Statement,执行语句 (4)关闭连接。
核心语句为(举例子):
String drivername = "oracle.jdbc.driver.OracleDriver";//驱动名
String url = "jdbc:oracle:thin:@127.0.0.1:1521:orcl"//我的数据库url
Class.forName(drivername);//加载驱动,方式不唯一
Connection conn = DriverManager.getConnection(url);//建立连接,获得Connection实例
Statement stmt = conn.createStatment();//获得Statement
利用stmt调用方法执行语句。。
conn.close();
1.3 注意点 需要导入ojdbc14.jar或者在环境变量中设置CLASSPATH,说明此jar包的位置;当stmt被关闭时候,对象上打开的结果集也会被关闭,容易引起操作错误,关闭conn,则会因引起关闭stmt,一般只在最后关闭conn
掌握了四部曲其实很简单。
但是在实际应用中,尤其是大应用中,对于数据库频繁断开和连接导致效率低下。更具资源共享模型,形成了数据库连接池。--------预先在缓存中放好一些连接即Connection供使用,不够就重新创建,使用完毕不直接关闭而是放入缓冲池供下次使用。
2. 数据库连接池
2.1 几个概念 maxIdle:最大空闲数 即空闲时候保持的最大连接;maxActive能够同时 存在的最大连接数。
什么是连接?一个Connection即是一个连接
数据库连接池如何配置?
1.需要Tomcat6.0,Oracle的JDBC驱动程序包(放在Tomcat/lib下)
2.配置tomcat下的conf下的context.xml文件,在之间添加连接池如下:
<Resource
name="jdbc/test"
auth="Container"
type="javax.sql.DataSource"
driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@localhost:1521:orcl"
username="jcrm"
password="jcrm"
maxActive="20"
maxIdle="20"
maxWait="-1"/>
3.配置你的应用下的web.xml中的之间加入:
xml 代码
<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/test</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
java代码调用:try{
Context initContext = new InitialContext();
Context envContext = (Context)initContext.lookup("java:/comp/env");
out.println("ddddd<br>");
DataSource ds = (DataSource)envContext.lookup("jdbc/test");
Connection conn = ds.getConnection();
out.println("conn is:"+conn);
}catch(Exception e){
out.println(e.toString());
}
。。。
4.关于框架
框架中都用了池技术 其实本质上只是对于底层进行了类封装,并未变化。