Java Blog From WeiChunHua

          Java

          導航

          <2008年11月>
          2627282930311
          2345678
          9101112131415
          16171819202122
          23242526272829
          30123456

          留言簿(1)

          隨筆分類

          隨筆檔案

          相冊

          閱讀排行榜

          評論排行榜

          常用鏈接

          統計

          develop

          news

          最新評論

          2008年11月19日 #

          JDBC連接數據庫大全

                    現在有好多初學jsp的網友經常會問數據庫怎么連接啊,怎么老出錯啊?所以我集中的在這寫篇文章供大家參考,其實這種把數據庫邏輯全部放在jsp里未必是好的做法,但是有利于初學者學習,所以我就這樣做了,當大家學到一定程度的時候,可以考慮用MVC的模式開發。在練習這些代碼的時候,你一定將jdbc的驅動程序放到服務器的類路徑里,然后要在數據庫里建一個表test,有兩個字段比如為test1test2,可以用下面SQL
          create table test(test1 varchar(20),test2 varchar(20)
          然后向這個表寫入一條測試紀錄
          那么現在開始我們的jsp和數據庫之旅吧。
          一、jsp連接Oracle8/8i/9i數據庫(用thin模式)
          testoracle.jsp
          如下:
          <%@ page contentType="text/html;charset=gb2312"%>
          <%@ page import="java.sql.*"%>
          <html>
          <body>
          <%Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
          String url="jdbc:oracle:thin:@localhost:1521:orcl";
          //orcl
          為你的數據庫的SID
          String user="scott";
          String password="tiger";
          Connection conn= DriverManager.getConnection(url,user,password);
          Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
          String sql="select * from test";
          ResultSet rs=stmt.executeQuery(sql);
          while(rs.next()) {%>
          您的第一個字段內容為:<%=rs.getString(1)%>
          您的第二個字段內容為:<%=rs.getString(2)%>
          <%}%>
          <%out.print("
          數據庫操作成功,恭喜你");%>
          <%rs.close();
          stmt.close();
          conn.close();
          %>
          </body>
          </html>
          二、jsp連接Sql Server7.0/2000數據庫
          testsqlserver.jsp
          如下:
          <%@ page contentType="text/html;charset=gb2312"%>
          <%@ page import="java.sql.*"%>
          <html>
          <body>
          <%Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
          String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs";
          //pubs
          為你的數據庫的
          String user="sa";
          String password="";
          Connection conn= DriverManager.getConnection(url,user,password);
          Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
          String sql="select * from test";
          ResultSet rs=stmt.executeQuery(sql);
          while(rs.next()) {%>
          您的第一個字段內容為:<%=rs.getString(1)%>
          您的第二個字段內容為:<%=rs.getString(2)%>
          <%}%>
          <%out.print("
          數據庫操作成功,恭喜你");%>
          <%rs.close();
          stmt.close();
          conn.close();
          %>
          </body>
          </html>
          三、jsp連接DB2數據庫
          testdb2.jsp
          如下:
          <%@ page contentType="text/html;charset=gb2312"%>
          <%@ page import="java.sql.*"%>
          <html>
          <body>
          <%Class.forName("com.ibm.db2.jdbc.app.DB2Driver ").newInstance();
          String url="jdbc:db2://localhost:5000/sample";
          //sample
          為你的數據庫名
          String user="admin";
          String password="";
          Connection conn= DriverManager.getConnection(url,user,password);
          Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
          String sql="select * from test";
          ResultSet rs=stmt.executeQuery(sql);
          while(rs.next()) {%>
          您的第一個字段內容為:<%=rs.getString(1)%>
          您的第二個字段內容為:<%=rs.getString(2)%>
          <%}%>
          <%out.print("
          數據庫操作成功,恭喜你");%>
          <%rs.close();
          stmt.close();
          conn.close();
          %>
          </body>
          </html>
          四、jsp連接Informix數據庫
          testinformix.jsp
          如下:
          <%@ page contentType="text/html;charset=gb2312"%>
          <%@ page import="java.sql.*"%>
          <html>
          <body>
          <%Class.forName("com.informix.jdbc.IfxDriver").newInstance();
          String url =
          "jdbc:informix-sqli://123.45.67.89:1533/testDB:INFORMIXSERVER=myserver;
          user=testuser;password=testpassword";
          //testDB
          為你的數據庫名
          Connection conn= DriverManager.getConnection(url);
          Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
          String sql="select * from test";
          ResultSet rs=stmt.executeQuery(sql);
          while(rs.next()) {%>
          您的第一個字段內容為:<%=rs.getString(1)%>
          您的第二個字段內容為:<%=rs.getString(2)%>
          <%}%>
          <%out.print("
          數據庫操作成功,恭喜你");%>
          <%rs.close();
          stmt.close();
          conn.close();
          %>
          </body>
          </html>
          五、jsp連接Sybase數據庫
          testmysql.jsp
          如下:
          <%@ page contentType="text/html;charset=gb2312"%>
          <%@ page import="java.sql.*"%>
          <html>
          <body>
          <%Class.forName("com.sybase.jdbc.SybDriver").newInstance();
          String url =" jdbc:sybase:Tds:localhost:5007/tsdata";
          //tsdata
          為你的數據庫名
          Properties sysProps = System.getProperties();
          SysProps.put("user","userid");
          SysProps.put("password","user_password");
          Connection conn= DriverManager.getConnection(url, SysProps);
          Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
          String sql="select * from test";
          ResultSet rs=stmt.executeQuery(sql);
          while(rs.next()) {%>
          您的第一個字段內容為:<%=rs.getString(1)%>
          您的第二個字段內容為:<%=rs.getString(2)%>
          <%}%>
          <%out.print("
          數據庫操作成功,恭喜你");%>
          <%rs.close();
          stmt.close();
          conn.close();
          %>
          </body>
          </html>
          六、jsp連接MySQL數據庫
          testmysql.jsp
          如下:
          <%@ page contentType="text/html;charset=gb2312"%>
          <%@ page import="java.sql.*"%>
          <html>
          <body>
          <%Class.forName("org.gjt.mm.mysql.Driver").newInstance();
          String url ="jdbc:mysql://localhost/softforum?user=soft&password=soft1234&useUnicode=true&characterEncoding=8859_1"
          //testDB
          為你的數據庫名
          Connection conn= DriverManager.getConnection(url);
          Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
          String sql="select * from test";
          ResultSet rs=stmt.executeQuery(sql);
          while(rs.next()) {%>
          您的第一個字段內容為:<%=rs.getString(1)%>
          您的第二個字段內容為:<%=rs.getString(2)%>
          <%}%>
          <%out.print("
          數據庫操作成功,恭喜你");%>
          <%rs.close();
          stmt.close();
          conn.close();
          %>
          </body>
          </html>
          七、jsp連接PostgreSQL數據庫
          testmysql.jsp
          如下:
          <%@ page contentType="text/html;charset=gb2312"%>
          <%@ page import="java.sql.*"%>
          <html>
          <body>
          <%Class.forName("org.postgresql.Driver").newInstance();
          String url ="jdbc:postgresql://localhost/soft"
          //soft
          為你的數據庫名
          String user="myuser";
          String password="mypassword";
          Connection conn= DriverManager.getConnection(url,user,password);
          Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
          String sql="select * from test";
          ResultSet rs=stmt.executeQuery(sql);
          while(rs.next()) {%>
          您的第一個字段內容為:<%=rs.getString(1)%>
          您的第二個字段內容為:<%=rs.getString(2)%>
          <%}%>
          <%out.print("
          數據庫操作成功,恭喜你");%>
          <%rs.close();
          stmt.close();
          conn.close();
          %>
          </body>
          </html>

          posted @ 2008-12-17 16:47 sunny spring 閱讀(315) | 評論 (0)編輯 收藏

          Hibernate入門程序

                 以下程序是Hiberante入門程序:代碼如下:首先說hibernate開發流程.A、準備一個POJO類  B、創建類的映射和配置文件(hibernate.cfg.xml  class.hbm.xml)class.hbm.xml此配置文件是必須與POJO類中的屬性一一對應.
          現在我以我創建的程序為例來進行說明:數據庫為demo,表的名字為admin
          1、POJO類

          package com.wch.pojo;

          public class Admin {
           private int id;
           private String username;
           private String password;
           public int getId() {
            return id;
           }
           public void setId(int id) {
            this.id = id;
           }
           public String getPassword() {
            return password;
           }
           public void setPassword(String password) {
            this.password = password;
           }
           public String getUsername() {
            return username;
           }
           public void setUsername(String username) {
            this.username = username;
           }
          }

          class.hbm.xml映射文件存放位置必須于POJO位置一致.也就是說必須放在同一個目錄.hibernate.cfg.xml放在src根目錄下.
          2、創建hibernate.cfg.xml和class.hbm.xml(class指的是POJO類的名字)
          class.hbm.xml:
          <?xml version="1.0" encoding="utf-8"?>
          <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
          "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
          <!--
              Mapping file autogenerated by MyEclipse Persistence Tools
          -->
          <hibernate-mapping>
              <class name="com.wch.pojo.Admin" table="admin">
                  <id name="id" type="integer">
                      <column name="id" />
                      <generator class="assigned"></generator>
                  </id>
                  <property name="username" type="string">
                      <column name="username" length="32" not-null="false" />
                  </property>
                  <property name="password" type="string">
                      <column name="password" length="20" not-null="false" />
                  </property>
              </class>
          </hibernate-mapping>
          hibernate.cfg.xml:

          <?xml version='1.0' encoding='UTF-8'?>
          <!DOCTYPE hibernate-configuration PUBLIC
                    "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
                    "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

          <!-- Generated by MyEclipse Hibernate Tools.                   -->
          <hibernate-configuration>

          <session-factory>
           <property name="dialect">
            org.hibernate.dialect.MySQLDialect
           </property>
           <property name="connection.url">
            jdbc:mysql://localhost:3306/demo
           </property>
           <property name="connection.username">root</property>
           <property name="connection.password">****</property>
           <property name="connection.driver_class">
            com.mysql.jdbc.Driver
           </property>
           <property name="myeclipse.connection.profile">mysql5.0</property>
           <property name="show_sql">true</property>
           <mapping resource="com/wch/pojo/Admin.hbm.xml" />

          </session-factory>

          </hibernate-configuration>


          3、創建應用程序并進行代碼測試:

          package com.wch.op;

          import org.hibernate.Session;
          import org.hibernate.SessionFactory;
          import org.hibernate.Transaction;
          import org.hibernate.cfg.Configuration;

          import com.wch.pojo.Admin;

          public class UserOperation {
           public static void main(String[] args)throws Exception{
            Configuration config = new Configuration().configure();
            // 創建工廠
            SessionFactory factory = config.buildSessionFactory();
            // 打開session
            Session session = factory.openSession();
            // 事務提交
            try{
             Transaction tx = session.beginTransaction();
             // 創建對象
             Admin hb = new Admin();
             hb.setId(3);
             hb.setUsername("Hibernate3.2");
             hb.setPassword("20081202");
             //hb.setUsername("WCH");
             //hb.setPassword("Hibernate");
             // 執行插入語句,在hibernat中操作的是一個對象
             session.save(hb);
             // 提交事務
             tx.commit();
            }catch(Exception e)
            {
             System.out.println("error Msg:"+e.getMessage());
            }finally{
              // close session
              session.close();
            }
           }
          }

          更為詳細的解釋請參照Hibernate官方網站:www.hibernate.org


          posted @ 2008-12-02 10:19 sunny spring 閱讀(282) | 評論 (0)編輯 收藏

          windows系統命令全集

          ASSOC    顯示或修改文件擴展名關聯。
          AT       計劃在計算機上運行的命令和程序。
          ATTRIB   顯示或更改文件屬性。
          BREAK    設置或清除擴展式 CTRL+C 檢查。
          CACLS    顯示或修改文件的訪問控制列表(ACLs)。
          CALL     從另一個批處理程序調用這一個。
          CD       顯示當前目錄的名稱或將其更改。
          CHCP     顯示或設置活動代碼頁數。
          CHDIR    顯示當前目錄的名稱或將其更改。
          CHKDSK   檢查磁盤并顯示狀態報告。
          CHKNTFS  顯示或修改啟動時間磁盤檢查。
          CLS      清除屏幕。
          CMD      打開另一個 Windows 命令解釋程序窗口。
          COLOR    設置默認控制臺前景和背景顏色。
          COMP     比較兩個或兩套文件的內容。
          COMPACT  顯示或更改 NTFS 分區上文件的壓縮。
          CONVERT  將 FAT 卷轉換成 NTFS。您不能轉換
                   當前驅動器。
          COPY     將至少一個文件復制到另一個位置。
          DATE     顯示或設置日期。
          DEL      刪除至少一個文件。
          DIR      顯示一個目錄中的文件和子目錄。
          DISKCOMP 比較兩個軟盤的內容。
          DISKCOPY 將一個軟盤的內容復制到另一個軟盤。
          DOSKEY   編輯命令行、調用 Windows 命令并創建宏。
          ECHO     顯示消息,或將命令回顯打開或關上。
          ENDLOCAL 結束批文件中環境更改的本地化。
          ERASE    刪除至少一個文件。
          EXIT     退出 CMD.EXE 程序(命令解釋程序)。
          FC       比較兩個或兩套文件,并顯示
                   不同處。
          FIND     在文件中搜索文字字符串。
          FINDSTR  在文件中搜索字符串。
          FOR      為一套文件中的每個文件運行一個指定的命令。
          FORMAT   格式化磁盤,以便跟 Windows 使用。
          FTYPE    顯示或修改用于文件擴展名關聯的文件類型。
          GOTO     將 Windows 命令解釋程序指向批處理程序
                   中某個標明的行。
          GRAFTABL 啟用 Windows 來以圖像模式顯示
                   擴展字符集。
          HELP     提供 Windows 命令的幫助信息。
          IF       執行批處理程序中的條件性處理。
          LABEL    創建、更改或刪除磁盤的卷標。
          MD       創建目錄。
          MKDIR    創建目錄。
          MODE     配置系統設備。
          MORE     一次顯示一個結果屏幕。
          MOVE     將文件從一個目錄移到另一個目錄。
          PATH     顯示或設置可執行文件的搜索路徑。
          PAUSE    暫停批文件的處理并顯示消息。
          POPD     還原 PUSHD 保存的當前目錄的上一個值。
          PRINT    打印文本文件。
          PROMPT   更改 Windows 命令提示符。
          PUSHD    保存當前目錄,然后對其進行更改。
          RD       刪除目錄。
          RECOVER  從有問題的磁盤恢復可讀信息。
          REM      記錄批文件或 CONFIG.SYS 中的注釋。
          REN      重命名文件。
          RENAME   重命名文件。
          REPLACE  替換文件。
          RMDIR    刪除目錄。
          SET      顯示、設置或刪除 Windows 環境變量。
          SETLOCAL 開始批文件中環境更改的本地化。
          SHIFT    更換批文件中可替換參數的位置。
          SORT     對輸入進行分類。
          START    啟動另一個窗口來運行指定的程序或命令。
          SUBST    將路徑跟一個驅動器號關聯。
          TIME     顯示或設置系統時間。
          TITLE    設置 CMD.EXE 會話的窗口標題。
          TREE     以圖形模式顯示驅動器或路徑的目錄結構。
          TYPE     顯示文本文件的內容。
          VER      顯示 Windows 版本。
          VERIFY   告訴 Windows 是否驗證文件是否已正確
                   寫入磁盤。
          VOL      顯示磁盤卷標和序列號。
          XCOPY    復制文件和目錄樹。

          posted @ 2008-12-01 15:58 sunny spring 閱讀(256) | 評論 (0)編輯 收藏

          quartz 詳解

                   最近在開發的過程中,經常要使用系統自動清零的操作,比如說:系統在給定的時間跟客戶發送電子郵件,在指定的時間段內執行某些操作等等,如果我們只是人工去操作的話不但步驟非常的麻煩而且覺得這是一個工作量非常大的任務,有了quartz框架以后我們所有的任務多可以交給它去做,程序員唯一要做的只是編寫代碼并配置一下程序就OK了,這樣大大提高了開發速度和工作效率.配置步驟如下:
          1、編寫quartz.properties文件:代碼如下:
          #============================================================================
          # Configure Main Scheduler Properties 
          #============================================================================
          org.quartz.scheduler.instanceName = QuartzScheduler
          org.quartz.scheduler.instanceId = AUTO
          #org.quartz.scheduler.rmi.export = false
          #org.quartz.scheduler.rmi.proxy = false
          #============================================================================
          # Configure ThreadPool 
          #============================================================================
          org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool
          org.quartz.threadPool.threadCount = 4
          org.quartz.threadPool.threadPriority = 5
          #============================================================================
          # Configure Plugins
          #============================================================================
          #org.quartz.plugin.triggHistory.class = org.quartz.plugins.history.LoggingJobHistoryPlugin
          org.quartz.plugin.jobInitializer.class = org.quartz.plugins.xml.JobInitializationPlugin
          org.quartz.plugin.jobInitializer.fileName = /scheduler/quartz_job.xml
          org.quartz.plugin.jobInitializer.overWriteExistingJobs = false
          org.quartz.plugin.jobInitializer.failOnFileNotFound = true
          org.quartz.plugin.jobInitializer.scanInterval = 10
          org.quartz.plugin.shutdownhook.class = org.quartz.plugins.management.ShutdownHookPlugin
          org.quartz.plugin.shutdownhook.cleanShutdown = true
          #org.quartz.jobStore.class = org.quartz.simpl.RAMJobStore
          2、編寫quartz_job.xml
          <?xml version='1.0' encoding='utf-8'?>
          <quartz>
          <job>
             <job-detail>
               <name>test</name>
               <group>DEFAULT</group>
               <description>testJobhere</description>
               <job-class>scheduler.TestJob</job-class>
               <job-data-map allows-transient-data="true">
                <entry>
                 <key>name</key>
                 <value>test</value>
                </entry>
              </job-data-map>
            </job-detail>
             <trigger>
                        <cron>
                             <name>testCron</name>
                             <group>DEFAULT</group>
                             <job-name>test</job-name>
                            <job-group>DEFALUT</job-group>
                            <!--x/?  x表示間斷啟動時間  ?表示執行間隔時間  13啟動時間-->
                            <cron-expression>0 1/2 23 * * ?</cron-expression>
                            <!--每月1號0點執行
                             <cron-expression>0 1 0 1 1-12 ?</cron-expression>
                             -->
                        </cron>
                  </trigger>
          </job>
          3、編寫java代碼進行測試:
          import org.quartz.Job;
          import org.quartz.JobExecutionContext;
          import org.quartz.JobExecutionException;
          public class ZeroCount implements Job{
              public void execute(JobExecutionContext context) throws JobExecutionException
           {
              String name = context.getJobDetail().getJobDataMap().getString("name");
          System.out.println(name);

          }
          }
          出下以下結果表示配置成功:
          test
          4、此步驟是最后一步也是最重要的一步,只要加入如下代碼的到/WEB-INF/web.xml文件中在指定的時間內就會執行系統調度.
          <servlet>
              <servlet-name>QuartzInitializer</servlet-name>
              <servlet-class>org.quartz.ee.servlet.QuartzInitializerServlet</servlet-class>
              <init-param>
               <param-name>config-file</param-name>
               <param-value>/quartz.properties</param-value>
              </init-param>
              <load-on-startup>1</load-on-startup>
              <init-param>
               <param-name>shutdown-on-unload</param-name>
               <param-value>true</param-value>
              </init-param>
              <init-param>
               <param-name>start-scheduler-on-load</param-name>
               <param-value>true</param-value>
              </init-param>
          </servlet>

          參考網站:http://www.iocblog.net/project/quartz.html

          posted @ 2008-11-21 14:38 sunny spring 閱讀(4516) | 評論 (2)編輯 收藏

          struts1.0問題

          16:14:10.437] {http--8888-7} java.lang.IllegalArgumentException: Resources cannot be null.
          [16:14:10.437] {http--8888-7}  at org.apache.commons.validator.Validator.<init>(Validator.java:188)
          [16:14:10.437] {http--8888-7}  at org.apache.struts.validator.Resources.initValidator(Resources.java:475)
          [16:14:10.437] {http--8888-7}  at org.apache.struts.validator.ValidatorForm.validate(ValidatorForm.java:104)
          [16:14:10.437] {http--8888-7}  at org.apache.struts.action.RequestProcessor.processValidate(RequestProcessor.java:928)
          [16:14:10.437] {http--8888-7}  at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:204)
          [16:14:10.437] {http--8888-7}  at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
          [16:14:10.437] {http--8888-7}  at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
          [16:14:10.437] {http--8888-7}  at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
          [16:14:10.437] {http--8888-7}  at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
          [16:14:10.437] {http--8888-7}  at com.caucho.server.dispatch.ServletFilterChain.doFilter(ServletFilterChain.java:103)
          [16:14:10.437] {http--8888-7}  at com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:187)
          [16:14:10.437] {http--8888-7}  at com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:266)
          [16:14:10.437] {http--8888-7}  at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:270)
          [16:14:10.437] {http--8888-7}  at com.caucho.server.port.TcpConnection.run(TcpConnection.java:678)
          [16:14:10.437] {http--8888-7}  at com.caucho.util.ThreadPool$Item.runTasks(ThreadPool.java:721)
          [16:14:10.437] {http--8888-7}  at com.caucho.util.ThreadPool$Item.run(ThreadPool.java:643)
          [16:14:10.437] {http--8888-7}  at java.lang.Thread.run(Thread.java:619)
          以上錯誤是因為struts-config.xml文件中<form-beans>中form的路徑不正確所致.

          posted @ 2008-11-19 16:28 sunny spring 閱讀(250) | 評論 (0)編輯 收藏

          主站蜘蛛池模板: 顺昌县| 寿光市| 灯塔市| 茌平县| 正阳县| 琼中| 百色市| 荥经县| 邓州市| 荆门市| 望江县| 甘谷县| 深州市| 苏州市| 盈江县| 定边县| 呼伦贝尔市| 嘉祥县| 南投县| 海兴县| 都安| 台中市| 皮山县| 台东市| 定日县| 来宾市| 郸城县| 龙泉市| 阿拉善右旗| 衡东县| 郴州市| 木兰县| 九龙城区| 井研县| 城步| 南乐县| 泾源县| 辽阳县| 秭归县| 林周县| 策勒县|