日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

hibernate mysql annotation_Hibernate基于注解annotation的配置

發布時間:2024/1/23 数据库 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 hibernate mysql annotation_Hibernate基于注解annotation的配置 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Annotation在框架中是越來越受歡迎了,因為annotation的配置比起XML的配置來說方便了很多,不需要大量的XML來書寫,方便簡單了很多,只要幾個annotation的配置,就可以完成我們以前需要書寫的大量的XML文件。當然annotation的配置也有缺陷的,那就是annotation一般都是配置在代碼中的,如果要修改的話,需要動源代碼,喪失了靈活性,違背了OCP(增加開放,修改關閉)原則,但是在真實的項目開發中,我們只是動配置文件,而不修改源代碼的情況實在是太少見了,所以現在annotation已經被廣泛的運用到了編程中,各種框架都提供了基于annotation的配置。

hibernate的注解配置和Jpa中的注解使用基本上都差不多。

參考博客:

導入jar包:

還有mysql的驅動

----------------------

簡單的插入測試小案例:

實體:User

packageorg.model;importjava.util.Date;importjavax.persistence.Column;importjavax.persistence.Entity;importjavax.persistence.GeneratedValue;importjavax.persistence.Id;importjavax.persistence.Table;importorg.hibernate.annotations.GenericGenerator;

@Entity//@Table(name="t_user")//表名 默認不寫的話 就是類名

public classUser {private intid;privateString username;privateString password;privateString nickname;privateDate bornDate;publicUser() {

}public User(intid, String username, String password, String nickname, Date bornDate) {super();this.id =id;this.username =username;this.password =password;this.nickname =nickname;this.bornDate =bornDate;

}publicUser(String username, String password, String nickname, Date bornDate) {super();this.username =username;this.password =password;this.nickname =nickname;this.bornDate =bornDate;

}

@Id

@GeneratedValue()//默認native @GeneratedValue()//@GeneratedValue(generator = "x")//使用uuid id的類型必須是String類型//@GenericGenerator(name = "x", strategy = "uuid")//使用hibernate的uuid策略

public intgetId() {returnid;

}public void setId(intid) {this.id =id;

}

@Column(length= 5, nullable = false)publicString getUsername() {returnusername;

}public voidsetUsername(String username) {this.username =username;

}

@Column(length= 10, nullable = false)//nullable屬性:默認是true 允許空值

publicString getPassword() {returnpassword;

}public voidsetPassword(String password) {this.password =password;

}

@Column(length= 5, nullable = true)publicString getNickname() {returnnickname;

}public voidsetNickname(String nickname) {this.nickname =nickname;

}

@Column(name= "born_date")publicDate getBornDate() {returnbornDate;

}public voidsetBornDate(Date bornDate) {this.bornDate =bornDate;

}

@OverridepublicString toString() {return "User [id=" + id + ", username=" + username + ", password=" + password + ", nickname=" +nickname+ ", bornDate=" + bornDate + "]";

}

}

測試類:

packageorg.execute;importjava.util.Date;importorg.hibernate.Session;importorg.hibernate.SessionFactory;importorg.hibernate.cfg.Configuration;importorg.junit.Test;importorg.model.User;public classExe {static Configuration config = null;static SessionFactory sessionFactory = null;//初始化

static{//加載核心配置文件 默認加載類路徑下的hibernate.cfg.xml

config = newConfiguration();

config.configure();//創建工廠

sessionFactory =config.buildSessionFactory();

}//返回session

publicSession rtn() {returnsessionFactory.openSession();

}//保存測試

@Testpublic voidinsert() {

Session session=rtn();

session.getTransaction().begin();

User u= new User("laomu", "123", "老孫", newDate());

session.save(u);

session.getTransaction().commit();

}

}

我們發現在對實體進行注解配置的時候 ?導入的包和JPA配置時一樣

在測試類中進行插入時,使用的不是JPA中的EntityManager對象,

EntityManagerFactory factory=Persistence.createEntityManagerFactory("simple");

EntityManager em = factory.createEntityManager();

而還是hibernate中的session對象。

配置文件:類路徑下的hibernate.cfg.xml文件 ?默認會去找該文件

/p>

"-//Hibernate/Hibernate Configuration DTD 3.0//EN"

"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">

org.hibernate.dialect.MySQLDialect

update

jdbc:mysql://localhost:3308/annotationhibernate

root

jay571018

com.mysql.jdbc.Driver

true

View Code

下面觀察數據庫:

插入的數據:

-------------------------------------------------

annotation配置many-to-one雙向

先看有問題的代碼:(明明配置了級聯 ?但是卻沒有進行級聯保存的問題)

多方:Student

packageorg.model;importjavax.persistence.CascadeType;importjavax.persistence.Column;importjavax.persistence.Entity;importjavax.persistence.GeneratedValue;importjavax.persistence.Id;importjavax.persistence.JoinColumn;importjavax.persistence.ManyToOne;importjavax.persistence.Table;//多方 由該方維護外鍵

@Entity

@Table(name= "t_student")public classStudent {private intid;privateString name;privateString stuNo;//一方的屬性

privateClassRoom room;

@Id

@GeneratedValue()public intgetId() {returnid;

}public void setId(intid) {this.id =id;

}

@Column(length= 5, nullable = false)publicString getName() {returnname;

}public voidsetName(String name) {this.name =name;

}

@Column(length= 10, nullable = false)publicString getStuNo() {returnstuNo;

}public voidsetStuNo(String stuNo) {this.stuNo =stuNo;

}//optional=false 外鍵字段不能為空 即每個學生都必須有對應的班級 默認為true//ManyToOne 查詢student 默認使用即時加載

@ManyToOne(cascade ={ CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH })//在維護端 指定外鍵字段名 也可以不寫 默認屬性_id

@JoinColumn(name = "r_id")publicClassRoom getRoom() {returnroom;

}public voidsetRoom(ClassRoom room) {this.room =room;

}publicStudent() {

}//互相關聯的方法

publicStudent(String name, String stuNo) {this.name =name;this.stuNo =stuNo;

}

@OverridepublicString toString() {return "Student [id=" + id + ", name=" + name + ", stuNo=" + stuNo + ", classRoom=" + room.toString() + "]";

}

}

一方:ClassRoom

packageorg.model;importjava.util.HashSet;importjava.util.Set;importjavax.persistence.CascadeType;importjavax.persistence.Column;importjavax.persistence.Entity;importjavax.persistence.FetchType;importjavax.persistence.GeneratedValue;importjavax.persistence.Id;importjavax.persistence.OneToMany;importjavax.persistence.Table;//一方 被維護端

@Entity

@Table(name= "t_classroom")public classClassRoom {private intid;privateString name;//多方的集合屬性

private Set students = new HashSet();

@Id

@GeneratedValue()public intgetId() {returnid;

}public void setId(intid) {this.id =id;

}

@Column(length= 10, nullable = false)publicString getName() {returnname;

}public voidsetName(String name) {this.name =name;

}//mappedBy屬性:由集合中對應的實體Student中的classroom屬性來維護外鍵 聲明mappedBy的實體為被維護方//抓取方式 onetoMany 默認為lazy加載

@OneToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH }, mappedBy = "room")public SetgetStudents() {returnstudents;

}public void setStudents(Setstudents) {this.students =students;

}publicClassRoom(String name) {this.name =name;

}publicClassRoom() {}/** public ClassRoom(int id,String name) { this.id=id; this.name = name; }*/

//互相關聯的方法

public voidaddStudent(Student student) {

student.setRoom(this);this.students.add(student);

}

@OverridepublicString toString() {return "ClassRoom [id=" + id + ", name=" + name + "]";

}

}

測試類:

//一對多插入測試

@Testpublic voidoneToManyInsert() {

Session session=rtn();

session.getTransaction().begin();//創建對象

Student s1=new Student("喬克","A01010");

Student s2=new Student("小明","A01012");

ClassRoom classRoom=new ClassRoom("就業班");//進行互相關聯

classRoom.addStudent(s1);

classRoom.addStudent(s2);//在addStudent()中進行了互相關聯 這里直接調用這個方法即完成了互相關聯//進行持久化操作

session.save(classRoom);

session.getTransaction().commit();

}

然后查看數據庫:

可以看到 ?只對classRoom表進行了數據的插入 ? 可以我們在實體中明明配置了級聯保存的操作啊 ? 同時也進行了互相的關聯 ?為啥會出現這種情況呢?

還記得學習JPA時級聯操作觸發的時機嗎?----》如果使用javax.persistence.*里面的注解,只有調用相應的方法才生效,如PERSIST,只有調用persist方法才生效

所以這里當然不能實現級聯了

第一種測試:

根據網上說的情況 ?我了試試 ?如果把ClassRoom中的級聯屬性配置為以下的情況:

CascadeType.PESIST,CascadeType.REMOVE,CascadeType.MERGE,CascadeType.REFRESH

也不能進行級聯保存,但是,如果配置為CascadeType.All則可以級聯保存成功,說明

JPA中的CascadeType.ALL并不等于{CascadeType.PESIST,CascadeType.REMOVE,CascadeType.MERGE,CascadeType.REFRESH}

第二種測試:

然后我把級聯屬性設置成了上面說的那種方式save_update ? 注意 ?導入的是hibernate.annotation中的包 ?而不再是jpa中的級聯包了

roomClass中的級聯方式修改為:

測試結果:

級聯保存成功,所以這里需要明白,hibernate注解開發 設置級聯時不能使用jpa規范中的級聯方式,而只能是使用自己提供的級聯方式,如下:

---------------------------------------

上面進行了插入測試,下面我們進行查詢測試:

可見只查詢了一次數據庫,在查詢student對象(多方) ?立即查詢一方數據

因為我們在student中是這樣配置的

抓取方式 ?在ManyToOne情況下 ?默認直接加載了一方屬性 ?如果改為下面的配置方式:

執行查詢 ?觀察打印的sql

可以看到 ?是發送了兩次sql查詢 ?同樣 ?在執行查詢一方屬性時 ?不指定查詢方式時 ? 默認是懶加載多方屬性的 ?這里就不再執行了

需要注意的一點是:在查詢某個實體的時候 ?需要在該實體中配置一個無參數的構造方法 ? ?比如 ?我把student實體中的無參構造刪除掉 ?然后執行查詢

所以 ?因為框架中好多地方都會用到無參構造 ?在我們創建有參構造的時候 ?記得把無參構造也寫出來。

---------------------------------------------------------------

annotation配置many-to-one單向

student

packageorg.model.om.danxiang;importjavax.persistence.Column;importjavax.persistence.Entity;importjavax.persistence.GeneratedValue;importjavax.persistence.Id;importjavax.persistence.JoinColumn;importjavax.persistence.ManyToOne;importjavax.persistence.Table;

@Entity

@Table(name= "danxiang_student")public classStudent {private intid;privateString name;privateString stuNo;//一方的屬性

privateClassRoom room;

@Id

@GeneratedValue()public intgetId() {returnid;

}public void setId(intid) {this.id =id;

}

@Column(length= 5, nullable = false)publicString getName() {returnname;

}public voidsetName(String name) {this.name =name;

}

@Column(length= 10, nullable = false)publicString getStuNo() {returnstuNo;

}public voidsetStuNo(String stuNo) {this.stuNo =stuNo;

}//optional=false 外鍵字段不能為空 即每個學生都必須有對應的班級 默認為true//ManyToOne 查詢student 默認使用即時加載//使用hibernate自己的級聯方式

@ManyToOne()//@Cascade({CascadeType.PERSIST,CascadeType.MERGE,CascadeType.REFRESH})//在維護端 指定外鍵字段名 也可以不寫 默認屬性_id

@JoinColumn(name = "cid")publicClassRoom getRoom() {returnroom;

}public voidsetRoom(ClassRoom classRoom) {this.room =classRoom;

}publicStudent() {

}//互相關聯的方法

publicStudent(String name, String stuNo) {this.name =name;this.stuNo =stuNo;

}

@OverridepublicString toString() {return "Student [id=" + id + ", name=" + name + ", stuNo=" + stuNo + ", classRoom=" + room.toString() + "]";

}

}

classRoom

packageorg.model.om.danxiang;importjavax.persistence.Column;importjavax.persistence.Entity;importjavax.persistence.GeneratedValue;importjavax.persistence.Id;importjavax.persistence.Table;//一方 被維護端

@Entity

@Table(name= "danxiang_classroom")public classClassRoom {private intid;privateString name;/*// 多方的集合屬性

private Set students = new HashSet();*/@Id

@GeneratedValue()public intgetId() {returnid;

}public void setId(intid) {this.id =id;

}

@Column(length= 10, nullable = false)publicString getName() {returnname;

}public voidsetName(String name) {this.name =name;

}/*// mappedBy屬性:由集合中對應的實體Student中的classroom屬性來維護外鍵 聲明mappedBy的實體為被維護方

// 抓取方式 onetoMany 默認為lazy加載

//使用hibernate自己的級聯方式

@OneToMany(mappedBy = "room")

@Cascade({CascadeType.PERSIST,CascadeType.MERGE,CascadeType.REFRESH})

public Set getStudents() {

return students;

}

public void setStudents(Set students) {

this.students = students;

}*/

publicClassRoom(String name) {this.name =name;

}publicClassRoom() {}/** public ClassRoom(int id,String name) { this.id=id; this.name = name; }*/

/*// 互相關聯的方法

public void addStudent(Student student) {

student.setRoom(this);

this.students.add(student);

}*/@OverridepublicString toString() {return "ClassRoom [id=" + id + ", name=" + name + "]";

}

}

測試:

//單向 一方classroom中不創建集合 只在多方student中創建一方對象 ---》 測試成功//所以 單向方式操作時 只能是:在多方對象中創建一方對象屬性 在一方中省略創建多方的集合屬性 反之則不行 比如測試2

@Testpublic voidoneToManyInsertDanXiang() {

Session session=rtn();

session.getTransaction().begin();//創建對象

org.model.om.danxiang.Student s1=new org.model.om.danxiang.Student("喬克","A01010");

org.model.om.danxiang.Student s2=new org.model.om.danxiang.Student("喬克2","A01012");

org.model.om.danxiang.ClassRoom classRoom=new org.model.om.danxiang.ClassRoom("就業班");//進行互相關聯

s1.setRoom(classRoom);

s2.setRoom(classRoom);//保存

session.save(classRoom);//保存的順序無關

session.save(s1);

session.save(s2);//classRoom.addStudent(s1);//classRoom.addStudent(s2);//在addStudent()中進行了互相關聯 這里直接調用這個方法即完成了互相關聯//進行持久化操作

session.save(classRoom);

session.getTransaction().commit();

}

查詢測試:

//單向查詢

@Testpublic voidoneToManyInsertDanXiangQuery() {

Session session=rtn();//查詢多方 觀察是否同時查詢一方數據

org.model.om.danxiang.Student student = session.get(org.model.om.danxiang.Student.class,67);

System.out.println(student);

}

單向關系,查詢多方的時候,可以順帶查詢一方的數據 ? 但是不能通過查詢一方同時獲得多方的數據 ? 但是雙向關系就可以 ?查詢ClassRoom時 ?可以選擇即使加載或者懶加載多方屬性 ? 然后通過ClassRoom中的students屬性就可以得到多方集合數據

-----------------------------------------------

openSession和getCurrentSession的區別:

使用getCurrentSession時 ?出現下面錯誤 ?是因為沒有開啟事務

開啟事務 ?就可以解決該問題

---------------------------------------------------

annotation配置many-to-one雙向

Person

packageorg.model;importjavax.persistence.Entity;importjavax.persistence.GeneratedValue;importjavax.persistence.Id;importjavax.persistence.JoinColumn;importjavax.persistence.OneToOne;importjavax.persistence.Table;importorg.hibernate.annotations.Cascade;importorg.hibernate.annotations.CascadeType;//一對一雙向實體 person作為維護方

@Entity

@Table(name= "t_person")public classPerson {private int id;//主鍵

private String name;//姓名

privateIDCard idCard;

@Id

@GeneratedValuepublic intgetId() {returnid;

}public void setId(intid) {this.id =id;

}//這里暫時不配置 數據庫默認字段為name 可以為空 長度255

publicString getName() {returnname;

}public voidsetName(String name) {this.name =name;

}

@OneToOne

@JoinColumn(name= "cardid")

@Cascade(value={ CascadeType.ALL })publicIDCard getIdCard() {returnidCard;

}public voidsetIdCard(IDCard idCard) {this.idCard =idCard;

}

@OverridepublicString toString() {return "Person [id=" + id + ", name=" + name + ", idCard=" + idCard + "]";

}

}

IDCard

packageorg.model;importjavax.persistence.Entity;importjavax.persistence.GeneratedValue;importjavax.persistence.Id;importjavax.persistence.OneToOne;importjavax.persistence.Table;importorg.hibernate.annotations.Cascade;importorg.hibernate.annotations.CascadeType;//一對一雙向實體

@Entity

@Table(name= "t_card")public classIDCard {private int id;//主鍵

private String no;//編號

privatePerson person;

@Id

@GeneratedValuepublic intgetId() {returnid;

}public void setId(intid) {this.id =id;

}publicString getNo() {returnno;

}public voidsetNo(String no) {this.no =no;

}

@OneToOne(mappedBy= "idCard")

@Cascade(value={ CascadeType.ALL })publicPerson getPerson() {returnperson;

}public voidsetPerson(Person person) {this.person =person;

}

@OverridepublicString toString() {return "IDCard [id=" + id + ", no=" + no + ", person=" + person + "]";

}

}

測試

//一對一雙向關聯

@Testpublic voidoneToOne() {

Session session=rtn();

session.getTransaction().begin();//創建person對象

Person p=newPerson();

p.setName("張三");//創建IDCard對象

IDCard idCard=newIDCard();

idCard.setNo("xx1");//進行相互關聯

/*** 如果沒有配置級聯保存的話 那么需要相互關聯 并且還要分別保存

p.setIdCard(idCard);

idCard.setPerson(p);

session.save(idCard);

session.save(p);*/

//配置級聯之后

p.setIdCard(idCard);

session.save(p);

session.getTransaction().commit();

session.close();

}

數據庫:

-------------------------------------

annotation配置many-to-many

user

packageorg.model.mm.shuangxiang;importjava.util.Date;importjava.util.Set;importjavax.persistence.Column;importjavax.persistence.Entity;importjavax.persistence.GeneratedValue;importjavax.persistence.Id;importjavax.persistence.ManyToMany;importjavax.persistence.Table;importjavax.persistence.Temporal;importjavax.persistence.TemporalType;importorg.hibernate.annotations.Cascade;importorg.hibernate.annotations.CascadeType;

@Entity

@Table(name="mm_user")//規定該實體為外鍵維護方

public classUser {private intid;privateString username;privateString password;privateString nickname;privateDate bornDate;private Setroles;

@Id

@GeneratedValuepublic intgetId() {returnid;

}public void setId(intid) {this.id =id;

}

@Column(length=10,nullable=false)publicString getUsername() {returnusername;

}public voidsetUsername(String username) {this.username =username;

}

@Column(length=10,nullable=false)publicString getPassword() {returnpassword;

}public voidsetPassword(String password) {this.password =password;

}

@Column(length=10,nullable=false)publicString getNickname() {returnnickname;

}public voidsetNickname(String nickname) {this.nickname =nickname;

}

@Temporal(TemporalType.TIMESTAMP)//日期 時間 yyyy-dd-mm HH:MM:SS

publicDate getBornDate() {returnbornDate;

}public voidsetBornDate(Date bornDate) {this.bornDate =bornDate;

}//以m打頭 默認加載方式為lazy

@ManyToMany()

@Cascade(value={CascadeType.ALL})/**@JoinTable(

name="u_r",//中間表名稱

joinColumns=@JoinColumn(name="uid"),//本實體在中間表中創建的字段名

inverseJoinColumns= @JoinColumn(name="rid"))//關聯實體在中間表中創建的字段名

//以上內容可以省略不寫 有默認值*/

public SetgetRoles() {returnroles;

}public void setRoles(Setroles) {this.roles =roles;

}publicUser(String username, String password, String nickname, Date bornDate) {super();this.username =username;this.password =password;this.nickname =nickname;this.bornDate =bornDate;

}publicUser() {}

}

role

packageorg.model.mm.shuangxiang;importjava.util.Set;importjavax.persistence.Column;importjavax.persistence.Entity;importjavax.persistence.GeneratedValue;importjavax.persistence.Id;importjavax.persistence.ManyToMany;importjavax.persistence.Table;importorg.hibernate.annotations.Cascade;importorg.hibernate.annotations.CascadeType;

@Entity

@Table(name= "mm_role")public classRole {private intid;privateString name;private Setusers;

@Id

@GeneratedValuepublic intgetId() {returnid;

}public void setId(intid) {this.id =id;

}

@Column(length=10,nullable=false)publicString getName() {returnname;

}public voidsetName(String name) {this.name =name;

}

@ManyToMany(mappedBy="roles")

@Cascade(value={CascadeType.ALL})public SetgetUsers() {returnusers;

}public void setUsers(Setusers) {this.users =users;

}

@OverridepublicString toString() {return "Role [id=" + id + ", name=" + name + ", users=" + users + "]";

}publicRole(String name) {super();this.name =name;

}publicRole() {}

}

測試:

//多對多不拆分

@Testpublic voidmanyToMany() {

Session session=rtn();

session.getTransaction().begin();//創建user對象

org.model.mm.shuangxiang.User user1=new org.model.mm.shuangxiang.User("zhang","123","小張",newDate());//org.model.mm.shuangxiang.User user2=new org.model.mm.shuangxiang.User("wang","123","小王",new Date());//org.model.mm.shuangxiang.User user3=new org.model.mm.shuangxiang.User("sun","123","小孫",new Date());//創建role對象

Role role1=new Role("總監");

Role role2=new Role("保安");

Role role3=new Role("菜鳥");//創建集合

Set roles=new HashSet();

roles.add(role1);

roles.add(role2);

roles.add(role3);//進行關聯

user1.setRoles(roles);//保存user對象

session.save(user1);

session.getTransaction().commit();

session.close();

}

數據庫:

-----------------------------------------

annotation配置many-to-many變種 ?拆分為兩個一對多

Student

packageorg.model.mm.shuangxiang2;importjava.util.Set;importjavax.persistence.Column;importjavax.persistence.Entity;importjavax.persistence.GeneratedValue;importjavax.persistence.Id;importjavax.persistence.OneToMany;importjavax.persistence.Table;importorg.hibernate.annotations.Cascade;importorg.hibernate.annotations.CascadeType;

@Entity

@Table(name= "mm_student")public classStudent {private intid;privateString name;privateString stuNo;private Settcs;

@Id

@GeneratedValuepublic intgetId() {returnid;

}public void setId(intid) {this.id =id;

}

@Column(length= 10, nullable = false)publicString getName() {returnname;

}public voidsetName(String name) {this.name =name;

}

@Column(length= 10, nullable = false)publicString getStuNo() {returnstuNo;

}public voidsetStuNo(String stuNo) {this.stuNo =stuNo;

}//與中間表相比 是一方 被維護端

@OneToMany(mappedBy = "student")

@Cascade(value={ CascadeType.ALL })public SetgetTcs() {returntcs;

}public void setTcs(Settcs) {this.tcs =tcs;

}publicStudent() {

}publicStudent(String name, String stuNo) {this.name =name;this.stuNo =stuNo;

}

}

Course

packageorg.model.mm.shuangxiang2;importjava.util.Set;importjavax.persistence.Column;importjavax.persistence.Entity;importjavax.persistence.GeneratedValue;importjavax.persistence.Id;importjavax.persistence.OneToMany;importjavax.persistence.Table;importorg.hibernate.annotations.Cascade;importorg.hibernate.annotations.CascadeType;

@Entity

@Table(name= "mm_course")public classCourse {private intid;privateString name;private Settcs;

@Id

@GeneratedValuepublic intgetId() {returnid;

}public void setId(intid) {this.id =id;

}

@Column(length= 10, nullable = false)publicString getName() {returnname;

}public voidsetName(String name) {this.name =name;

}//是一方 被維護端

@OneToMany(mappedBy = "course")

@Cascade(value={ CascadeType.ALL })public SetgetTcs() {returntcs;

}public void setTcs(Settcs) {this.tcs =tcs;

}publicCourse() {

}publicCourse(String name) {this.name =name;

}

}

中間實體 ?StudentCourse

packageorg.model.mm.shuangxiang2;importjavax.persistence.Column;importjavax.persistence.Entity;importjavax.persistence.GeneratedValue;importjavax.persistence.Id;importjavax.persistence.JoinColumn;importjavax.persistence.ManyToOne;importjavax.persistence.Table;importorg.hibernate.annotations.Cascade;importorg.hibernate.annotations.CascadeType;

@Entity

@Table(name= "mm_SC") //指定中間表名稱

public classStudentCourse {private intid;private doublescore;privateStudent student;privateCourse course;

@Id

@GeneratedValuepublic intgetId() {returnid;

}public void setId(intid) {this.id =id;

}

@Column(length= 5, nullable = false)public doublegetScore() {returnscore;

}public void setScore(doublescore) {this.score =score;

}//多方維護外鍵 指定中間表外鍵名稱為student_ID

@ManyToOne()

@Cascade(value={ CascadeType.ALL })

@JoinColumn(name= "student_ID")publicStudent getStudent() {returnstudent;

}public voidsetStudent(Student student) {this.student =student;

}//多方維護外鍵 指定中間表外鍵名稱為course_ID

@ManyToOne()

@Cascade(value={ CascadeType.ALL })

@JoinColumn(name= "course_ID") //多方作為維護端

publicCourse getCourse() {returncourse;

}public voidsetCourse(Course course) {this.course =course;

}public StudentCourse(doublescore, Student student, Course course) {super();this.score =score;this.student =student;this.course =course;

}publicStudentCourse() {

}

}

配置文件中引入:

測試:

//多對多 拆分為兩個一對多

@Testpublic voidmanyToMany2() {

Session session=rtn();

session.getTransaction().begin();//創建2個student對象

org.model.mm.shuangxiang2.Student student1=new org.model.mm.shuangxiang2.Student("zhang","141164000");

org.model.mm.shuangxiang2.Student student2=new org.model.mm.shuangxiang2.Student("wang","141164888");//創建2個course對象

Course course1=new Course("java");

Course course2=new Course("php");//創建studentCourse對象 把創建的student course加入進去//學生1的兩門課成績

StudentCourse sc1=new StudentCourse(88.5,student1,course1);

StudentCourse sc2=new StudentCourse(99.5,student1,course2);//學生2的兩門課成績

StudentCourse sc3=new StudentCourse(66.5,student2,course1);

StudentCourse sc4=new StudentCourse(49.5,student2,course2);//保存維護端對象 studentcourse

session.save(sc1);

session.save(sc2);

session.save(sc3);

session.save(sc4);

session.getTransaction().commit();

session.close();

}

數據庫:

-------------------------------------

總結

以上是生活随笔為你收集整理的hibernate mysql annotation_Hibernate基于注解annotation的配置的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

国产精品一区二区果冻传媒 | 黄色三级免费网址 | 国产91影视 | 亚洲欧洲xxxx| 一本大道久久精品懂色aⅴ 五月婷社区 | 国产亚洲精品免费 | 欧美久久久久久久久久久久 | 综合网天天 | 99视频在线免费看 | 四虎成人精品在永久免费 | 天天干,天天射,天天操,天天摸 | 久久视频在线观看免费 | h视频在线看 | 日韩精品视频在线免费观看 | 夜夜躁日日躁 | 亚洲精品综合久久 | 69国产精品视频 | 国产精品免费久久 | 成人一区电影 | 成人精品一区二区三区电影免费 | 日韩电影中文,亚洲精品乱码 | 久久精品99视频 | 最新国产中文字幕 | 91在线小视频 | 中文字幕av免费在线观看 | 午夜色大片在线观看 | 91麻豆产精品久久久久久 | 欧美一二区在线 | 亚洲精品欧美精品 | 成人午夜电影网 | 公与妇乱理三级xxx 在线观看视频在线观看 | 日韩午夜小视频 | 91插插插免费视频 | 久久99国产精品免费 | 粉嫩av一区二区三区四区五区 | 国产在线观看av | 欧美影院久久 | 国产福利免费在线观看 | 婷婷国产v亚洲v欧美久久 | 久久乱码卡一卡2卡三卡四 五月婷婷久 | 久草精品视频 | av不卡在线看| 日韩女同一区二区三区在线观看 | 久久字幕精品一区 | 五月婷香 | 成年人免费看片 | 色综合天天射 | 久久成人国产精品一区二区 | 久久久免费高清视频 | 亚洲视频第一页 | 色婷婷综合久久久久中文字幕1 | 国产在线不卡一区 | 黄色在线观看污 | 开心丁香婷婷深爱五月 | 一级黄网 | 日韩一区在线播放 | 国产91精品在线观看 | 少妇bbb搡bbbb搡bbbb | 日韩中文字幕免费在线观看 | 欧美一级视频免费 | 激情视频一区 | 久久久亚洲麻豆日韩精品一区三区 | 亚洲成av人片在线观看香蕉 | 国产一区二区三区四区大秀 | 久草在线资源观看 | 九九有精品 | 中文av在线播放 | 日韩一区二区三区免费电影 | 69av视频在线 | 日日婷婷夜日日天干 | 天天综合网 天天综合色 | 欧美一区二区三区在线视频观看 | 91成人精品一区在线播放69 | 黄色一级免费 | 欧美日韩在线视频一区 | 在线观看香蕉视频 | 永久免费毛片在线观看 | 天天玩天天操天天射 | 在线国产中文字幕 | 欧美日韩高清免费 | 亚洲一级片免费观看 | 精品美女国产在线 | 一区二区三区视频 | 免费能看的av| 91在线视频观看免费 | 色婷婷五| 福利一区二区三区四区 | 国产精品久久久久久久久久白浆 | 成年人天堂com | 久久久久综合网 | 91视频这里只有精品 | 天天躁天天狠天天透 | www国产亚洲精品久久网站 | 日本在线观看中文字幕 | 婷五月激情 | 国产麻豆果冻传媒在线观看 | 国产资源 | 精品视频免费在线 | 六月丁香激情综合色啪小说 | 午夜在线看片 | 视频在线亚洲 | 天天色综合三 | 国产精品黄色影片导航在线观看 | 久久视频在线看 | 亚洲综合欧美精品电影 | 色全色在线资源网 | 天堂视频中文在线 | 九九免费在线观看 | 中文免费观看 | 一区二区三区四区免费视频 | 嫩嫩影院理论片 | 久久精品视频网 | 国产精品18久久久久白浆 | 99久热在线精品视频 | 黄色午夜网站 | 国产日本高清 | 日本三级在线观看中文字 | 国产色视频网站 | 久久黄网站 | 四虎影视成人精品 | 国产精品视频999 | 97超碰免费在线 | 91在线看黄 | 亚洲视频大全 | 91成熟丰满女人少妇 | 日韩黄色av网站 | 在线视频成人 | 91在线观看视频 | 亚洲精品综合欧美二区变态 | 黄色网在线免费观看 | 国产免费又黄又爽 | 99久久精品国产一区二区成人 | 亚洲激情在线观看 | 99国产精品久久久久老师 | 97小视频 | 亚洲成人黄色在线 | 99久久日韩精品免费热麻豆美女 | 欧美极度另类性三渗透 | 91中文在线观看 | 丁香综合av| 免费av看片 | 中文字幕在线资源 | 成人综合婷婷国产精品久久免费 | 天天操天天操天天 | 国产高清无线码2021 | 狠狠干夜夜操 | 特级毛片在线免费观看 | 黄色一级动作片 | 亚洲免费成人av电影 | 久久99久久99 | 亚洲精品中文字幕在线 | 中文字幕免费高 | 97精品国产97久久久久久免费 | 在线国产中文字幕 | 91成人久久 | 天天av天天 | 国产精品99久久久久久久久久久久 | 久久久久久久国产精品影院 | 日本视频不卡 | 久久久久久久久久伊人 | 色婷婷视频网 | 日本久久高清视频 | 97精品国产91久久久久久久 | 亚洲精品在线观看av | 国产精品久久久久久久久久久久午夜片 | 国产一区二区中文字幕 | 青青久草在线 | 国产99久久精品一区二区永久免费 | 91在线免费公开视频 | 国产黄色理论片 | 色在线免费 | 久久99精品一区二区三区三区 | 在线观看黄色小视频 | 97成人精品视频在线观看 | 免费视频黄 | 亚洲精品玖玖玖av在线看 | 日韩欧美在线不卡 | 亚洲第一成网站 | 91综合视频在线观看 | 国产高清无线码2021 | 欧美日韩视频在线播放 | 99精品视频免费看 | 最近中文字幕mv免费高清在线 | 伊人春色电影网 | 亚洲精品视频在线 | 黄免费在线观看 | 精品国产亚洲一区二区麻豆 | 日本精品一区二区 | 在线观看亚洲精品 | 国产福利91精品一区 | 成人a视频片观看免费 | 国产日韩欧美在线观看视频 | 国产又粗又长又硬免费视频 | 东方av在 | 国产精品久久久久亚洲影视 | 国产99久久久久久免费看 | 国产在线播放观看 | 97国产精品久久 | 国产专区第一页 | 久久国产精彩视频 | 天海冀一区二区三区 | av中文字幕日韩 | 久久久麻豆视频 | 在线黄色av| 久久久久久高潮国产精品视 | 日韩欧美在线免费观看 | 婷婷在线精品视频 | 又色又爽又激情的59视频 | 精品美女在线观看 | 99精品黄色片免费大全 | 99综合影院在线 | 98超碰人人| 超碰在线官网 | 99精品视频99| 免费观看的黄色 | 天天操天天操一操 | 亚洲精品国精品久久99热 | av日韩在线网站 | 久久综合九色九九 | 亚洲精品在线观看的 | 九九免费在线视频 | www.亚洲视频 | 91精品视频播放 | 欧美一区二区三区免费观看 | 91天堂素人约啪 | 国产999 | 日韩精选在线 | 久久久.com | 午夜三级在线 | 91看成人 | 综合在线观看 | 美女视频黄是免费的 | 久久黄网站 | 成人影片在线免费观看 | 精品一二三四五区 | 国产护士hd高朝护士1 | 日韩xxxbbb | 国产精品资源在线观看 | 九九九视频精品 | 色在线免费观看 | 国产色在线观看 | 国产黄色免费在线观看 | 日本夜夜草视频网站 | 久久撸在线视频 | 久久久久日本精品一区二区三区 | 欧美日韩高清不卡 | 久久亚洲精品电影 | 在线观看亚洲免费视频 | 国产精品永久久久久久久久久 | 丝袜美腿在线视频 | 国产精品18久久久久久vr | 成人免费视频在线观看 | 久热色超碰 | 在线免费观看视频a | 久久看片| 在线91色 | av在线播放快速免费阴 | 国产精品久久久久av免费 | 色综合久久久 | 久久久人| 成年人在线看片 | 日韩一区二区三区高清在线观看 | 五月综合在线观看 | 狠狠操狠狠操 | 亚洲电影av在线 | 国产精品久久久久久久免费大片 | 成人小视频在线观看免费 | 视频99爱 | 免费观看www小视频的软件 | 国产真实在线 | 最近最新mv字幕免费观看 | 亚洲丝袜一区二区 | 亚洲精品av中文字幕在线在线 | 欧美成人在线网站 | 日本aa在线| 日本3级在线观看 | 欧美日韩免费观看一区=区三区 | 国产小视频免费观看 | 一区二区丝袜 | a国产精品 | 六月色播| 日韩精品一区在线观看 | 日本高清xxxx | 综合色影院 | www.xxxx欧美 | 亚洲少妇激情 | 亚洲精品国产区 | va视频在线观看 | 久久久久成人精品免费播放动漫 | 婷婷激情综合五月天 | 欧美福利视频一区 | 亚洲另类xxxx | 欧美aⅴ在线观看 | 成人av免费在线观看 | 黄视频色网站 | av免费高清观看 | 97超碰人人澡人人 | 亚洲欧美在线综合 | 久久夜靖品 | 久久久久在线视频 | 91日韩在线 | 欧美激情视频免费看 | 国产美女精品视频免费观看 | 亚洲精品国产自产拍在线观看 | 欧美性色xo影院 | 色婷婷狠狠五月综合天色拍 | 午夜手机电影 | 亚洲人天堂 | 成人av在线影视 | 亚洲一区二区麻豆 | av电影在线播放 | 国产一区在线观看视频 | 999久久久 | 免费三级av | 91精品国产成人观看 | 91网免费观看| 欧美美女视频在线观看 | 日韩 在线观看 | 碰超在线观看 | 亚洲乱码精品久久久久 | 国产一区二区高清不卡 | 亚洲国产精品一区二区久久hs | 国产伦精品一区二区三区… | 人人爽久久久噜噜噜电影 | 免费看黄色小说的网站 | 青青射| 欧美亚洲xxx | 高清不卡一区二区在线 | 中文字幕在线观看国产 | 成人黄色影片在线 | 黄色国产高清 | 成年人视频免费在线播放 | 国产资源 | 日韩和的一区二在线 | 中文字幕有码在线观看 | 五月天亚洲婷婷 | 亚洲三级黄色 | 国产黄a三级三级三级三级三级 | 国产精品五月天 | 久久国产一区二区 | 国产精品一区二区三区在线免费观看 | 午夜久久福利 | 最近中文字幕免费大全 | 欧美大荫蒂xxx | 又黄又刺激 | 国产精品免费观看在线 | 国产精品免费大片视频 | 在线观看亚洲精品 | 国产不卡一区二区视频 | 青青草国产精品 | 超碰在线9| 九九色视频 | 狠狠色狠狠色综合系列 | 狠狠干天天色 | 国产欧美久久久精品影院 | 中文字幕一区在线观看视频 | 成人黄色小视频 | 精品视频一区在线观看 | 婷婷丁香花 | 99爱视频 | 亚洲作爱视频 | 日本久久久久 | 国产精品一区在线 | 六月婷婷网 | 亚洲成av人片一区二区梦乃 | 一级免费看| 麻豆精品传媒视频 | 久久久久久免费视频 | 国产破处在线视频 | 97成人在线视频 | 久久99国产精品免费 | 国产精品嫩草影院9 | 91桃色在线观看视频 | 国产91精品欧美 | 国产乱码精品一区二区蜜臀 | 国精产品999国精产品岳 | 一级欧美黄 | 国产成人精品久久久久蜜臀 | 伊人伊成久久人综合网小说 | 婷婷综合激情 | 久久久久高清毛片一级 | 国产精品毛片一区二区三区 | 亚洲做受高潮欧美裸体 | 中文字幕免费一区二区 | 国产成本人视频在线观看 | 天天爱天天操天天爽 | 中文字幕免费高清 | 色婷婷综合成人av | 99免费精品 | 西西444www大胆高清视频 | 国产精品成久久久久三级 | 色综合久久久久综合 | 久久综合狠狠综合久久狠狠色综合 | 97成人精品视频在线观看 | 9999免费视频| 中文字幕av在线 | 天天·日日日干 | 97超碰人人| 在线视频a| 久久99国产精品免费 | 国产成人久久久久 | 久久五月精品 | 欧美另类美少妇69xxxx | 在线亚洲欧美视频 | 国产成人久久77777精品 | 亚洲精品免费在线视频 | 三级黄色a | 久99精品 | 97夜夜澡人人双人人人喊 | 国产精品久久久99 | 日韩三级成人 | 91最新国产 | 亚洲高清在线观看视频 | 丁香六月伊人 | 超级碰碰碰视频 | 久久久精品国产免费观看同学 | 成年人视频免费在线 | 欧美亚洲精品在线观看 | 九九综合在线 | 激情开心色 | 日韩精品一区二 | www.人人干| 亚洲精品国产第一综合99久久 | 日韩在线国产精品 | 婷婷av综合 | av高清在线观看 | 97在线视频观看 | 欧美日韩精品在线视频 | 亚洲91精品在线观看 | 欧美激情在线网站 | 一级做a视频 | 日韩xxx视频 | 亚洲美女免费精品视频在线观看 | 中文字幕有码在线 | 人成免费网站 | 二区三区在线 | 精品一区二区在线免费观看 | 天天曰天天 | www在线观看视频 | 免费福利视频导航 | 五月开心综合 | av丁香花 | 欧美国产日韩一区二区三区 | 午夜av在线 | 久久精品导航 | 另类老妇性bbwbbw高清 | 超碰免费在线公开 | 婷婷五天天在线视频 | 日韩久久精品一区二区三区 | 亚洲专区路线二 | 99 精品 在线 | 精品uu| 超碰97成人 | 亚色视频在线观看 | 日韩欧美高清 | 久久精品美女 | 天天操综合网站 | 九九久久久久99精品 | 精品日韩中文字幕 | 亚洲激情视频在线观看 | 高清av在线免费观看 | 亚洲春色奇米影视 | 91日韩精品视频 | 欧美另类交在线观看 | 视频在线一区二区三区 | 精品国产理论片 | 91在线操| 99久国产| 国产真实精品久久二三区 | 一区二区三区在线电影 | 久久精品一区二区三区中文字幕 | 91成人精品国产刺激国语对白 | 精品国产一区二区三区久久久蜜臀 | 亚洲国产精品视频 | 国产玖玖精品视频 | 国产综合视频在线观看 | 一级黄视频 | 天天做天天射 | 美女视频一区 | 日韩毛片在线播放 | av成人免费网站 | 日韩三级成人 | 国产精品亚洲片夜色在线 | 久久精品欧美一区 | 香蕉视频在线播放 | 欧美综合国产 | 18av在线视频 | 日韩av电影网站在线观看 | 成人毛片一区 | 97福利视频| www.玖玖玖 | 亚洲五月激情 | 日本不卡一区二区三区在线观看 | 99草在线视频 | 成年人黄色免费视频 | 成人精品电影 | 日韩在线观看你懂得 | 亚洲精品影视在线观看 | 青春草视频在线播放 | 天天操天天操一操 | a久久久久久 | 99re6热在线精品视频 | 在线观看岛国av | 国产精品美女久久久久久免费 | 97免费在线视频 | 在线观看久久久久久 | 天天天综合 | 国产精品女主播一区二区三区 | 亚洲色图美腿丝袜 | 波多野结衣一区三区 | 精品99视频 | 黄色三级在线看 | 午夜精品福利一区二区 | 国产一区二区不卡视频 | 中文在线天堂资源 | 在线观看免费一区 | 高清精品在线 | 日韩精品免费一区二区 | 国产护士hd高朝护士1 | 91免费的视频在线播放 | 色网av| 久久午夜免费视频 | 日韩欧美一区二区在线观看 | 伊人五月天婷婷 | 国产视频中文字幕在线观看 | 国产91在线观 | 国产xxxx做受性欧美88 | 国产真实精品久久二三区 | 日韩a级黄色片 | www.色国产 | 日本三级在线观看中文字 | 亚洲涩涩涩涩涩涩 | 天天操天天操天天 | 91色吧| 国产裸体视频网站 | 国产美女黄网站免费 | 亚洲区视频在线观看 | 日韩免费在线播放 | 久草精品视频 | 精品一二三区 | 亚洲五月婷婷 | 91精品国产综合久久久久久久 | 天天射夜夜爽 | 97超碰国产精品女人人人爽 | 欧美色综合天天久久综合精品 | 国产亚洲午夜高清国产拍精品 | 国产专区精品 | 免费成人在线观看 | 国产高清综合 | 99热国产在线 | 久久精品视频观看 | 午夜婷婷在线观看 | 免费av大片 | 91精品老司机久久一区啪 | 久久久久久久综合色一本 | 一区二区三区四区不卡 | 国产精品一区二区久久精品爱微奶 | 国产亚洲成av人片在线观看桃 | 色多多视频在线观看 | 日韩av中文字幕在线 | 欧美激情第十页 | 日韩精品欧美一区 | se视频网址| 爱射综合 | 五月婷婷一区二区三区 | 国产永久免费高清在线观看视频 | 国产一区久久 | 五月天婷婷在线观看视频 | 九草在线视频 | 在线免费视频a | 91成人破解版 | 在线色网站| 精品影院 | 最新亚洲视频 | www欧美日韩| 最新91在线视频 | .国产精品成人自产拍在线观看6 | 成人免费观看a | 国产在线精品播放 | 免费看的毛片 | 日韩大片免费观看 | 成人久久18免费网站图片 | 操操碰 | zzijzzij亚洲成熟少妇 | 国产一级91 | 亚洲九九九在线观看 | 国产精品嫩草55av | 日韩黄色在线电影 | 久久久久久视频 | www.夜色321.com| 97香蕉久久国产在线观看 | 成人av免费在线播放 | 激情视频免费观看 | 国产午夜精品久久久久久久久久 | 精品福利视频在线 | 天天草天天| 91精品久久久久 | 久免费 | 亚洲黄色免费观看 | 欧美精品中文字幕亚洲专区 | 欧美激情综合色综合啪啪五月 | 91免费网 | 人人澡人摸人人添学生av | 成人久久久电影 | 成人在线中文字幕 | 色网站中文字幕 | 又粗又长又大又爽又黄少妇毛片 | 人人插人人做 | 久草视频一区 | 激情网在线观看 | 玖玖在线观看视频 | 99精品国产99久久久久久97 | 久久精品第一页 | 1区2区3区在线观看 三级动图 | 亚洲欧美乱综合图片区小说区 | 成人黄色小说视频 | 中文字幕久久精品一区 | 日韩成人免费在线电影 | 欧美日韩中文视频 | 久久国产热视频 | 日韩成人精品一区二区 | 亚洲成av人片在线观看 | 色wwwww| 91久久久国产精品 | 69精品视频 | 在线播放日韩av | 超碰在线9 | 国产精品久久久一区二区三区网站 | 久久综合亚洲鲁鲁五月久久 | 久热av在线| 中文在线免费观看 | 精品一二 | 91精品无人成人www | 91免费观看视频网站 | 成人h动漫在线看 | 全久久久久久久久久久电影 | 青青河边草观看完整版高清 | 国产免费三级在线观看 | 一区二区视频在线观看免费 | 亚洲传媒在线 | 国产人成在线观看 | 91看片淫黄大片91 | 丁香 久久 综合 | 福利av影院 | 色网站视频 | 国产在线不卡 | 一区二区三区av在线 | 热久久免费国产视频 | 91av官网| 国产免费一区二区三区最新 | 69久久99精品久久久久婷婷 | 在线视频日韩一区 | 天天综合狠狠精品 | 久久成人国产精品 | 一区中文字幕在线观看 | 日本巨乳在线 | 日操操| 人人干人人添 | 在线岛国av | 国产精品麻豆免费版 | 精品国自产在线观看 | 网站免费黄色 | 精品一区二区在线观看 | 亚洲高清久久久 | 国产精品国产三级国产 | 九九九毛片 | 国产99久久久精品 | 狠狠躁夜夜av | 超碰免费久久 | 欧美视频在线观看免费网址 | 9在线观看免费高清完整版 玖玖爱免费视频 | 丁香六月色 | 日本中文字幕视频 | 日本系列中文字幕 | 狠狠干中文字幕 | 亚洲最大在线视频 | 久久精品国产免费看久久精品 | 国产精品男女啪啪 | 色综合咪咪久久网 | 欧美极品少妇xxxx | 亚洲精品自在在线观看 | 国产中出在线观看 | 狠狠干天天色 | 精品一区二区免费视频 | 亚洲欧洲一级 | 婷婷激情小说网 | 免费看黄电影 | 最近中文字幕完整视频高清1 | 麻豆视频免费网站 | 欧美久久久久久久久久久久 | 天堂久色 | 午夜色站 | 天天干夜夜 | 久久精品视频在线 | 人人插超碰 | 欧美日韩国产一区二区三区在线观看 | 国内精品视频在线播放 | 日韩综合色 | 永久免费的啪啪网站免费观看浪潮 | 成人影视片 | 国产在线一线 | 操操操综合 | 天天干一干 | 国产成人亚洲在线电影 | 中文字幕在线免费观看视频 | 中文字幕在线观看第三页 | 国产不卡精品视频 | 欧美另类tv | 久久久久国产精品免费免费搜索 | 欧美 国产 视频 | 麻豆精品传媒视频 | 午夜精品成人一区二区三区 | www.夜夜操.com | 天天爱天天 | 四虎国产视频 | 欧美一区二区日韩一区二区 | www.com.日本一级 | 免费午夜在线视频 | 88av网站 | 91麻豆精品国产91久久久更新时间 | 九九热免费观看 | 国产一区二区三区免费在线 | 久久99偷拍视频 | 成年性视频 | 精品视频免费久久久看 | 操高跟美女 | www免费黄色 | 亚洲一级二级 | 美女av在线免费 | 国产99亚洲 | 国产精品成人国产乱一区 | 亚洲精品福利视频 | 4p变态网欧美系列 | 久久免费视频1 | 欧美在线视频日韩 | 久久av免费电影 | 午夜精品久久久久久久久久久久久久 | 天天操天天摸天天爽 | 成人av片免费观看app下载 | 国产三级精品在线 | 超碰在线99| 久久精品99国产精品酒店日本 | 国产精品免费观看国产网曝瓜 | 日本aaaa级毛片在线看 | wwwww.国产| 六月天综合网 | 亚洲色图激情文学 | 成人久久影院 | 日韩一级电影网站 | 91日韩在线 | 黄色一区二区在线观看 | 91麻豆精品国产91久久久久久久久 | 奇米影视四色8888 | 国产视频一区二区在线 | 特级片免费看 | 中文字幕超清在线免费 | a在线v| 亚洲春色综合另类校园电影 | 美女视频免费一区二区 | 久久蜜桃av | 久久国内精品视频 | 久草国产精品 | 亚洲精品在线免费 | 草免费视频 | 黄色一级免费电影 | 国产精品美女久久久免费 | 99欧美视频 | 国产精品久久艹 | 97精品国产97久久久久久久久久久久 | 亚洲日本成人网 | 欧美极品一区二区三区 | 成人av免费在线播放 | 欧美日韩中文在线视频 | 婷婷综合激情 | 久久精品国产第一区二区三区 | 婷婷av电影 | 日韩中文在线播放 | 久草免费手机视频 | 欧美黄污视频 | 欧美在线观看禁18 | 美女黄频在线观看 | 国产精品久久嫩一区二区免费 | 在线成人免费av | 久久综合九色综合网站 | 香蕉日日 | 欧美做受xxx | 天天拍天天色 | 久久视奸| 91精品国产乱码 | av在线播放快速免费阴 | 蜜臀av网址 | 一级黄色av| 婷婷色狠狠| 国产亚洲精品久久久久久 | 日本久久久久久 | 毛片在线播放网址 | 91在线免费播放 | 在线 成人 | 日韩欧美有码在线 | 国产精品麻豆果冻传媒在线播放 | 丁香五月亚洲综合在线 | 欧美做受xxx| 99视频在线精品免费观看2 | 欧美日韩国产一区二区在线观看 | 日韩精品久久中文字幕 | 蜜臀av性久久久久蜜臀aⅴ涩爱 | 伊甸园av在线 | 一区二区三区日韩视频在线观看 | 亚洲欧美成人综合 | 人人看人人做人人澡 | 日韩在线视频免费观看 | 99精品在线视频播放 | 国产一二区在线观看 | 国产午夜免费视频 | 伊人久久电影网 | 日韩免费一区二区在线观看 | 久久国色夜色精品国产 | 国产精品电影一区 | 日韩剧情| 黄色在线免费观看网站 | 精品免费久久 | 中文字幕av免费在线观看 | 国产精品久久久久久久久久免费看 | 一级黄毛片 | 黄色成人影院 | 在线日韩视频 | 久久亚洲福利视频 | 国产精品国产亚洲精品看不卡15 | 午夜久久福利 | 在线小视频你懂得 | 久久久免费在线观看 | 一区二区三区国产精品 | 中文字幕一区二 | 99久久99热这里只有精品 | 国产精品福利无圣光在线一区 | 狠狠做深爱婷婷综合一区 | 欧美日韩国产精品一区 | 国产99精品 | 国产99在线 | 国产精品久久久久免费a∨ 欧美一级性生活片 | 日日摸日日 | 日本久久免费视频 | 麻豆91精品| 欧美一级专区免费大片 | 免费日韩 精品中文字幕视频在线 | 欧美色一色 | 波多野结衣在线视频免费观看 | 中文字幕在线一区二区三区 | 91在线入口 | 国产一级精品在线观看 | 91chinesexxx | 国产精品va最新国产精品视频 | 探花视频免费观看高清视频 | 亚洲精品国产精品国产 | 国产一二区在线观看 | 91精品蜜桃| 一区二区精品视频 | 麻豆国产视频 | 日韩精品一区二区三区三炮视频 | 91pony九色丨交换 | 久久国产成人午夜av影院宅 | 国产999精品久久久久久麻豆 | 国产一级做a | 亚洲国产精品推荐 | 精品久久1 | 天天操天天操天天爽 | 国产免费观看视频 | 国产久草在线 | 日韩在线中文字幕 | 国产午夜精品一区二区三区在线观看 | 日本丶国产丶欧美色综合 | 黄色成年 | 97视频在线播放 | 久久久高清一区二区三区 | 久久av免费观看 | 九色琪琪久久综合网天天 | 亚洲亚洲精品在线观看 | av在线电影网站 | 狠狠干电影 | 国产免费二区 | 五月婷婷婷婷婷 | 色综合久久久久综合99 | 国产 日韩 欧美 中文 在线播放 | 伊人激情网| 日色在线视频 | 日韩欧美v | 国产1区2区3区在线 亚洲自拍偷拍色图 | 成人在线电影观看 | 日韩一二三在线 | 亚州精品在线视频 | www.看片网站 | 亚洲性视频| 国产精品免费久久久 | 国产尤物在线视频 | 在线播放视频一区 | 黄色大片视频网站 | 欧美精品一区二区性色 | 精品久久久久久久久中文字幕 | 国产精品欧美日韩在线观看 | 91精品一区二区三区蜜桃 | 成 人 黄 色 免费播放 | 国产亚洲永久域名 | 亚洲精品乱码久久久久 | 日韩在线免费看 | 亚洲91在线| 91精品国产99久久久久久红楼 | 久久视频精品在线观看 | 欧美日韩在线第一页 | 亚洲精选久久 | 久久久久久久久久久高潮一区二区 | 久av电影| 在线超碰av | 国产精品成久久久久三级 | 97偷拍视频| 欧美黑吊大战白妞欧美 | 99热国产在线 | 日韩一级成人av | 91精品一区二区三区久久久久久 | 欧美性黄网官网 | 亚洲天堂视频在线 | 婷婷久久综合九色综合 | 成人97视频 | 欧美久久久一区二区三区 | 久久www免费视频 | 97人人澡人人添人人爽超碰 | 国产 日韩 在线 亚洲 字幕 中文 | 激情综合网色播五月 | 狠狠色伊人亚洲综合网站野外 | 99久久毛片 | 国产一区二区久久 | av免费在线网 | 欧美激情亚洲综合 | 国产一区在线免费 | 亚洲精品乱码久久久久久蜜桃91 | 欧美在线观看视频 | 日本在线观看视频一区 | 国产成人精品午夜在线播放 | 久久久久久黄 | 99精品一区二区 | 精品福利在线 | 国产视频一区在线 | 91黄色视屏 | 欧洲精品久久久久毛片完整版 | 欧美一级久久久久 | 麻豆94tv免费版 | 久久伊人综合 | 欧美一区二区在线刺激视频 | 亚洲专区路线二 | 国产精品免费观看网站 | 日韩有码专区 | 97狠狠操 | 黄网站污| 欧美日韩午夜在线 | 国产男女免费完整视频 | 国产传媒中文字幕 | 日本三级大片 | 久久久96| 久久精品欧美日韩精品 | 亚洲片在线 | 成人在线观看日韩 | 四虎影视久久久 | 日韩午夜网站 | 久久在线免费观看视频 | 久久久久欠精品国产毛片国产毛生 | 欧美日韩在线视频一区二区 | 国产视频一区在线 | 国产 视频 久久 | 中文字幕在线影视资源 | 久久视频免费在线观看 | 网站在线观看你们懂的 | 精品视频国产 | 超碰在线人人草 | 超碰在线成人 | 精品国产一区二 | 国产婷婷久久 | 中文字幕久久精品亚洲乱码 | 四虎成人精品在永久免费 | 91免费黄视频 | 99草视频 | 久久久久国产精品一区 | 婷婷伊人网 | 丁香婷婷综合五月 | 九九热精品在线 | 天天干,天天射,天天操,天天摸 | 亚洲综合在线播放 | 免费高清国产 | 人人爽人人爽人人片av | 丁香花中文字幕 | 99这里只有精品99 | 在线观看视频一区二区三区 | 久久综合九色综合97婷婷女人 | 国产成人av电影 | 伊人五月天 | 日本超碰在线 | 久久超| 在线电影 一区 | 在线看毛片网站 | 天天综合婷婷 |