Hibernate4学习(2)基于注解配置
来源:互联网 发布:hemingway软件 编辑:程序博客网 时间:2024/06/01 10:10
1、java实体类注解
@Entity@Table(name="t_teacher")public class Teacher {}
@Entity:将一个类声明为一个实体bean(即一个持久化POJO类)
@Table:声明了该实体bean映射指定的表(table),目录(catalog)和schema名字
2、ID属性
@Id@GeneratedValue(generator="_native")@GenericGenerator(name="_native",strategy="native")public Long getId() {return id;}
@id: 声明了该实体bean的标识属性(对应表中的主键)。在指定主键时,如果不指定主键生成策略,默认为AUTO。
@GeneratedValue:id生成规则,生成类型GenerationType包含:
TABLE
使用一个特定的数据库表格来保存主键
SEQUENCE
根据底层数据库的序列来生成主键,条件是数据库支持序列
IDENTITY
主键由数据库自动生成(主要是自动增长型)
AUTO
主键由程序控制
@ GenericGenerator:自定义主键生成策略。其中
name属性指定生成器名称。
strategy属性指定具体生成器的类名。
说明:native: 对于 oracle 采用 Sequence 方式,对于MySQL 和 SQL Server 采用identity(自增主键生成机制),native就是将主键的生成工作交由数据库完成,hibernate不管(很常用)。
@ Column:指定数据库中的列名。包括:
Name:指定列名
unique:是否唯一
nullable:是否为空
length :字符长度
3、针对注解实体类,在配置文件hibernate.cfg.xml中添加
<mapping class="com.stiny.model.Teacher"/>4、生成的表结构
Hibernate4中已经将configuration的buildSessionFactory方法废弃,新增一个接口ServiceRegistry。Hibernate4的配置入口变成ServiceRegistry对象,Configuration对象将通过ServiceRegistry对象获取配置信息,使用了Builder模式创建一个ServiceRegistry对象,
private static SessionFactory buildSessionFactory(){//实例化配置文件 Configuration configuration = new Configuration().configure();//实例化服务登记ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder().applySettings(configuration.getProperties()).build();//获取Session工厂return configuration.buildSessionFactory(serviceRegistry);}6 编写Junit测试单元类StudentTest
public class StudentTest {//获取sessionFactionprivate SessionFactory sessionFactory = HibernateUtil.getSessionfactory();@Testpublic void testAdd(){Session session = sessionFactory.openSession();//开启事物session.beginTransaction();Student student = new Student();student.setName("测试1");session.save(student);session.getTransaction().commit();session.close();}@Testpublic void testDelete(){Session session = sessionFactory.openSession();session.beginTransaction();Student t = (Student)session.get(Student.class, Long.valueOf(2));System.out.println("student :" + t.getId() + " " + t.getName());session.delete(t);session.getTransaction().commit();session.clear();}
说明:
在junit 4 当中测试类无需继承于 TestCase类,测试方法的名字也无需以test开头,主要以注解的方式来定义,只要在测试方法加上@Test就可以进行测试。
@Test
定义一个测试方法的标志
@Before
在每一个测试方法之前被执行
@After
在每一个测试方法之后被执行
- Hibernate4学习(2)基于注解配置
- spring4+hibernate4 基于注解整合
- Hibernate4实战之Hibernate4注解零配置
- Hibernate4实战之Hibernate4注解零配置
- Hibernate4实战之Hibernate4注解零配置
- Hibernate4实战之Hibernate4注解零配置
- Hibernate4实战之Hibernate4注解零配置
- Hibernate4实战之Hibernate4注解零配置
- Hibernate4实战之Hibernate4注解零配置
- Hibernate4实战之Hibernate4注解零配置
- Hibernate4之注解零配置
- hibernate4注解方式相关配置
- SpringAOP入门学习一:基于注解配置切面( AspectJ)
- Hibernate--Hibernate4实战之Hibernate4注解零配置
- Spring4+Hibernate4配置注解事务控制
- Spring4+Hibernate4 事务管理 配置 注解 AOP
- 使用注解配置ehcache,环境:Spring4、hibernate4
- 基于全注解的SpringMVC+Spring4.2+hibernate4.3框架搭建
- 分页技术COUNT STOPKEY和SORT ORDER BY
- instanceof
- Runtime.exec() 的陷阱
- Callable 和 FutureTask 生产者和消费者
- 【Wikioi】1065-01字符串
- Hibernate4学习(2)基于注解配置
- live555源码分析---- PLAY命令的处理
- java中字符串池,String池,共享池到底是怎么回事?
- javascript及基本语法
- SHELL排序
- lua语言基础
- Java中Runtime.getRuntime().exec()错误:Cannot allocate memory!
- hdu 4939 Stupid Tower Defense (dp)
- About Networking Programming