package cn.itcast.c_hbm_property; import java.util.Arrays; import java.util.Date; /** * 实体 * * @author 风清杨 * @version V1.0 */ public class User { private int id;// 编号 private String name;// 姓名 private int age;// 年龄 private Date birthday;// 生日 private String desc;// 一大段说明 private byte[] photo;// 头象图片 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 int getAge() { return age; } public void setAge(int age) { this.age = age; } 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; } @Override public String toString() { return "User [id=" + id + ", name=" + name + ", age=" + age + ", birthday=" + birthday + ", desc=" + desc + ", photo=" + Arrays.toString(photo) + "]"; } } package cn.itcast.c_hbm_property; import java.io.BufferedInputStream; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.OutputStream; import java.util.Date; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.Transaction; import org.hibernate.cfg.Configuration; import org.junit.Test; /** * 操作类 * * @author 风清杨 * @version V1.0 */ public class App { private static SessionFactory sessionFactory; // 初始化配置文件 static { sessionFactory = new Configuration()// .configure()// 读取默认主配置文件 .addClass(User.class)// .buildSessionFactory();// 根据配置生成session工厂 } /** * 保存 * * @throws Exception */ @Test public void testSave() throws Exception { // 读取图片文件 BufferedInputStream bis = new BufferedInputStream(new FileInputStream( "test.png")); byte[] photo = new byte[bis.available()]; bis.read(photo); bis.close(); // 创建对象 User user = new User(); user.setName("张三"); user.setAge(18); user.setBirthday(new Date()); user.setDesc("2016年4月,布鲁克斯在接受韩国媒体“民众之声”采访,被问及“继引进‘爱国者’导弹、‘萨德’系统和宙斯盾系统后,韩国安保防御还需要什么”时,他表示,为加强对朝鲜发射弹道导弹的预警和追踪,同时迅速、全方位地共享相关信息,必须加强韩美两国在弹道导弹防御方面的“合作运营能力”。布鲁克斯还强调,韩方应该加大反导武器的购买力度,提升自身防御能力的同时,也应为韩美同盟反导体系做贡献,这也符合韩美战时作战指挥权转换的条件。"); user.setPhoto(photo); // 保存? Session session = sessionFactory.openSession();// 打开一个新的Session Transaction tx = session.beginTransaction();// 开始事务 session.save(user); tx.commit();// 提交事务 session.close();// 关闭session 释放资源 } /** * 获取 * * @throws Exception */ @Test public void testGet() throws Exception { Session session = sessionFactory.openSession(); Transaction tx = session.beginTransaction(); User user = (User) session.get(User.class, 1);// 获取? System.out.println(user.getId()); System.out.println(user.getName()); System.out.println(user.getAge()); System.out.println(user.getBirthday()); System.out.println(user.getDesc()); System.out.println(user.getPhoto()); OutputStream os = new FileOutputStream("copy.jpg"); os.write(user.getPhoto()); os.close(); tx.commit(); session.close(); } }