1. 程式人生 > >Hibernate表中外來鍵使用(個人筆記)

Hibernate表中外來鍵使用(個人筆記)

(由於這篇文章寫得雜亂無章,隨便參考即可,不建議照做,僅作為本人日常記錄)

1.前端部分

我們的思路是這樣的:做一個登入頁面(login.jsp),登入之後點選“朋友資訊”(已登入頁面main.jsp),就可以進入朋友資訊頁面進行資料修改(friend.jsp)。

1.login.jsp

  1. <formaction="#"method="post">
  2. <table>
  3. <tr><td>使用者名稱:</td><td><inputtype="text"/></td></tr>
  4. <tr><td>密碼:</td><td><inputtype="password"/></td></tr>
  5. <tr><tdcolspan="2"><inputtype="submit"value="註冊"/></td></tr>
  6. </table>
  7. </form>

2.main.jsp

  1. <body>
  2. 主頁面
  3. <br/>
  4. <br/>
  5. <ahref="${pageContext.request.contextPath}/login.jsp"
    >登入</a>
  6. <ahref="${pageContext.request.contextPath}/friend.jsp">朋友頁面</a>
  7. </body>

3.friend.jsp

  1. <formaction="#"method="post">
  2. <table>
  3. <tr><td>姓名:</td><td><inputtype="text"/></td></tr>
  4. <tr><td>電話:</td><td><input
    type="text"/></td></tr>
  5. <tr><tdcolspan="2"><inputtype="submit"value="提交"/></td></tr>
  6. </table>
  7. </form>

2.login提交資訊的實現

要把login.jsp中的表格內容提交,需要設定標籤的name,name的構成是  物件.屬性  ,既然要用到物件,那麼就需要新建javabean(包為model,名為User.java),設定setter&getter方法
  1. package model;
  2. publicclassUser{
  3. privateint id;//id
  4. privateString name;//使用者名稱
  5. privateString pwd;//使用者密碼
  6. publicint getId(){
  7. return id;
  8. }
  9. publicvoid setId(int id){
  10. this.id = id;
  11. }
  12. publicString getName(){
  13. return name;
  14. }
  15. publicvoid setName(String name){
  16. this.name = name;
  17. }
  18. publicString getPwd(){
  19. return pwd;
  20. }
  21. publicvoid setPwd(String pwd){
  22. this.pwd = pwd;
  23. }
  24. }
這裡用的是struts2框架,環境配置方面在前面《struts2的環境配置與簡單登入功能實現》有提到,就不再贅述了。 這裡設定標籤的name屬性
至於這個表格要提交到什麼位置呢,action="${pageContext.request.contextPath}/user/check"我們這裡把它提交到user下的check
 /user/check怎麼定位呢,首先需要配置struts.xml
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE struts PUBLIC
  3. "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
  4. "http://struts.apache.org/dtds/struts-2.3.dtd">
  5. <struts>
  6. <constantname="struts.devMode"value="true"/>
  7. <packagename="all"namespace="/"extends="struts-default">
  8. <global-results>
  9. <resultname="main">/main.jsp</result>
  10. </global-results>
  11. </package>
  12. <includefile="user.xml"></include>
  13. </struts>
<includefile="user.xml"></include>表示引入user.xml檔案,這樣做的好處就是便於分工開發。 配置user.xml檔案內容
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE struts PUBLIC
  3. "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
  4. "http://struts.apache.org/dtds/struts-2.3.dtd">
  5. <struts>
  6. <packagename="user"namespace="/user"extends="all">
  7. <actionname="*"class="action.UserAction"method="{1}">
  8. </action>
  9. </package>
  10. </struts>
這裡指到了action.UserAction,所以我們先把UserAction這個類寫好(在action包中) UserAction內容
  1. package model;
  2. publicclassUserAction{
  3. privateUser user;
  4. publicUser getUser(){
  5. return user;
  6. }
  7. publicvoid setUser(User user){
  8. this.user = user;
  9. }
  10. //新增使用者的方法
  11. publicString add(){
  12. returnnull;
  13. }
  14. }
把javabean類寫進去,設定setter&getter方法 這裡的action方法為add,但是要注意返回值得為String ,而且引數列表不可以有內容,這是硬格式。(publicString 方法名(){
  1. <!DOCTYPE hibernate-configuration PUBLIC
  2. "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
  3. "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
  4. <hibernate-configuration>
  5. <session-factory>
  6. <propertyname="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
  7. <propertyname="hibernate.connection.url">jdbc:mysql://localhost:3306/foreignTest</property>
  8. <propertyname="hibernate.connection.username">root</property>
  9. <propertyname="hibernate.connection.password">123456</property>
  10. <propertyname="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
  11. <propertyname="hibernate.show_sql">true</property>
  12. <propertyname="hbm2ddl.auto">update</property>
  13. <!--<mapping resource="model/Student.hbm.xml"/> 舊的對映方式-->
  14. <mappingclass="model.User"/>
  15. </session-factory>
  16. </hibernate-configuration>
這裡指明hibernate的對映類為model.User <propertyname="hbm2ddl.auto">update

相關推薦

Hibernate外來使用(個人筆記)

(由於這篇文章寫得雜亂無章,隨便參考即可,不建議照做,僅作為本人日常記錄) 1.前端部分 我們的思路是這樣的:做一個登入頁面(login.jsp),登入之後點選“朋友資訊”(已登入頁面main.jsp),就可以進入朋友資訊頁面進行資料修改(friend

資料庫外來的建立

** Can’t create table ‘.\xyrensheju#sql-710_6.frm’ (errno: 150) ** 我建立外來鍵時,得到了這個錯誤,我對錶和欄位檢查了又檢查,始終沒有發現問題出現在哪裡,百度了很多下,終於找到了解決的辦法,是我的主表的複合主鍵索引沒

django外來關聯的查詢隨筆

django中,如果一個數據庫中的表之間有外來鍵的話可以方便的通過一個表查詢到其相關表的資料。如有下面三個model:class Blog(models.Model):    name = models.CharField(max_length=100)    tagline = models.TextFie

mysql 檢視某個庫的一個是哪些外來

#檢視資料庫所有表 1 SELECT tba.TABLE_NAME&n

Django外來使用詳解

在寫專案的過程中我們不可避免的會使用到外來鍵這個東西,那麼Django中是怎樣來使用外來鍵的呢? 瞭解外來鍵 在MySQL中,表有兩種引擎,一種是InnoDB,另外一種是myisam。如果使用的是InnoDB引擎,是支援外來鍵約束的。外來鍵的存在使得ORM框架在處理表關係的時候異常的

解決mybatis註解開發時兩在一個方法裡面新增,一個自動生成的主作為另一個外來新增的問題

1、mapper層裡的方法上添加註解: 實體類屬性:cExperimentaltaskid(id) 表字段:c_experimentaltaskid(主鍵id欄位) @Options(useGeneratedKeys = true, keyProperty = "cExperimentalta

EF Core外來關係的DeleteBehavior介紹(轉自MSDN)

Delete behaviors Delete behaviors are defined in the DeleteBehavior enumerator type and can be passed to the OnDelete fluent API to control whether the de

MySql多對多關係外來的應用

業務需求:使用者表r_user儲存使用者名稱等資訊。現需要給每個使用者設定工作基地,一個使用者可以有多個工作基地,多個使用者也可以有一個工作基地,即多對多關係。(外來鍵,若有兩個表A,B,C是A的主鍵,而B中也有C欄位,則C就是表B的外來鍵,外來鍵約束主要用來維護兩個表之間資料的一致性) 設計方

查詢某個的欄位被其他作為外來

select c.table_name,         c.constraint_name,         fc.table_name,         fc.

查詢主表的主被其他作為外來參照的SQL

1,查詢主表的主鍵被其他表作為外來鍵參照的SQL select child_cons.constraint_name, child_cons.table_name child_table_name, parent_cons.table_name parent_table, c

Mysql主表與字關於外來的情況

針對Innodb引擎給學生表新增資料時,如果新增的teacher_id在它的主表中不存在則會存在問題,因此,通過外來鍵進行設定, 使得保證新增的teacher_id都在teacher表的id裡,下面有兩種方法,第一是給已經建立好的表格追加, 第二是在建立的時候設定的。 1.已經建立的表格,通過修

oracle自帶的sql developer匯入dmp的問題(筆記 侵刪)

https://blog.csdn.net/lr_lr_lr/article/details/49069907 ps:本地匯入的話 imp zsx1/[email protected] file=“D:\sofa.dmp” full=y ignore=y 上面的@以及後面的資料庫名

MySQL外來的定義、作用、新增和刪除

1 簡介 在實際開發的專案中,一個健壯資料庫中的資料一定有很好的參照完整性。例如學生檔案和成績單兩張表,如果成績單中有張三的成績,學生檔案中張三的檔案卻被刪除了,這樣就會產生垃圾資料或者錯誤資料。為了保證資料的完整性,將兩張表之間的資料建立關係,因此就需要在成績

navicat設定資料外來

所謂的外來鍵其實就是指標例如,t_user有個外來鍵,意思就是t_user中的外來鍵其實指向了外面一個表中的一個欄位t _user設定了外來鍵以後,對於外來鍵school_id的賦值時額取值範圍,必須是在t_school_info中已經存在的,否則賦值失敗注意,外來鍵首先是一

【精華版】mysql建立(帶外來)

建立department表: create table department( dept_name varchar(20), budget int, descript varchar(20), pr

MySQL外來設定詳解

例項一: 4.1 CREATE TABLE parent(id INT NOT NULL,                     PRIMARY KEY (id) ) TYPE=INNODB;                      -- type=innodb 相當於 engine=innodb CR

Entity Framework Core 選擇資料外來

entityTypeBuilder .HasOne<GeraeteArt>() .WithMany(p => p.Geraete) .HasForeignKe

MySQL刪除所有外來約束、禁用外來約束

 資料庫的外來鍵雖然能保證資料資料一致性和完整性,但是也一定程度地影響了資料更新的效能。在開發中,我們使用PowerDesigner建立物理資料模型時,為了結構的清晰,增加可讀性,會建立表與表之間的關聯關係。  在實際開發中,資料庫中一般不會存在外來鍵,阿里的

資料庫外來屬性的設定

外來鍵的作用: 保持資料一致性,完整性,主要目的是控制儲存在外來鍵表中的資料。 使兩張表形成關聯,外來鍵只能引用外表中的列的值! 例如:        a b 兩個表        a表中存有 客戶號,客戶名稱        b表中存有 每個客戶的訂單       有了外來

MYSQL通過sql命令新增外來

表結構: 表1  :  TCar id name price factureid  表2 :   TFactureid id name accountnumber sql語句:alter table tcar add constraint   fk_tcar_tfac