??xml version="1.0" encoding="utf-8" standalone="yes"?>欧美日韩国产成人在线观看,aa亚洲一区一区三区,gogo久久日韩裸体艺术http://www.aygfsteel.com/lishen226/category/39438.htmlzh-cnThu, 07 May 2009 10:08:04 GMTThu, 07 May 2009 10:08:04 GMT60[转]javaq接数据库大?/title><link>http://www.aygfsteel.com/lishen226/archive/2009/05/07/269349.html</link><dc:creator>锋行</dc:creator><author>锋行</author><pubDate>Thu, 07 May 2009 02:25:00 GMT</pubDate><guid>http://www.aygfsteel.com/lishen226/archive/2009/05/07/269349.html</guid><wfw:comment>http://www.aygfsteel.com/lishen226/comments/269349.html</wfw:comment><comments>http://www.aygfsteel.com/lishen226/archive/2009/05/07/269349.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/lishen226/comments/commentRss/269349.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/lishen226/services/trackbacks/269349.html</trackback:ping><description><![CDATA[<p style="border-bottom: 1px dotted; margin: 15px auto; width: 760px" id="blogtitle_fks_085065086094088075093084094095080086086075085082085069" class="g_p_center g_t_wrap g_t_left g_t_20 g_c_pdin c07 brd01"><span style="font-family: '微Y雅黑', '黑体', Arial, Helvetica, Sans-Serif">javaq接数据库大?</span><span id="wmqeeuq" class="g_t_10 c08"> 2008-09-23 14:10</span></p> <div style="width: 760px; margin-bottom: 20px" class="g_p_center g_t_right g_c_pdin g_h_20 c08"> <div id="wmqeeuq" class="g_p_left"><a style="font-size: 12px" id="aBelongClsfks_085065086094088075093084094095080086086075085082085069" class="g_c_ul c05" onclick="NEBlog.gPermaLinkPage.updownMenu.openSameClass('fks_095071081082088064081081074071084081089066080085080', 'java');" href="#">分类Qjava</a> </div> <div>字号Q?<a style="font-size: 12px" id="bigfont" class="g_c_ul c05" onclick="NEBlog.gPermaLinkPage.updownMenu.changeFont('blogtext_fks_085065086094088075093084094095080086086075085082085069', 1);return false;" href="#">?/a><span style="display: none" id="bigfont_off" class="g_t_bold c07">?/span>  <a style="font-size: 12px" id="middlefont" class="g_c_ul c05" onclick="NEBlog.gPermaLinkPage.updownMenu.changeFont('blogtext_fks_085065086094088075093084094095080086086075085082085069', 2);return false;" href="#">?/a><span style="display: none" id="middlefont_off" class="g_t_bold c07">?/span>  <a style="display: none; font-size: 12px" id="smallfont" class="g_c_ul c05" onclick="NEBlog.gPermaLinkPage.updownMenu.changeFont('blogtext_fks_085065086094088075093084094095080086086075085082085069', 3);return false;" href="#">?/a><span style="display: inline" id="smallfont_off" class="g_t_bold c07">?/span> </div> </div> <div id="wmqeeuq" class="g_blog_list"> <div style="width: 760px" id="blogtext_fks_085065086094088075093084094095080086086075085082085069" class="g_t_center g_c_pdin g_p_center c07 content"> <p style="text-indent: 2em">开发中q接数据库的方式有多?可以直接用jdbcq接,也可以配|服务器的连接池.写法也有多种,可以直接写在jsp面?但通常都会写个专用的类,用单态之cȝ设计模式把他装h.但其中的基本q接驱动形式代码是不变的,下面是些CZ代码Q你一定将jdbc的驱动程序放到服务器的类路径里,然后要在数据库里Z个表test,有两个字D|如ؓtest1Qtest2Q可以用下面SQL?</p> <p style="text-indent: 2em">create table test(test1 varchar(20),test2 varchar(20) </p> <p style="text-indent: 2em">然后向这个表写入一条测试纪?</p> <p style="text-indent: 2em">那么现在开始我们的jsp和数据库之旅吧?</p> <p style="text-indent: 2em">一、jspq接Oracle8/8i/9i数据库(用thin模式Q?</p> <p style="text-indent: 2em">testoracle.jsp如下Q?</p> <p style="text-indent: 2em"><%@ page contentType="text/html;charset=gb2312"%> </p> <p style="text-indent: 2em"><%@ page import="java.sql.*"%> </p> <p style="text-indent: 2em"><html> </p> <p style="text-indent: 2em"><body> </p> <p style="text-indent: 2em"><%Class.forName("oracle.jdbc.driver.OracleDriver").newInstance(); </p> <p style="text-indent: 2em">String url="jdbc:oracle:thin:@localhost:1521:orcl"; </p> <p style="text-indent: 2em">//orclZ的数据库的SID </p> <p style="text-indent: 2em">String user="scott"; </p> <p style="text-indent: 2em">String password="tiger"; </p> <p style="text-indent: 2em">Connection conn= DriverManager.getConnection(url,user,password); </p> <p style="text-indent: 2em">Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); </p> <p style="text-indent: 2em">String sql="select * from test"; </p> <p style="text-indent: 2em">ResultSet rs=stmt.executeQuery(sql); </p> <p style="text-indent: 2em">while(rs.next()) {%> </p> <p style="text-indent: 2em">您的W一个字D内容ؓQ?lt;%=rs.getString(1)%> </p> <p style="text-indent: 2em">您的W二个字D内容ؓQ?lt;%=rs.getString(2)%> </p> <p style="text-indent: 2em"><%}%> </p> <p style="text-indent: 2em"><%out.print("数据?**作成功,恭喜?);%> </p> <p style="text-indent: 2em"><%rs.close(); </p> <p style="text-indent: 2em">stmt.close(); </p> <p style="text-indent: 2em">conn.close(); </p> <p style="text-indent: 2em">%> </p> <p style="text-indent: 2em"></body> </p> <p style="text-indent: 2em"></html> </p> <p style="text-indent: 2em">二、jspq接Sql Server7.0/2000数据?</p> <p style="text-indent: 2em">testsqlserver.jsp如下Q?</p> <p style="text-indent: 2em"><%@ page contentType="text/html;charset=gb2312"%> </p> <p style="text-indent: 2em"><%@ page import="java.sql.*"%> </p> <p style="text-indent: 2em"><html> </p> <p style="text-indent: 2em"><body> </p> <p style="text-indent: 2em"><%Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance(); </p> <p style="text-indent: 2em">String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs"; </p> <p style="text-indent: 2em">//pubsZ的数据库?</p> <p style="text-indent: 2em">String user="sa"; </p> <p style="text-indent: 2em">String password=""; </p> <p style="text-indent: 2em">Connection conn= DriverManager.getConnection(url,user,password); </p> <p style="text-indent: 2em">Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); </p> <p style="text-indent: 2em">String sql="select * from test"; </p> <p style="text-indent: 2em">ResultSet rs=stmt.executeQuery(sql); </p> <p style="text-indent: 2em">while(rs.next()) {%> </p> <p style="text-indent: 2em">您的W一个字D内容ؓQ?lt;%=rs.getString(1)%> </p> <p style="text-indent: 2em">您的W二个字D内容ؓQ?lt;%=rs.getString(2)%> </p> <p style="text-indent: 2em"><%}%> </p> <p style="text-indent: 2em"><%out.print("数据?**作成功,恭喜?);%> </p> <p style="text-indent: 2em"><%rs.close(); </p> <p style="text-indent: 2em">stmt.close(); </p> <p style="text-indent: 2em">conn.close(); </p> <p style="text-indent: 2em">%> </p> <p style="text-indent: 2em"></body> </p> <p style="text-indent: 2em"></html> </p> <p style="text-indent: 2em">三、jspq接DB2数据?</p> <p style="text-indent: 2em">testdb2.jsp如下Q?</p> <p style="text-indent: 2em"><%@ page contentType="text/html;charset=gb2312"%> </p> <p style="text-indent: 2em"><%@ page import="java.sql.*"%> </p> <p style="text-indent: 2em"><html> </p> <p style="text-indent: 2em"><body> </p> <p style="text-indent: 2em"><%Class.forName("com.ibm.db2.jdbc.app.DB2Driver ").newInstance(); </p> <p style="text-indent: 2em">String url="jdbc:db2://localhost:5000/sample"; </p> <p style="text-indent: 2em">//sampleZ的数据库?</p> <p style="text-indent: 2em">String user="admin"; </p> <p style="text-indent: 2em">String password=""; </p> <p style="text-indent: 2em">Connection conn= DriverManager.getConnection(url,user,password); </p> <p style="text-indent: 2em">Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); </p> <p style="text-indent: 2em">String sql="select * from test"; </p> <p style="text-indent: 2em">ResultSet rs=stmt.executeQuery(sql); </p> <p style="text-indent: 2em">while(rs.next()) {%> </p> <p style="text-indent: 2em">您的W一个字D内容ؓQ?lt;%=rs.getString(1)%> </p> <p style="text-indent: 2em">您的W二个字D内容ؓQ?lt;%=rs.getString(2)%> </p> <p style="text-indent: 2em"><%}%> </p> <p style="text-indent: 2em"><%out.print("数据?**作成功,恭喜?);%> </p> <p style="text-indent: 2em"><%rs.close(); </p> <p style="text-indent: 2em">stmt.close(); </p> <p style="text-indent: 2em">conn.close(); </p> <p style="text-indent: 2em">%> </p> <p style="text-indent: 2em"></body> </p> <p style="text-indent: 2em"></html> </p> <p style="text-indent: 2em">四、jspq接Informix数据?</p> <p style="text-indent: 2em">testinformix.jsp如下Q?</p> <p style="text-indent: 2em"><%@ page contentType="text/html;charset=gb2312"%> </p> <p style="text-indent: 2em"><%@ page import="java.sql.*"%> </p> <p style="text-indent: 2em"><html> </p> <p style="text-indent: 2em"><body> </p> <p style="text-indent: 2em"><%Class.forName("com.informix.jdbc.IfxDriver").newInstance(); </p> <p style="text-indent: 2em">String url = </p> <p style="text-indent: 2em">"jdbc:informix-sqli://123.45.67.89:1533/testDB:INFORMIXSERVER=myserver; </p> <p style="text-indent: 2em">user=testuser;password=testpassword"; </p> <p style="text-indent: 2em">//testDBZ的数据库?</p> <p style="text-indent: 2em">Connection conn= DriverManager.getConnection(url); </p> <p style="text-indent: 2em">Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); </p> <p style="text-indent: 2em">String sql="select * from test"; </p> <p style="text-indent: 2em">ResultSet rs=stmt.executeQuery(sql); </p> <p style="text-indent: 2em">while(rs.next()) {%> </p> <p style="text-indent: 2em">您的W一个字D内容ؓQ?lt;%=rs.getString(1)%> </p> <p style="text-indent: 2em">您的W二个字D内容ؓQ?lt;%=rs.getString(2)%> </p> <p style="text-indent: 2em"><%}%> </p> <p style="text-indent: 2em"><%out.print("数据?**作成功,恭喜?);%> </p> <p style="text-indent: 2em"><%rs.close(); </p> <p style="text-indent: 2em">stmt.close(); </p> <p style="text-indent: 2em">conn.close(); </p> <p style="text-indent: 2em">%> </p> <p style="text-indent: 2em"></body> </p> <p style="text-indent: 2em"></html> </p> <p style="text-indent: 2em">五、jspq接Sybase数据?</p> <p style="text-indent: 2em">testmysql.jsp如下Q?</p> <p style="text-indent: 2em"><%@ page contentType="text/html;charset=gb2312"%> </p> <p style="text-indent: 2em"><%@ page import="java.sql.*"%> </p> <p style="text-indent: 2em"><html> </p> <p style="text-indent: 2em"><body> </p> <p style="text-indent: 2em"><%Class.forName("com.sybase.jdbc.SybDriver").newInstance(); </p> <p style="text-indent: 2em">String url =" jdbc:sybase:Tds:localhost:5007/tsdata"; </p> <p style="text-indent: 2em">//tsdataZ的数据库?</p> <p style="text-indent: 2em">Properties sysProps = System.getProperties(); </p> <p style="text-indent: 2em">SysProps.put("user","userid"); </p> <p style="text-indent: 2em">SysProps.put("password","user_password"); </p> <p style="text-indent: 2em">Connection conn= DriverManager.getConnection(url, SysProps); </p> <p style="text-indent: 2em">Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); </p> <p style="text-indent: 2em">String sql="select * from test"; </p> <p style="text-indent: 2em">ResultSet rs=stmt.executeQuery(sql); </p> <p style="text-indent: 2em">while(rs.next()) {%> </p> <p style="text-indent: 2em">您的W一个字D内容ؓQ?lt;%=rs.getString(1)%> </p> <p style="text-indent: 2em">您的W二个字D内容ؓQ?lt;%=rs.getString(2)%> </p> <p style="text-indent: 2em"><%}%> </p> <p style="text-indent: 2em"><%out.print("数据?**作成功,恭喜?);%> </p> <p style="text-indent: 2em"><%rs.close(); </p> <p style="text-indent: 2em">stmt.close(); </p> <p style="text-indent: 2em">conn.close(); </p> <p style="text-indent: 2em">%> </p> <p style="text-indent: 2em"></body> </p> <p style="text-indent: 2em"></html> </p> <p style="text-indent: 2em">六、jspq接MySQL数据?</p> <p style="text-indent: 2em">testmysql.jsp如下Q?</p> <p style="text-indent: 2em"><%@ page contentType="text/html;charset=gb2312"%> </p> <p style="text-indent: 2em"><%@ page import="java.sql.*"%> </p> <p style="text-indent: 2em"><html> </p> <p style="text-indent: 2em"><body> </p> <p style="text-indent: 2em"><%Class.forName("org.gjt.mm.mysql.Driver").newInstance(); </p> <p style="text-indent: 2em">String url ="jdbc:mysql://localhost/softforum?user=soft&password=soft1234&useUnicode=true&characterEncoding=8859_1" </p> <p style="text-indent: 2em">//testDBZ的数据库?</p> <p style="text-indent: 2em">Connection conn= DriverManager.getConnection(url); </p> <p style="text-indent: 2em">Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); </p> <p style="text-indent: 2em">String sql="select * from test"; </p> <p style="text-indent: 2em">ResultSet rs=stmt.executeQuery(sql); </p> <p style="text-indent: 2em">while(rs.next()) {%> </p> <p style="text-indent: 2em">您的W一个字D内容ؓQ?lt;%=rs.getString(1)%> </p> <p style="text-indent: 2em">您的W二个字D内容ؓQ?lt;%=rs.getString(2)%> </p> <p style="text-indent: 2em"><%}%> </p> <p style="text-indent: 2em"><%out.print("数据?**作成功,恭喜?);%> </p> <p style="text-indent: 2em"><%rs.close(); </p> <p style="text-indent: 2em">stmt.close(); </p> <p style="text-indent: 2em">conn.close(); </p> <p style="text-indent: 2em">%> </p> <p style="text-indent: 2em"></body> </p> <p style="text-indent: 2em"></html> </p> <p style="text-indent: 2em">七、jspq接PostgreSQL数据?</p> <p style="text-indent: 2em">testmysql.jsp如下Q?</p> <p style="text-indent: 2em"><%@ page contentType="text/html;charset=gb2312"%> </p> <p style="text-indent: 2em"><%@ page import="java.sql.*"%> </p> <p style="text-indent: 2em"><html> </p> <p style="text-indent: 2em"><body> </p> <p style="text-indent: 2em"><%Class.forName("org.postgresql.Driver").newInstance(); </p> <p style="text-indent: 2em">String url ="jdbc:postgresql://localhost/soft" </p> <p style="text-indent: 2em">//softZ的数据库?</p> <p style="text-indent: 2em">String user="myuser"; </p> <p style="text-indent: 2em">String password="mypassword"; </p> <p style="text-indent: 2em">Connection conn= DriverManager.getConnection(url,user,password); </p> <p style="text-indent: 2em">Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); </p> <p style="text-indent: 2em">String sql="select * from test"; </p> <p style="text-indent: 2em">ResultSet rs=stmt.executeQuery(sql); </p> <p style="text-indent: 2em">while(rs.next()) {%> </p> <p style="text-indent: 2em">您的W一个字D内容ؓQ?lt;%=rs.getString(1)%> </p> <p style="text-indent: 2em">您的W二个字D内容ؓQ?lt;%=rs.getString(2)%> </p> <p style="text-indent: 2em"><%}%> </p> <p style="text-indent: 2em"><%out.print("数据?**作成功,恭喜?);%> </p> <p style="text-indent: 2em"><%rs.close(); </p> <p style="text-indent: 2em">stmt.close(); </p> <p style="text-indent: 2em">conn.close(); </p> <p style="text-indent: 2em">%> </p> <p style="text-indent: 2em"></body> </p> <p style="text-indent: 2em"></html> </p> <p style="text-indent: 2em">?q接access例子</p> <p style="text-indent: 2em">public class AccessTest {</p> <p style="text-indent: 2em"> public static void main(String args[]) {</p> <p style="text-indent: 2em">  try {</p> <p style="text-indent: 2em">   String strurl = "jdbc:odbc:MS Access Database;DBQ=d:\\books.mdb";</p> <p style="text-indent: 2em">   Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");</p> <p style="text-indent: 2em">   Connection conn = DriverManager.getConnection(strurl, "", "");</p> <p style="text-indent: 2em">   Statement stmt = conn.createStatement();</p> <p style="text-indent: 2em">   ResultSet rs = stmt.executeQuery("select * from books");</p> <p style="text-indent: 2em">   while (rs.next())</p> <p style="text-indent: 2em">   {</p> <p style="text-indent: 2em">    System.out.print(rs.getString(1) + "  ");</p> <p style="text-indent: 2em">    System.out.print(rs.getString(2));</p> <p style="text-indent: 2em">   }</p> <p style="text-indent: 2em">  } catch (Exception e) {</p> <p style="text-indent: 2em">   System.out.println(e);</p> <p style="text-indent: 2em">  }</p> <p style="text-indent: 2em"> }</p> <p style="text-indent: 2em">}</p> </div> 二、JDBCq接MySql方式<br /> <br /> 下面是用JDBCq接MySql的一个小的教E?<br /> <br /> 1、查N动程?br /> <br /> MySQL目前提供的java驱动E序为Connection/JQ可以从MySQL官方|站下蝲Qƈ扑ֈmysql-connector-java-3.0.15-ga-bin.jar文gQ此驱动E序为纯java驱动E序Q不需做其他配|?br /> <br /> 2、动态指定classpath<br /> <br /> 如果需要执行时动态指定classpathQ就在执行时采用Qcp方式。否则将上面?jar文g加入到classpath环境变量中?br /> <br /> 3、加载驱动程?br /> <br /> try{<br /> Class.forName(com.mysql.jdbc.Driver);<br /> System.out.println(Success loading Mysql Driver!);<br /> }catch(Exception e)<br /> {<br /> System.out.println(Error loading Mysql Driver!);<br /> e.printStackTrace();<br /> }<br /> <br /> 4、设|连接的url<br /> <br /> jdbcQmysqlQ?/localhost/databasename[?pa=va][Qpa=va]  <br /> <br /> 三、以下列Z在用JDBC来连接Oracle数据库时可以使用的一些技?br /> <br /> 1、在客户端Y件开发中使用Thin驱动E序<br /> <br /> 在开发Java软g斚wQOracle的数据库提供了四U类型的驱动E序Q二U用于应用Y件、applets、servlets{客L软gQ另外二U?用于数据库中的Java存储q程{服务器端Y件。在客户机端软g的开发中Q我们可以选择OCI驱动E序或Thin驱动E序。OCI驱动E序利用Java?地化接口QJNIQ,通过Oracle客户端Y件与数据库进行通讯。Thin驱动E序是纯Java驱动E序Q它直接与数据库q行通讯。ؓ了获得最高的?能,Oracle在客L软g的开发中使用OCI驱动E序Q这g是正的。但我徏议用Thin驱动E序Q因为通过多次试发现Q在通常情况 下,Thin驱动E序的性能都超q了OCI驱动E序?br /> <br /> 2、关闭自动提交功能,提高pȝ性能<br /> <br /> 在第一ơ徏立与数据库的q接Ӟ在缺省情况下Q连接是在自动提交模式下的。ؓ了获得更好的性能Q可以通过调用带布值false参数的ConnectioncȝsetAutoCommit()Ҏ关闭自动提交功能Q如下所C:<br /> <br /> conn.setAutoCommit(false);<br /> <br /> 值得注意的是Q一旦关闭了自动提交功能Q我们就需要通过调用Connectioncȝcommit()和rollback()Ҏ来h工的方式对事务进行管理?br /> <br /> 3、在动态SQL或有旉限制的命令中使用Statement对象<br /> <br /> 在执行SQL命oӞ我们有二U选择Q可以用PreparedStatement对象Q也可以使用Statement对象。无论多次C用同一?SQL命oQPreparedStatement都只对它解析和编译一ơ。当使用Statement对象Ӟ每次执行一个SQL命oӞ都会对它q行解析 和编译。这可能会你认为,使用PreparedStatement对象比用Statement对象的速度更快。然而,我进行的试表明Q在客户端Y?中,情况q如此。因此,在有旉限制的SQL操作中,除非成批地处理SQL命oQ我们应当考虑使用Statement对象?br /> <br /> 此外Q用Statement对象也得编写动态SQL命o更加单,因ؓ我们可以字W串q接在一P建立一个有效的SQL命o。因此,我认为,Statement对象可以使动态SQL命o的创建和执行变得更加单?br /> <br /> 4、利用helper函数对动态SQL命oq行格式?br /> <br /> 在创Z用Statement对象执行的动态SQL命oӞ我们需要处理一些格式化斚w的问题。例如,如果我们惛_Z个将名字O'Reilly插入?中的SQL命oQ则必须使用二个相连?#8220;''”h换O'Reilly中的“'”受完成这些工作的最好的Ҏ是创Z个完成替换操作的helper?法,然后在连接字W串心服用公式表达一个SQL命oӞ使用创徏的helperҎ。与此类似的是,我们可以让helperҎ接受一个Date型的| 然后让它输出ZOracle的to_date()函数的字W串表达式?br /> <br /> 5、利用PreparedStatement对象提高数据库的M效率<br /> <br /> 在用PreparedStatement对象执行SQL命oӞ命o被数据库q行解析和编译,然后被放到命令缓冲区。然后,每当执行同一?PreparedStatement对象Ӟ它就会被再解析一ơ,但不会被再次~译。在~冲Z可以发现预编译的命oQƈ且可以重C用。在有大量用L 企业U应用Y件中Q经怼重复执行相同的SQL命oQ用PreparedStatement对象带来的编译次数的减少能够提高数据库的M性能。如果不 是在客户端创建、预备、执行PreparedStatementd需要的旉长于StatementdQ我会徏议在除动态SQL命o之外的所有情况下 使用PreparedStatement对象?br /> <br /> 6、在成批处理重复的插入或更新操作中用PreparedStatement对象<br /> <br /> 如果成批地处理插入和更新操作Q就能够显著地减它们所需要的旉。Oracle提供的Statement?CallableStatementq不真正地支持批处理Q只有PreparedStatement对象才真正地支持批处理。我们可以?addBatch()和executeBatch()Ҏ选择标准的JDBC批处理,或者通过利用PreparedStatement对象?setExecuteBatch()Ҏ和标准的executeUpdate()Ҏ选择速度更快的Oracle专有的方法。要使用Oracle专有的批 处理机制Q可以以如下所C的方式调用setExecuteBatch()Q?br /> <br /> PreparedStatement pstmt3D null;<br /> try {<br /> ((OraclePreparedStatement)pstmt).setExecuteBatch(30);<br /> ...<br /> pstmt.executeUpdate();<br /> } <br /> 调用setExecuteBatch()时指定的值是一个上限,当达到该值时Q就会自动地引发SQL命o执行Q标准的executeUpdate()?法就会被作ؓ批处理送到数据库中。我们可以通过调用PreparedStatementcȝsendBatch()Ҏ随时传输批处理Q务?br /> <br /> 7、用Oracle locatorҎ插入、更新大对象QLOBQ?br /> <br /> Oracle的PreparedStatementcM完全支持BLOB和CLOB{大对象的处理,其是Thin驱动E序不支持利?PreparedStatement对象的setObject()和setBinaryStream()Ҏ讄BLOB的|也不支持利用 setCharacterStream()Ҏ讄CLOB的倹{只有locator本n中的Ҏ才能够从数据库中获取LOBcd的倹{可以?PreparedStatement对象插入或更新LOBQ但需要用locator才能获取LOB的倹{由于存在这二个问题Q因此,我徏议?locator的方法来插入、更新或获取LOB的倹{?br /> <br /> 8、用SQL92语法调用存储q程<br /> <br /> 在调用存储过E时Q我们可以用SQL92或Oracle PL/SQLQ由于用Oracle PL/SQLq没有什么实际的好处Q而且会给以后l护你的应用E序的开发h员带来麻烦,因此Q我在调用存储过E时使用SQL92?br /> <br /> 9、用Object SQL对象模式{Ud数据库中<br /> <br /> 既然可以Oracle的数据库作ؓ一U面向对象的数据库来使用Q就可以考虑应用程序中的面向对象模式{到数据库中。目前的Ҏ是创建Java bean作ؓ伪装的数据库对象Q将它们的属性映到关系表中Q然后在q些bean中添加方法。尽这样作在Java中没有什么问题,但由于操作都是在数据 库之外进行的Q因此其他访问数据库的应用Y件无法利用对象模式。如果利用Oracle的面向对象的技术,可以通过创徏一个新的数据库对象cd在数据库中模 仿其数据和操作,然后使用JPublisher{工L成自qJava beancR如果用这U方式,不但Java应用E序可以使用应用软g的对象模式,其他需要共享你的应用中的数据和操作的应用Y件也可以使用应用软g中的 对象模式?br /> <br /> 10、利用SQL完成数据库内的操?br /> <br /> 我要向大家介l的最重要的经验是充分利用SQL的面向集合的Ҏ来解x据库处理需求,而不是用Java{过E化的编E语a?br /> <br /> 如果~程人员要在一个表中查找许多行Q结果中的每个行都会查找其他表中的数据,最后,~程人员创徏了独立的UPDATE命o来成批地更新W一个表中的?据。与此类似的d可以通过在set子句中用多列子查询而在一个UPDATE命o中完成。当能够在单一的SQL命o中完成Q务,何必要让数据在网上流?去的?我徏议用戯真学习如何最大限度地发挥SQL的功能?<br /> <br /> <strong>JDBC基础教程之驱动设|?/strong> <br /> <font face="Tahoma">1、概q?br />    DriverManager cL JDBC 的管理层Q作用于用户和驱动程序之间。它跟踪可用的驱动程序,q在数据库和相应驱动E序之间建立q接。另外,DriverManager cM处理诸如驱动E序d旉限制及登录和跟踪消息的显C等事务?br />   <br /> <br />   <br /> <br />   <br /> <br /> ?于简单的应用E序Q一般程序员需要在此类中直接用的唯一Ҏ?DriverManager.getConnection。正如名U所C,该方法将建立与数据库的连接。JDBC 允许用户调用 DriverManager 的方?getDriver、getDrivers ?registerDriver ?Driver 的方?connect。但多数情况下,?DriverManager cȝ理徏立连接的l节Z{?br />    1、跟t可用驱动程?br />    DriverManager cd含一?Driver c,它们已通过调用Ҏ DriverManager.registerDriver 对自p行了注册。所?Driver c都必须包含有一个静态部分。它创徏该类的实例,然后在加载该实例?DriverManager c进行注册。这P用户正常情况下将不会直接调用 DriverManager.registerDriverQ而是在加载驱动程序时由驱动程序自动调用。加?Driver c,然后自动?DriverManager 中注册的方式有两U:<br />    通过调用Ҏ Class.forName。这显式地加蝲驱动E序cR由于这与外部设|无养I因此推荐使用q种加蝲驱动E序的方法。以下代码加载类 acme.db.DriverQ?br /> class.forname("acme.db.driver"); <br /> <br />    如果?acme.db.Driver ~写为加载时创徏实例Qƈ调用以该实例为参数的 DriverManager.registerDriverQ本该如此)Q则它在 DriverManager 的驱动程序列表中Qƈ可用于创接?br />    ?q将驱动E序d?java.lang.System 的属?jdbc.drivers 中。这是一个由 DriverManager cd载的驱动E序cd的列表,由冒号分隔:初始?DriverManager cLQ它搜烦pȝ属?jdbc.driversQ如果用户已输入了一个或多个驱动E序Q则 DriverManager cd试图加蝲它们。以下代码说明程序员如何?~/.hotjava/properties 中输入三个驱动程序类Q启动时QHotJava 把它加载到pȝ属性列表中Q:<br />   <br /> <br />   <br /> <br /> jdbc.drivers=foo.bah.driver:wombat.sql.driver:bad.test.ourdriver; <br /> <br />    ?DriverManager Ҏ的第一ơ调用将自动加蝲q些驱动E序cR?br />    ?意:加蝲驱动E序的第二种Ҏ需要持久的预设环境。如果对q一点不能保证,则调用方?Class.forName 昑ּ地加载每个驱动程序就昑־更ؓ安全。这也是引入特定驱动E序的方法,因ؓ一?DriverManager c被初始化,它将不再?jdbc.drivers 属性列表?br />    在以上两U情况中Q新加蝲?Driver c都要通过调用 DriverManager.registerDriver c进行自我注册。如上所qͼ加蝲cL自动执行这一q程?br />    ׃安全斚w的原因,JDBC 理层将跟踪哪个cd载器提供哪个驱动E序。这P?DriverManager cL开q接Ӟ它仅使用本地文gpȝ或与发出q接h的代码相同的cd载器提供的驱动程序?br />    2、徏立连?br />    ??Driver cdƈ?DriverManager cM注册后,它们卛_用来与数据库建立q接。当调用 DriverManager.getConnection Ҏ发出q接hӞDriverManager 检查每个驱动程序,查看它是否可以徏立连接?br />    有时可能有多?JDBC 驱动E序可以与给定的 URL q接。例如,与给定远E数据库q接Ӟ可以使用 JDBC-ODBC 桥驱动程序、JDBC 到通用|络协议驱动E序或数据库厂商提供的驱动程序。在q种情况下,试驱动E序的顺序至关重要,因ؓ DriverManager 用它所扑ֈ的第一个可以成功连接到l定 URL 的驱动程序?br />    首先 DriverManager 试图按注册的序使用每个驱动E序Qjdbc.drivers 中列出的驱动E序L先注册)。它蟩q代码不可信ȝ驱动E序Q除非加载它们的源与试图打开q接的代码的源相同?br />    它通过轮流在每个驱动程序上调用Ҏ Driver.connectQƈ向它们传递用户开始传递给Ҏ DriverManager.getConnection ?URL 来对驱动E序q行试Q然后连接第一个认 URL 的驱动程序?br />    q种Ҏ初看h效率不高Q但׃不可能同时加载数十个驱动E序Q因此每ơ连接实际只需几个q程调用和字W串比较?br />    以下代码是通常情况下用驱动E序Q例?JDBC-ODBC 桥驱动程序)建立q接所需所有步骤的CZQ?br />   <br /> <br />    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); //加蝲驱动E序 <br /> <br />    String url = "jdbc:dbc:fred";<br />    DriverManager.getConnection(url, "userID", "passwd");</font><br /> </div> <img src ="http://www.aygfsteel.com/lishen226/aggbug/269349.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/lishen226/" target="_blank">锋行</a> 2009-05-07 10:25 <a href="http://www.aygfsteel.com/lishen226/archive/2009/05/07/269349.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <a href="http://www.aygfsteel.com/" title="狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频">狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频</a> </div> </footer> վ֩ģ壺 <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">Ȫ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">Ѯ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">֥</a>| <a href="http://" target="_blank">Ů</a>| <a href="http://" target="_blank">˳</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ͤ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">¡</a>| <a href="http://" target="_blank">ɳ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">̨</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">Ͽ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">Ժ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ӥ̶</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ȫ</a>| <a href="http://" target="_blank">̷</a>| <a href="http://" target="_blank">ԭ</a>| <a href="http://" target="_blank">ƽ</a>| <a href="http://" target="_blank">Ϫ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">÷</a>| <a href="http://" target="_blank">ɽ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ո</a>| <a href="http://" target="_blank">㰲</a>| <a href="http://" target="_blank">ҵ</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>