﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>语源科技BlogJava-鹄鸣山酒鬼</title><link>http://www.blogjava.net/god/</link><description>一个没谱的人，他终日在探讨格言定律</description><language>zh-cn</language><lastBuildDate>Wed, 08 Apr 2026 20:12:40 GMT</lastBuildDate><pubDate>Wed, 08 Apr 2026 20:12:40 GMT</pubDate><ttl>60</ttl><item><title>JDBC01之基础（未完存稿）</title><link>http://www.blogjava.net/god/archive/2009/11/11/301979.html</link><dc:creator>swedenborg</dc:creator><author>swedenborg</author><pubDate>Wed, 11 Nov 2009 09:21:00 GMT</pubDate><guid>http://www.blogjava.net/god/archive/2009/11/11/301979.html</guid><wfw:comment>http://www.blogjava.net/god/comments/301979.html</wfw:comment><comments>http://www.blogjava.net/god/archive/2009/11/11/301979.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/god/comments/commentRss/301979.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/god/services/trackbacks/301979.html</trackback:ping><description><![CDATA[&nbsp;
<p style="text-indent: 21pt">JDBC<span style="font-family: 宋体">（</span>Java Database Connectivity<span style="font-family: 宋体">）是</span>java<span style="font-family: 宋体">访问数据库的基石，其它技术（如第三方</span>O/R<span style="font-family: 宋体">工具</span>Hibernate,ibatis<span style="font-family: 宋体">等）都是对</span>JDBC<span style="font-family: 宋体">的封装。是</span>Java<span style="font-family: 宋体">数据库连接的一个标准，是进行数据库连接的抽象层，由</span>Java<span style="font-family: 宋体">编写的一组类和接口组成，其接口的实现由各个数据库厂商来完成。</span></p>
<p style="text-indent: 21pt">JDBC<span style="font-family: 宋体">分类：</span></p>
<p style="text-indent: 21pt">JDBC-ODBC<span style="font-family: 宋体">桥，通过</span>JDBC-ODBC<span style="font-family: 宋体">的调用方法调用事先已在使用者计算机上安装好的</span>ODBC<span style="font-family: 宋体">（</span>Open Database Connectivity <span style="font-family: 宋体">微软公司开放服务结构中有关数据库的一个组成部分）驱动。</span></p>
<p style="text-indent: 21pt"><span style="font-family: 宋体">部分本地</span>API<span style="font-family: 宋体">部分</span>Java<span style="font-family: 宋体">的驱动程序，类似以上。</span></p>
<p style="text-indent: 21pt">JDBC<span style="font-family: 宋体">网络纯</span>Java<span style="font-family: 宋体">驱动程序，这类型的驱动程序最大的好处是省去了在使用者计算机上安装任何驱动程序的麻烦，只需在服务器端安装好</span>middleware<span style="font-family: 宋体">，而</span>middleware<span style="font-family: 宋体">会负责所有存取数据库时必要的转换。</span></p>
<p style="text-indent: 21pt"><span style="font-family: 宋体">本地协议的纯</span> Java <span style="font-family: 宋体">驱动程序，</span>:<span style="font-family: 宋体">这类型的驱动程序是最成熟的</span>JDBC<span style="font-family: 宋体">驱动程序，不但无需在使用者计算机上安装任何额外的驱动程序，也不需在服务器端安装任何的中介程序</span>(middleware)<span style="font-family: 宋体">，所有存取数据库的操作，都直接由驱动程序来完成。</span></p>
<p style="text-indent: 21pt">JDBC API<span style="font-family: 宋体">：</span></p>
<p style="text-indent: 21pt"><span>
<table cellspacing="0" cellpadding="0" width="100%">
    <tbody>
        <tr>
            <td>
            <div>
            <p style="margin-left: 27pt; text-indent: -27pt; text-align: center" align="center"><span style="font-size: 15pt; color: black; font-family: Arial">DriverManager</span></p>
            </div>
            </td>
        </tr>
    </tbody>
</table>
<table cellspacing="0" cellpadding="0" width="100%">
    <tbody>
        <tr>
            <td>
            <div>
            <p style="margin-left: 27pt; text-indent: -27pt; text-align: center" align="center"><span style="font-size: 15pt; color: black; font-family: Arial">Connection</span></p>
            </div>
            </td>
        </tr>
    </tbody>
</table>
<table cellspacing="0" cellpadding="0" width="100%">
    <tbody>
        <tr>
            <td>
            <div>
            <p style="margin-left: 27pt; text-indent: -27pt; text-align: center" align="center"><span style="font-size: 15pt; color: black; font-family: Arial">Connection</span></p>
            </div>
            </td>
        </tr>
    </tbody>
</table>
<table cellspacing="0" cellpadding="0" width="100%">
    <tbody>
        <tr>
            <td>
            <div>
            <p style="margin-left: 27pt; text-indent: -27pt; text-align: center" align="center"><span style="font-size: 15pt; color: black; font-family: Arial">Connection</span></p>
            </div>
            </td>
        </tr>
    </tbody>
</table>
<table cellspacing="0" cellpadding="0" width="100%">
    <tbody>
        <tr>
            <td>
            <div>
            <p style="margin-left: 27pt; text-indent: -27pt; text-align: center" align="center"><span style="font-size: 15pt; color: black; font-family: Arial">Statement</span></p>
            </div>
            </td>
        </tr>
    </tbody>
</table>
<table cellspacing="0" cellpadding="0" width="100%">
    <tbody>
        <tr>
            <td>
            <div>
            <p style="margin-left: 27pt; text-indent: -27pt; text-align: center" align="center"><span style="font-size: 15pt; color: black; font-family: Arial">PreparedStatement</span></p>
            </div>
            </td>
        </tr>
    </tbody>
</table>
<table cellspacing="0" cellpadding="0" width="100%">
    <tbody>
        <tr>
            <td>
            <div>
            <p style="margin-left: 27pt; text-indent: -27pt; text-align: center" align="center"><span style="font-size: 15pt; color: black; font-family: Arial">CallableStatement</span></p>
            </div>
            </td>
        </tr>
    </tbody>
</table>
<table cellspacing="0" cellpadding="0" width="100%">
    <tbody>
        <tr>
            <td>
            <div>
            <p style="margin-left: 27pt; text-indent: -27pt; text-align: center" align="center"><span style="font-size: 15pt; color: black; font-family: Arial">ResultSet</span></p>
            </div>
            </td>
        </tr>
    </tbody>
</table>
<table cellspacing="0" cellpadding="0" width="100%">
    <tbody>
        <tr>
            <td>
            <div>
            <p style="margin-left: 27pt; text-indent: -27pt; text-align: center" align="center"><span style="font-size: 15pt; color: black; font-family: Arial">ResultSet</span></p>
            </div>
            </td>
        </tr>
    </tbody>
</table>
<table cellspacing="0" cellpadding="0" width="100%">
    <tbody>
        <tr>
            <td>
            <div>
            <p style="margin-left: 27pt; text-indent: -27pt; text-align: center" align="center"><span style="font-size: 15pt; color: black; font-family: Arial">ResultSet</span></p>
            </div>
            </td>
        </tr>
    </tbody>
</table>
</span></p>
<p style="text-indent: 21pt">Java.sql.Driver<span style="font-family: 宋体">接口是所有</span>JDBC<span style="font-family: 宋体">驱动程序要实现的，不同的数据库厂商提供不同的实现。然后再程序中由</span>java.sql.DriverManager(<span style="font-family: 宋体">驱动程序管理器类</span>)<span style="font-family: 宋体">来调用这些实现。</span></p>
<p style="text-indent: 21pt"><span style="font-family: 宋体">首先加载驱动，通过调用</span>Class<span style="font-family: 宋体">类的</span>forName()<span style="font-family: 宋体">静态方法，向其传递要加载的</span>JDBC<span style="font-family: 宋体">驱动的类名来完成。而注册驱动，</span>Driver <span style="font-family: 宋体">接口的驱动程序类都包含了静态代码块，在这个静态代码块中，会调用</span> DriverManager.registerDriver() <span style="font-family: 宋体">方法来注册自身的一个实例。</span></p>
<p style="text-indent: 21pt"><span style="font-family: 宋体">然后建立连接</span></p>
<img src ="http://www.blogjava.net/god/aggbug/301979.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/god/" target="_blank">swedenborg</a> 2009-11-11 17:21 <a href="http://www.blogjava.net/god/archive/2009/11/11/301979.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JDBC02之数据库连接池(未完存稿)</title><link>http://www.blogjava.net/god/archive/2009/11/11/301978.html</link><dc:creator>swedenborg</dc:creator><author>swedenborg</author><pubDate>Wed, 11 Nov 2009 09:19:00 GMT</pubDate><guid>http://www.blogjava.net/god/archive/2009/11/11/301978.html</guid><wfw:comment>http://www.blogjava.net/god/comments/301978.html</wfw:comment><comments>http://www.blogjava.net/god/archive/2009/11/11/301978.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/god/comments/commentRss/301978.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/god/services/trackbacks/301978.html</trackback:ping><description><![CDATA[&nbsp;
<p><strong><span style="font-size: 14pt; color: red; font-family: 宋体">理解重点：</span></strong></p>
<p style="text-indent: 21pt"><span style="font-family: 宋体">是一个&#8220;缓冲池&#8221;，负责分配、管理和释放数据库连接，允许用用程序重复试用一个连接池中一个现有的数据库连接，而不是重新建立一个。</span></p>
<p style="text-indent: 21pt"><span style="font-family: 宋体">连接池通过设定最小连接数来初始化连接，通过最大连接数来限定当前连接池能占有的最大连接数量。在此过程中，通过设定最大空闲连接数来释放多余连接数并约束保留一定空闲连接数，再通过设定最小空闲数来预防突然而来的链接</span>(<span style="font-family: 宋体">在最大连接数的限制下尽量满足</span>)<span style="font-family: 宋体">。最后通后设定等待的最长时间来管理连接时间过长异常。</span></p>
<p style="text-indent: 21pt">Javax.sql.DateSource<span style="font-family: 宋体">接口表示，其实现由服务器（如</span>Weblogic,WebSphere,Tomcat<span style="font-family: 宋体">）或一些开源组织提供</span>(<span style="font-family: 宋体">如</span>DBCP<span style="font-family: 宋体">数据库连接池，</span>C3P0<span style="font-family: 宋体">数据库连接池</span>)<span style="font-family: 宋体">。</span>DataSource <span style="font-family: 宋体">通常被称为数据源，它包含连接池和连接池管理两个部分，习惯上也经常把</span> DataSource <span style="font-family: 宋体">称为连接池。</span></p>
<p style="text-indent: 21pt"><span style="font-family: 宋体">使用</span>DBCP<span style="font-family: 宋体">连接池实现，需增加两</span>jar<span style="font-family: 宋体">包：</span>Commons-dbcp.jar<span style="font-family: 宋体">连接池的实现；</span>Commons-pool.jar<span style="font-family: 宋体">连接池实现的依赖库。</span>Tomcat<span style="font-family: 宋体">的连接池即采用此连接池实现。</span></p>
<p><strong><span style="font-size: 14pt; color: red; font-family: 宋体">操作重点：</span></strong></p>
<p style="text-indent: 21pt">BasicDataSource bds=null;</p>
<p style="text-indent: 21pt">//<span style="font-family: 宋体">创建数据源对象</span></p>
<p style="text-indent: 21pt">bds=new BasicDataSource();</p>
<p style="text-indent: 21pt">//<span style="font-family: 宋体">设置连接数据库的驱动</span></p>
<p style="text-indent: 21pt">bds.setDriverClassName("com.mysql.jdbc.Driver");</p>
<p style="text-indent: 21pt">//<span style="font-family: 宋体">设置连接数据库的</span>url</p>
<p style="text-indent: 21pt">bds.setUrl("jdbc:mysql://localhost:3306/test");</p>
<p style="text-indent: 21pt">//<span style="font-family: 宋体">设置连接数据库的用户名</span></p>
<p style="text-indent: 21pt">bds.setUsername("root");</p>
<p style="text-indent: 21pt">//<span style="font-family: 宋体">设置连接数据库的密码</span></p>
<p style="text-indent: 21pt">bds.setPassword("root");</p>
<p style="text-indent: 21pt">//<span style="font-family: 宋体">设置连接池启动时的初始值</span></p>
<p style="text-indent: 21pt">bds.setInitialSize(5);</p>
<p style="text-indent: 21pt">//<span style="font-family: 宋体">设置连接池的最大值</span></p>
<p style="text-indent: 21pt">bds.setMaxActive(50);</p>
<p style="text-indent: 21pt">//<span style="font-family: 宋体">最大空闲值</span>.<span style="font-family: 宋体">当经过一个高峰时间后，连接池可以慢慢将已经</span></p>
<p style="text-indent: 21pt">//<span style="font-family: 宋体">用不到的连接慢慢释放一部分，一直减少到</span>maxIdle<span style="font-family: 宋体">为止</span></p>
<p style="text-indent: 21pt">bds.setMaxIdle(20);</p>
<p style="text-indent: 21pt">//<span style="font-family: 宋体">最小空闲值</span>.<span style="font-family: 宋体">当空闲的连接数少于该值时，连接池就会预申请一些连接，</span></p>
<p style="text-indent: 21pt">//<span style="font-family: 宋体">以避免洪峰来时再申请而造成的性能开销</span></p>
<p style="text-indent: 21pt">bds.setMinIdle(5);</p>
<p style="text-indent: 21pt">//<span style="font-family: 宋体">设置等待时间，以毫秒为单位</span></p>
<p style="text-indent: 21pt">bds.setMaxWait(5000);</p>
<p style="text-indent: 21pt">Connection con=null;</p>
<p style="text-indent: 21pt">PreparedStatement pstmt=null;</p>
<p style="text-indent: 21pt">ResultSet rs=null;</p>
<p style="text-indent: 21pt">String sql="select id,name,sex from customer";</p>
<p style="text-indent: 21pt">try {</p>
<p style="text-indent: 47.25pt">con=bds.getConnection();</p>
<p style="text-indent: 47.25pt">pstmt=con.prepareStatement(sql);</p>
<p style="text-indent: 47.25pt">rs=pstmt.executeQuery();</p>
<p style="text-indent: 47.25pt">while(rs.next()){</p>
<p style="text-indent: 73.5pt">Integer id=rs.getInt(1);</p>
<p style="text-indent: 73.5pt">String name=rs.getString(2);</p>
<p style="text-indent: 73.5pt">String sex=rs.getString(3);</p>
<p style="text-indent: 73.5pt">System.out.println("id "+id +"&nbsp;name&nbsp;"+ name +"&nbsp;&nbsp; sex "+sex );</p>
<p style="text-indent: 47.25pt">}</p>
<p style="text-indent: 21pt">} catch (SQLException e) {</p>
<p style="text-indent: 21pt">&nbsp;&nbsp;&nbsp;&nbsp; e.printStackTrace();</p>
<p style="text-indent: 21pt">}</p>
<img src ="http://www.blogjava.net/god/aggbug/301978.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/god/" target="_blank">swedenborg</a> 2009-11-11 17:19 <a href="http://www.blogjava.net/god/archive/2009/11/11/301978.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>基于理解的java学习笔记之最最基础部分</title><link>http://www.blogjava.net/god/archive/2009/07/29/288940.html</link><dc:creator>swedenborg</dc:creator><author>swedenborg</author><pubDate>Wed, 29 Jul 2009 10:20:00 GMT</pubDate><guid>http://www.blogjava.net/god/archive/2009/07/29/288940.html</guid><wfw:comment>http://www.blogjava.net/god/comments/288940.html</wfw:comment><comments>http://www.blogjava.net/god/archive/2009/07/29/288940.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/god/comments/commentRss/288940.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/god/services/trackbacks/288940.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 最最基础部分保留关键字：goto、const增加关键字：assert、enumpublic class SimpleDemo02{// 声明一个类，类名称的命名规范：所有单词的首字母大写&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public static void main(String args[]){&nbsp;// 主方法&nbsp;&nb...&nbsp;&nbsp;<a href='http://www.blogjava.net/god/archive/2009/07/29/288940.html'>阅读全文</a><img src ="http://www.blogjava.net/god/aggbug/288940.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/god/" target="_blank">swedenborg</a> 2009-07-29 18:20 <a href="http://www.blogjava.net/god/archive/2009/07/29/288940.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>