JDBC上關於資料庫中多表操作一對多關係和多對多關係的實現方法--轉
原文地址----
https://www.cnblogs.com/pangguoming/p/7028322.html
黑馬程式設計師
我們知道,在設計一個Java bean的時候,要把這些BEAN 的資料存放在資料庫中的表結構,然而這些資料庫中的表直接又有些特殊的關係,例如員工與部門直接有一對多的關係,學生與老師直接又多對多的關係,那麼這些表的關係如何表示呢?
首先在建立資料庫的時候就應該建立這樣的對應關係。
一對多 ,只要建立兩個表就能建立這樣的關係,因為你可以把多方的那個表設定一個Foreign Key 屬性 ,下面是一個部門和員工的表結構關係
在MySQL 資料庫上應該這樣建立表結構:
1 2 3 4 5 6 7 8 9 10 11 12 |
foreign key (dept_id) references department(id)//這個其實是約束條件,不是表格的屬性值。
|
在java 程式的javabean中應該如何做呢
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 |
|
在DAO層 如何實現增加 查詢資料呢?增加一個部門和查詢一個部門的時候要不要顯示員工呢?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
|
多對多的關係
下面以老師和學生的關係來說明這個結構
資料庫中:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
|
如何寫javabean 和 dao呢 ?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 |
|
工具表工具
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 |
|
dbcpconfig.properties的檔案 中內容
#連線設定
driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/day15 #這個是你的資料庫地址
username=root #這個是你的使用者名稱
password=sorry # 這個是你 密碼
#<!-- 初始化連線 -->
initialSize=10
#最大連線數量
maxActive=20
#<!-- 最大空閒連線 -->
maxIdle=6
#<!-- 最小空閒連線 -->
minIdle=3
#<!-- 超時等待時間以毫秒為單位 6000毫秒/1000等於60秒 -->
maxWait=60000
#JDBC驅動建立連線時附帶的連線屬性屬性的格式必須為這樣:[屬性名=property;]
#注意:"user" 與 "password" 兩個屬性會被明確地傳遞,因此這裡不需要包含他們。
connectionProperties=useUnicode=true;characterEncoding=utf8
#指定由連線池所建立的連線的自動提交(auto-commit)狀態。
defaultAutoCommit=true
#driver default 指定由連線池所建立的連線的只讀(read-only)狀態。
#如果沒有設定該值,則“setReadOnly”方法將不被呼叫。(某些驅動並不支援只讀模式,如:Informix)
defaultReadOnly=
#driver default 指定由連線池所建立的連線的事務級別(TransactionIsolation)。
#可用值為下列之一:(詳情可見javadoc。)NONE,READ_UNCOMMITTED, READ_COMMITTED, REPEATABLE_READ, SERIALIZABLE
defaultTransactionIsolation=REPEATABLE_READ