程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> JSP編程 >> 關於JSP >> JadePool應用范例:完善China軟件項目架構

JadePool應用范例:完善China軟件項目架構

編輯:關於JSP

   主要完成以下工作:1、創建數據庫china;2、配置好數據庫連接文件db.xml;3、創建sql文件china_createTable.sql;4、在軟件項目中添加sqljdbc4.jar文件;5、在控制台下測試JadePool執行/META-INF/china_createTable.sql文件的方法,完成創建數據庫表的工作。

        (一)、創建數據庫china
        本范例使用SQL Server 2000數據庫。在SQL Server 2000中創建數據庫china,並為china數據庫創建一個用戶名和密碼。本范例配置的用戶名和密碼均為123。

        (二)、配置數據庫連接文件db.xml
        在項目源包下的META-INF目錄下創建db.xml文件,文件內容如下:
[html] 
<?xml version="1.0" encoding="GBK"?> 
<db> 
    <url>jdbc:sqlserver://127.0.0.1\\dbo:1433;databaseName=china</url> 
    <driver>com.microsoft.sqlserver.jdbc.SQLServerDriver</driver> 
    <user>123</user> 
    <password>123</password> 
    <resource></resource> 
</db> 

<?xml version="1.0" encoding="GBK"?>
<db>
    <url>jdbc:sqlserver://127.0.0.1\\dbo:1433;databaseName=china</url>
    <driver>com.microsoft.sqlserver.jdbc.SQLServerDriver</driver>
    <user>123</user>
    <password>123</password>
    <resource></resource>
</db>        用戶可以參照以上代碼填寫配置項。更詳細的說明參閱:高效JDBC編程工具JadePool快速入門 
        (三)、創建建表sql文件china_createTable.sql
        在項目源包下的META-INF目錄下創建china_createTable.sql文件,文件內容見附件1。

        根據我個人的經驗,在JDBC編程中,有以下幾點僅供參考:
                1、每個表盡可能保持唯一的一個主鍵;
               2、非主鍵字段允許null值,防止插入單個主鍵字段時出現異常;
               3、盡可能選擇與現實一致的字段類型,如,日期選擇日期型,貨幣選擇BigDecimal型,貨幣避免選擇float、double型;
               4、避免設置外鍵,表間邏輯關系可以在JDBC業務邏輯中實現。


        (四)、在軟件項目中添加sqljdbc4.jar文件

        (五)、在控制台下測試JadePool執行sql文件的方法
        在初次創建chian數據庫後,該數據庫不存在用戶表,執行以下類china.test.ExcuteSQLFile後,在SQL Server 2000企業管理器中查看china數據庫,發現多了幾個用戶表,查看sw_lianxirenfenlei表,其中有記錄存在,這些記錄來自/META-INF/china_createTable.sql文件。
[java]
/*
 * 在控制台下測試JadePool執行sql文件的方法
 * 2013-03-27
 */ 
package china.test; 
 
import cn.jadepool.sql.Jade; 
import cn.jadepool.sql.JadeTool; 
import java.io.IOException; 
import java.net.URL; 
import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.SQLException; 
 
/**
 *
 * @author hkm
 */ 
public class ExcuteSQLFile { 
 
    public static void main(String[] args) throws IOException { 
        URL url = ExcuteSQLFile.class.getResource("/META-INF/china_createTable.sql"); 
        Jade j = new Jade(getCon()); 
        j.executeSqlFile(url.getFile()); 
        j.commit(); 
    } 
 
    /**
     * sqljdbc4.jar
     */ 
    public static synchronized Connection getCon() { 
        Connection con = null; 
        String url = "jdbc:sqlserver://127.0.0.1\\dba:1436;databaseName=china"; 
        String userName = "123"; 
        String password = "123"; 
        try { 
            Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); 
            con = DriverManager.getConnection(url, userName, password); 
        } catch (SQLException ex1) { 
            ex1.printStackTrace(); 
        } catch (ClassNotFoundException ex) { 
            ex.printStackTrace(); 
        } 
        return con; 
    } 

/*
 * 在控制台下測試JadePool執行sql文件的方法
 * 2013-03-27
 */
package china.test;

import cn.jadepool.sql.Jade;
import cn.jadepool.sql.JadeTool;
import java.io.IOException;
import java.net.URL;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

/**
 *
 * @author hkm
 */
public class ExcuteSQLFile {

    public static void main(String[] args) throws IOException {
        URL url = ExcuteSQLFile.class.getResource("/META-INF/china_createTable.sql");
        Jade j = new Jade(getCon());
        j.executeSqlFile(url.getFile());
        j.commit();
    }

    /**
     * sqljdbc4.jar
     */
    public static synchronized Connection getCon() {
        Connection con = null;
        String url = "jdbc:sqlserver://127.0.0.1\\dba:1436;databaseName=china";
        String userName = "123";
        String password = "123";
        try {
            Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
            con = DriverManager.getConnection(url, userName, password);
        } catch (SQLException ex1) {
            ex1.printStackTrace();
        } catch (ClassNotFoundException ex) {
            ex.printStackTrace();
        }
        return con;
    }
}       


        圖:執行j.executeSqlFile(url.getFile());的結果

 \


 


[sql] 
/* 
軟件項目:China 
版    本:1.0 
數 據 庫:MS SQL Server2000 
創建日期:2013-03-26 
作    者:胡開明 
數據庫表:包括以下 
         1、行政區劃                  cn_address                       
         2、名族                      cn_people  
         3、產品分類                  cn_productcategory   
         4、行業分類                  cn_economycategory   
         5、行業門類                  cn_economyfield   
         6、三次產業                  cn_economy   
 
         7、商務通訊錄                sw_tongxunlu  
         8、聯系人分類                sw_lianxirenfenlei  
         9、商務通訊錄列表            sw_tongxunlu_liebiao    
         10、聯系方式分類             sw_lianxifangshi   
 
*/ 
 
if not exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[cn_address]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) 
create table cn_address(                             /*行政區劃主表 */ 
addresscode varchar(16) primary key,                 /*行政區劃編碼,主鍵,根據國家統計局提供的資料錄入*/ 
addressname varchar(50),                             /*行政區劃標准名稱, 根據國家統計局提供的資料錄入*/ 
labelcn varchar(32),                                 /*中文地名*/ 
labelen varchar(32),                                 /*英語地名*/ 
longitude float,                                     /*經度*/ 
latitude float,                                      /*緯度*/ 
zip varchar(8),                                      /*郵政編碼,是國際通行的作法,故可作為共同部分的字段*/ 
memo text,                                           /*備注*/ 
isusing bit default '1'                              /*是否使用*/                                                              
); 
 
 
if not exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[cn_people]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) 
create table cn_people(                              /*民族表 */ 
people_id int primary key,                           /*民族表,主鍵*/ 
minzu varchar(16),                                   /*民族*/ 
pinxie varchar(16),                                  /*羅馬字母拼寫法*/ 
zimu varchar(8)                                      /*字母代碼*/                                                         
); 
 
 
if not exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[cn_productcategory]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) 
create table cn_productcategory(                     /*產品分類主表 */ 
productcode varchar(16) primary key,                 /*產品分類編碼,主鍵,根據國家統計局提供的資料錄入*/ 
productname varchar(200),                            /*產品分類標准名稱, 根據國家統計局提供的資料錄入*/ 
memo text, 
isusing bit default '0'                              /*是否使用*/                                                              
); 
 
--以下三個表,根據國民經濟行業分類(GB/T 4754—2011)設計  
if not exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[cn_economycategory]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) 
create table cn_economycategory(                     /*行業分類表 根據國家統計局提供的資料錄入*/ 
economycode varchar(16) primary key,                 /*行業分類編碼,主鍵,對應大類*/ 
economyname varchar(400),                            /*行業分類標准名稱, 對應名稱*/ 
economyfield varchar(4),                             /*行業分類編碼,主鍵,對應門類(領域) 單個大字母表示,如:A*/ 
economy varchar(24),                                 /*行業分類標准名稱, 對應三次產業*/ 
isusing bit default '0'                              /*是否使用*/                                                              
); 
 
if not exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[cn_economyfield]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) 
create table cn_economyfield(                        /*行業門類【經濟領域】表 根據國家統計局提供的資料錄入*/ 
economyfield varchar(4) primary key,                 /*行業門類【經濟領域】主鍵,對應門類(領域) 單個大字母表示,如:A*/ 
economyname varchar(400),                            /*行業門類【經濟領域】標准名稱, 對應名稱*/ 
economy varchar(24)                                  /*所屬三大產業*/                                                       
); 
 
if not exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[cn_economy]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) 
create table cn_economy(                             /*三大產業表 根據國家統計局提供的資料錄入*/ 
economy varchar(24) primary key,                     /*三大產業主鍵*/ 
economyname varchar(400)                             /*三大產業, 對應名稱、解釋*/                            
); 
 
if not exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sw_tongxunlu]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) 
create table sw_tongxunlu(                           /*通訊錄*/ 
tongxunlu_id bigint primary key,                     /*通訊錄主鍵*/ 
lianxiren varchar(80) ,                              /*聯系人,單位或個人*/ 
fenlei varchar(16),                                  /*分類,如:供應商、客戶、快遞、維修、服務*/ 
ziliao text                                          /*相關資料*/                            
); 
 
if not exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sw_lianxirenfenlei]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) 
create table sw_lianxirenfenlei(                     /*聯系人分類*/ 
lianxiren_fenlei_id int primary key,                 /*聯系人分類主鍵*/ 
fenlei varchar(16)                                   /*分類,如:供應商、客戶、快遞、維修、服務*/ 
); 
delete from sw_lianxirenfenlei; 
insert into sw_lianxirenfenlei values(0,'供應商'); 
insert into sw_lianxirenfenlei values(1,'客戶'); 
insert into sw_lianxirenfenlei values(2,'貨運'); 
insert into sw_lianxirenfenlei values(3,'快遞'); 
insert into sw_lianxirenfenlei values(4,'維修'); 
insert into sw_lianxirenfenlei values(5,'服務'); 
insert into sw_lianxirenfenlei values(100,'政府部門'); 
 
if not exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sw_tongxunlu_liebiao]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) 
create table sw_tongxunlu_liebiao(                   /*通訊錄列表*/ 
tongxunlu_liebiao_id bigint primary key,             /*通訊錄列表主鍵*/ 
tongxunlu_id bigint,                                 /*通訊錄主鍵*/ 
fangshi varchar(16) ,                                /*聯系方式,如:地址、QQ、電話、傳真、手機等等*/ 
tel varchar(80)                                      /*地址或號碼,如:*/                          
); 
 
if not exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sw_lianxifangshi]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) 
create table sw_lianxifangshi(                       /*商務通訊錄聯系方式*/ 
lianxifangshi_id int primary key,                    /*聯系方式分類主鍵*/ 
fangshi varchar(16)                                  /*聯系方式,如:地址、QQ、電話、傳真、手機等等*/ 
); 
delete from sw_lianxifangshi; 
insert into sw_lianxifangshi values(0,'單位'); 
insert into sw_lianxifangshi values(1,'地址'); 
insert into sw_lianxifangshi values(2,'電話'); 
insert into sw_lianxifangshi values(3,'傳真'); 
insert into sw_lianxifangshi values(4,'手機'); 
insert into sw_lianxifangshi values(5,'QQ'); 
insert into sw_lianxifangshi values(6,'電子信箱'); 
insert into sw_lianxifangshi values(7,'信箱'); 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved