分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 软件开发

hibernate入门

发布时间:2023-09-06 02:05责任编辑:胡小海关键词:暂无标签
package com.hello;public class Account { ???????private int id; ???private String name; ???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; ???}}
package com.hello;import java.util.HashSet;import java.util.Set;public class User { ???private int id; ???private String name; ???private String desc1; ???private byte[] photo; ???????private Set<Account> accounts=new HashSet<Account>(); ???????private Set<String> addresses=new HashSet<String>(); ???????????public Set<String> getAddresses() { ???????return addresses; ???} ???public void setAddresses(Set<String> addresses) { ???????this.addresses = addresses; ???} ???public Set<Account> getAccounts() { ???????return accounts; ???} ???public void setAccounts(Set<Account> accounts) { ???????this.accounts = accounts; ???} ???public byte[] getPhoto() { ???????return photo; ???} ???public void setPhoto(byte[] photo) { ???????this.photo = photo; ???} ???public String getDesc1() { ???????return desc1; ???} ???public void setDesc1(String desc) { ???????this.desc1 = desc; ???} ???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; ???}}
<?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.hello"> ???<!-- ????????name属性:哪个类 ???????table属性:对应哪个表,如果不写,默认的表名就是类的简单名称 ???--> ???<class name="Account" table="t_account"> ???????<id name="id"> ???????????<generator class="native"/> ???????</id> ???????<property name="name" ?not-null="true"/> ????</class></hibernate-mapping>
<?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.hello"> ???<!-- name属性:哪个类 table属性:对应哪个表,如果不写,默认的表名就是类的简单名称 --> ???<class name="User" table="t_user"> ???????<id name="id"> ???????????<generator class="native" /> ???????</id> ???????<property name="name" not-null="true" /> ???????<property name="desc1" column="desc1" /> ???????<property name="photo" column="photo" length="102400" /> ???????<set name="accounts" inverse="true"> ???????????<key column="uid"></key> ???????????<one-to-many class="com.hello.Account" /> ???????</set> ???????<!-- sort="natural" --> ???????<set name="addresses" table="user_address" ?order-by="address DESC"> ???????????<key column="uid"></key> ???????????<element type="string" column="address"></element> ???????</set> ???</class></hibernate-mapping>
package com.test;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.InputStream;import java.util.EnumSet;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.Transaction;import org.hibernate.boot.Metadata;import org.hibernate.boot.MetadataSources;import org.hibernate.boot.registry.StandardServiceRegistry;import org.hibernate.boot.registry.StandardServiceRegistryBuilder;import org.hibernate.cfg.Configuration;import org.hibernate.service.ServiceRegistry;import org.hibernate.tool.hbm2ddl.SchemaExport;import org.junit.Test;import com.hello.Account;import com.hello.User;public class HelloTest { ???private static SessionFactory sessionFactory; ???static { ???????sessionFactory = new Configuration() ???????.configure() // 读取配置文件 ???????.buildSessionFactory(); ???} ???// 根据配置生成表结构 ???@Test ???public void test() { ???????//hibernate 3.0版本的 ???????/* ?Configuration cfg = new Configuration().configure(); ???????SchemaExport schemaExport = new SchemaExport(cfg); ???????// 第一个参数script的作用: print the DDL to the console ???????// 第二个参数export的作用: export the script to the database ???????schemaExport.create(true, true);*/ ???????//hibernate 5.0 ???????Configuration conf = new Configuration().configure();//1、读取配置文件 ???????StandardServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder().configure().build(); ???????Metadata metadata = new MetadataSources(serviceRegistry).buildMetadata(); ???} ???@Test ???public void hello(){ ???????byte[] photo = null ; ???????try { ???????????InputStream in=new FileInputStream("C://Users//Administrator//Desktop//1.jpg"); ???????????photo = new byte[in.available()]; ???????????in.read(photo); ???????????in.close(); ???????} catch (Exception e) { ???????????// TODO Auto-generated catch block ???????????e.printStackTrace(); ???????????System.out.println("图片导入流失败!"); ???????} ???????Session session=sessionFactory.openSession(); ???????Transaction tx = session.beginTransaction(); ???????User user=new User(); ???????user.setId(1); ???????user.setName("a"); ???????user.setPhoto(photo); ???????Account account=new Account(); ???????account.setId(1); ???????account.setName("1"); ???user.getAccounts().add(account); ???????// ???user.getAddresses().add("天安门"); ???????// ???user.getAddresses().add("故宫"); ???????session.save(account); ???????session.save(user); ???????????????tx.commit(); ???????????????Session session2=sessionFactory.openSession(); ???????Transaction tx2= session2.beginTransaction(); ???????User user2 = session.get(User.class, 3); ???????System.out.println(user2.getAccounts()); ???????tx2.commit(); ???} ???@Test ???public void testGet(){ ???????Session session=sessionFactory.openSession(); ???????Transaction tx = session.beginTransaction(); ???????User user = session.get(User.class, 1); ???????System.out.println(user.getName()); ???????System.out.println(user.getAddresses()); ???}}

hibernate入门

原文地址:https://www.cnblogs.com/Danial7777777/p/9346669.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved