Hibernate笔记03Hibernate中关系映射文件中基本属性的配置

来源:互联网 发布:淮南大数据公司老总 编辑:程序博客网 时间:2024/05/19 15:39

User实体类

package cn.yht.d_hbm_property;import java.util.Date;public class User {private Integer id;private String name; // 姓名private boolean gender; // true表示男,false表示女private Date birthday; // 生日private String desc; // 一大段说明,最多为5000字private byte[] photo; // 照片public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public boolean getGender() {return gender;}public void setGender(boolean gender) {this.gender = gender;}public Date getBirthday() {return birthday;}public void setBirthday(Date birthday) {this.birthday = birthday;}public String getDesc() {return desc;}public void setDesc(String desc) {this.desc = desc;}public byte[] getPhoto() {return photo;}public void setPhoto(byte[] photo) {this.photo = photo;}}

相应的User.hbm.xml配置文件

<?xml version="1.0"?><!DOCTYPE hibernate-mapping PUBLIC        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"        "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"><hibernate-mapping><!-- name是类名,table是对应的表名 --><class name="cn.yht.d_hbm_property.User" table="user"><id name="id" type="int" column="id">            <generator class="native"/></id><!-- name:对象中的属性名,必须要有type:数据的类型,不写时会自动检测column:对应的列名,不写时默认为属性的名称not-null:true/false,是否有非空约束,默认为falselength:长度,默认为255--><!--<property name="name" type="string" column="name" not-null="true" length="35"/><property name="name" type="string"><column name="name_" not-null="true" length="55"></column></property> --><property name="name"></property><property name="gender"></property><!-- 日期要指定什么类型 --><property name="birthday" type="date"></property><!-- 大文本类型,最好指定长度 --><property name="desc" column="`desc`" type="text" length="5000"></property><!-- 二进制类型,最好指定长度 --><property name="photo" type="binary" length="512000"></property></class></hibernate-mapping>

测试的APP类

package cn.yht.d_hbm_property;import java.io.FileInputStream;import java.util.Date;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.cfg.Configuration;import org.junit.Test;public class App {private static SessionFactory sessionFactory = new Configuration()//.configure()//.addClass(User.class)//.buildSessionFactory();// 保存@Testpublic void testSave() throws Exception {Session session = sessionFactory.openSession();session.beginTransaction();// ---------------------------------------// 读一个图片文件FileInputStream in = new FileInputStream("c:/myPhoto.png");byte[] photo = new byte[in.available()];in.read(photo);in.close();// 准备对象User user = new User();user.setName("李四");user.setGender(true);user.setBirthday(new Date());user.setDesc("一大段的说明,此处省略1000字...");user.setPhoto(photo);// 保存session.save(user);// ---------------------------------------session.getTransaction().commit();session.close();}// 获取@Testpublic void testGet() throws Exception {Session session = sessionFactory.openSession();session.beginTransaction();// ---------------------------------------User user = (User) session.get(User.class, 1);System.out.println(user.getName());System.out.println(user.getGender());System.out.println(user.getBirthday());System.out.println(user.getDesc());System.out.println(user.getPhoto());// ---------------------------------------session.getTransaction().commit();session.close();}}




 

原创粉丝点击