Hibernate学习笔记(五)(Hibernate映射类型)
来源:互联网 发布:网络经营管理办法 编辑:程序博客网 时间:2024/06/05 20:50
一:基本类型映射
Book类
public class Book {private int id; private String author; //作者private String bookName;//书名private Date publishDate;//发布日期private Blob bookPic;//封面private boolean specialPrice;//是否特价private float price;//价格private String introduction;//介绍public int getId() {return id;}public void setId(int id) {this.id = id;}public String getAuthor() {return author;}public void setAuthor(String author) {this.author = author;}public String getBookName() {return bookName;}public void setBookName(String bookName) {this.bookName = bookName;}public Date getPublishDate() {return publishDate;}public void setPublishDate(Date publishDate) {this.publishDate = publishDate;}public Blob getBookPic() {return bookPic;}public void setBookPic(Blob bookPic) {this.bookPic = bookPic;}public boolean isSpecialPrice() {return specialPrice;}public void setSpecialPrice(boolean specialPrice) {this.specialPrice = specialPrice;}public float getPrice() {return price;}public void setPrice(float price) {this.price = price;}public String getIntroduction() {return introduction;}public void setIntroduction(String introduction) {this.introduction = introduction;}}Book.hbm.xml
<?xml version="1.0"?><!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"><hibernate-mapping package="com.zhu.model"><class name="Book" table="t_book"> <id name="id" column="bookId"> <generator class="native"></generator> </id> <property name="author" length="20" type="string"></property> <property name="bookName" length="20"></property> <property name="publishDate" type="date"></property> <property name="specialPrice" type="boolean"></property> <property name="bookPic" type="blob"></property> <property name="price" type="float"></property> <property name="introduction" type="text"></property></class></hibernate-mapping>
public class StudentTest {public static void main(String[] args) throws Exception {SessionFactory sessionFactory=HibernateUtil.getSessionFactory();Session session=sessionFactory.openSession();//生成session session.beginTransaction(); //开启事务 Book book=new Book(); book.setAuthor("朱成中"); book.setBookName("或许这就是男人吧"); book.setPrice(999.999f); book.setPublishDate(new SimpleDateFormat("yyyy-MM-dd").parse("2017-7-4")); book.setSpecialPrice(true); book.setIntroduction("男人必看的书"); LobHelper lobHelper=session.getLobHelper(); InputStream in=new FileInputStream("d://java编程思想.jpg"); Blob bookPic=lobHelper.createBlob(in, in.available()); book.setBookPic(bookPic); session.save(book); session.getTransaction().commit(); //提交事务 session.close(); //关闭session }}
二:集合类型映射
1,Set 无序元素不可重复
Student类
public class Student {private int id;private String name;@Overridepublic String toString() {return "Student [id=" + id + ", name=" + name + "]";}private Set<String >imageSet=new HashSet<String>();public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public Set<String> getImageSet() {return imageSet;}public void setImageSet(Set<String> imageSet) {this.imageSet = imageSet;}}
Student.hbm.xml
<?xml version="1.0"?><!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"><hibernate-mapping package="com.zhu.model"><class name="Student" table="t_student"> <id name="id" column="stuId"> <generator class="native"></generator> </id> <property name="name"></property> <set name="imageSet" table="t_image"> <key column="studentId"></key> <element column="imageName" type="string"></element> </set></class></hibernate-mapping>
Junit
@Testpublic void testSet() {Student s=new Student();s.setName("朱成中");s.getImageSet().add("image1.jpg");s.getImageSet().add("image2.jpg");s.getImageSet().add("image3.jpg");s.getImageSet().add("image3.jpg");session.save(s);}@Testpublic void testSetSearch() {Student s=(Student)session.get(Student.class, 1);Iterator it=s.getImageSet().iterator();while(it.hasNext()){String imageName=(String) it.next();System.out.println(imageName);}}
2,List 有序元素可重复
Student2类
public class Student2 {private int id;private String name;@Overridepublic String toString() {return "Student [id=" + id + ", name=" + name + "]";}private List<String>imageList=new ArrayList<String>();public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public List<String> getImageList() {return imageList;}public void setImageList(List<String> imageList) {this.imageList = imageList;}}
Student.hbm.xml
<?xml version="1.0"?><!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"><hibernate-mapping package="com.zhu.model"><class name="Student2" table="t_student"> <id name="id" column="stuId"> <generator class="native"></generator> </id> <property name="name"></property> <list name="imageList" table="t_image2"> <key column="studentId"></key> <list-index column="imageIndex"> </list-index> <element column="imageName" type="string"></element> </list></class></hibernate-mapping>JUnit
@Testpublic void testList() {Student2 s=new Student2();s.setName("朱成中");s.getImageList().add("image1.jpg");s.getImageList().add("image2.jpg");s.getImageList().add("image3.jpg");s.getImageList().add("image3.jpg");session.save(s);}@Testpublic void testListSearch() {Student2 s=(Student2)session.get(Student2.class, 2);for(String image:s.getImageList()){System.out.println(image);}}
3,Bag 无序元素可重复
Student3类
public class Student3 {private int id;private String name;@Overridepublic String toString() {return "Student [id=" + id + ", name=" + name + "]";}private List<String >imageList=new ArrayList<String>();public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public List<String> getImageList() {return imageList;}public void setImageList(List<String> imageList) {this.imageList = imageList;}}Student3.hbm.xml
<?xml version="1.0"?><!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"><hibernate-mapping package="com.zhu.model"><class name="Student3" table="t_student"> <id name="id" column="stuId"> <generator class="native"></generator> </id> <property name="name"></property> <idbag name="imageList" table="t_image3"> <collection-id type="int" column="imageId"> <generator class="increment"></generator> </collection-id> <key column="studentId"></key> <element column="imageName" type="string"></element> </idbag></class></hibernate-mapping>
JUnit
@Testpublic void testBag() {Student3 s=new Student3();s.setName("朱成中");s.getImageList().add("image1.jpg");s.getImageList().add("image2.jpg");s.getImageList().add("image3.jpg");s.getImageList().add("image3.jpg");session.save(s);}@Testpublic void testBagSearch() {Student3 s=(Student3)session.get(Student3.class, 3);for(String image:s.getImageList()){System.out.println(image);}}
4,Map 键值对
Student4类
public class Student4 {private int id;private String name;@Overridepublic String toString() {return "Student [id=" + id + ", name=" + name + "]";}private Map<Integer,String>imageMap=new HashMap<Integer,String>();public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public Map<Integer, String> getImageMap() {return imageMap;}public void setImageMap(Map<Integer, String> imageMap) {this.imageMap = imageMap;}}
Student4.hbm.xml
<?xml version="1.0"?><!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"><hibernate-mapping package="com.zhu.model"><class name="Student4" table="t_student"> <id name="id" column="stuId"> <generator class="native"></generator> </id> <property name="name"></property> <map name="imageMap" table="t_image4"> <key column="studentId"></key> <map-key column="imageKey" type="int"></map-key> <element column="imageName" type="string"></element> </map></class></hibernate-mapping>
JUnit@Testpublic void testMap() {Student4 s=new Student4();s.setName("朱成中");s.getImageMap().put(1, "image1.jpg");s.getImageMap().put(2, "image2.jpg");s.getImageMap().put(3, "image3.jpg");s.getImageMap().put(4, "image3.jpg");session.save(s);}@Testpublic void testMapSearch() {Student4 s=(Student4)session.get(Student4.class, 4);Set<Integer>set=s.getImageMap().keySet();for(int key:set){String image=s.getImageMap().get(key);System.out.println(image);}}
阅读全文
1 0
- Hibernate学习笔记(五)(Hibernate映射类型)
- Hibernate学习笔记(五)----关系映射
- Hibernate学习笔记(五)【映射组成关系】
- Hibernate学习笔记(五)映射组件属性
- Hibernate学习笔记(五)【映射组成关系】
- Hibernate学习笔记(七)【映射值类型集合】
- Hibernate学习笔记(七)【映射值类型集合】
- Hibernate学习笔记(五)
- Hibernate学习笔记(五)
- hibernate学习笔记(五)
- 【Hibernate学习笔记】映射值类型集合
- hibernate配制文件五(Hibernate映射类型)
- 【Hibernate学习笔记】Hibernate的内置映射类型
- hibernate学习笔记十二(组件映射)
- Hibernate学习笔记(六)Hibernate 映射继承
- Hibernate学习笔记(七)Hibernate 映射关系
- Hibernate学习笔记(3)---hibernate关联关系映射
- Hibernate学习笔记(五)——多对多映射
- spring学习中遇到的坑之 xml约束导入问题
- [PyCV2]Win10 + OpenCV + Python + Numpy + matplotlib +Wing IDE环境搭建
- 华为机试:统计每个月兔子的总数、 字符串运用-密码截取
- CJOJ 1010【NOIP2003】加分二叉树 / Luogu 1040 加分二叉树 /CodeVS 1090 加分二叉树
- 压缩解压缩linux命令(整理)
- Hibernate学习笔记(五)(Hibernate映射类型)
- Markdown编辑器使用-yellowcong
- PAT乙级1012. 数字分类 (20)
- 修改源码实现全局(无需root)注入躲开注入检测
- CCF2017-3-2 学生排队
- 移动端图片自适应
- EasyUI修改DateBox和DateTimeBox的默认日期格式,中文问题
- c++ 二维数组出杨辉三角
- Scala入门到精通——第十九节 隐式转换与隐式参数(二)