在hibernate中我们使用注解,可以帮助我们简化hbm文件配置。

hibernate.cfg.xml配置

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC"-//Hibernate/Hibernate Configuration DTD 3.0//EN""http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"><hibernate-configuration><session-factory><!-- 配置关于数据库连接的四个项 driverClass url username password --><property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property><property name="hibernate.connection.url">jdbc:mysql:///hibernateTest</property><property name="hibernate.connection.username">root</property><property name="hibernate.connection.password">abc</property><!-- 设置连接提供者 --><property name="hibernate.connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</property><!-- c3p0连接池的配置 --><property name="hibernate.c3p0.max_size">20</property> <!-- 最大连接池 --><property name="hibernate.c3p0.min_size">5</property> <!-- 最小连接数 --><property name="hibernate.c3p0.timeout">120</property> <!-- 超时 --><property name="hibernate.c3p0.idle_test_period">3000</property> <!-- 空闲连接 --><!-- 可以将向数据库发送的sql显示出来 --><property name="hibernate.show_sql">true</property><!-- 格式化sql --><property name="hibernate.format_sql">true</property><!-- hibernate的方言 --><property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property><!-- 自动创建表 --><property name="hibernate.hbm2ddl.auto">update</property><mapping class="cn.nwtxxb.domain.Book" /><mapping class="cn.nwtxxb.domain.Person" /><mapping class="cn.nwtxxb.oneToMany.Customer" /><mapping class="cn.nwtxxb.oneToMany.Order" /><mapping class="cn.nwtxxb.manyToMany.Teacher" /><mapping class="cn.nwtxxb.manyToMany.Student" /><mapping class="cn.nwtxxb.oneToOne.User" /><mapping class="cn.nwtxxb.oneToOne.IDCard" /><mapping class="cn.nwtxxb.oneToOne.Husband" /><mapping class="cn.nwtxxb.oneToOne.Wife" /></session-factory></hibernate-configuration>  

PO类注解配置

@Entity 声明一个实体
@Table来描述类与表对应
1、 首先配置我们的类名与数据库对应。

@Entity // 定义了一个实体
@Table(name = "t_book", catalog = "hibernateTest")
public class Book {}

2、 声明实体类的id:@GenerateValue如果不设置变量默认是native(自动选择)

@Id // 主键
// @GeneratedValue //native
@GeneratedValue(strategy = GenerationType.IDENTITY) // identity
private Integer id; // 主键

3、 普通类型配置:nullable是否为空,如果不设置@Column默认匹配属性类型,数据库字段与属性名称相同。

@Column(name = "c_name", length = 30, nullable = true)
private String name;

4、 日期类型配置:@Temporal有三种类型:
1)TemporalType.DATA 只有年月日
2)TemporalType.TIME 只有小时分钟秒
3)TemporalType.TIMESTAMP 有年月日小时分钟秒

@Temporal(TemporalType.TIMESTAMP) // 是用来定义日期类型
private Date publicationDate; // 出版日期

5、 配置完所有属性需要在hibernate核心配置文件中引入实体类。

<mapping class="cn.nwtxxb.domain.Book" />

如何使用uuid主键生成策略。自己声明一个uuid,然后在通过@GeneratedValue标签引入即可。

@Id
@GenericGenerator(name = "myuuid", strategy = "uuid")
@GeneratedValue(generator = "myuuid")
private String id;

普通属性还可以用@Type声明类型。

@Type(type="string")
private String name;

如果类中的属性不想在表中生成列,可以用@Transient

@Transient
private String msg; // 这个属性不想生成在表中

所有的配置都可以放到属性的get方法上配置。

@Entity
@Table(name = "t_person", catalog = "hibernateTest")
public class Person {@Id@GenericGenerator(name = "myuuid", strategy = "uuid")@GeneratedValue(generator = "myuuid")private String id;@Type(type="string")private String name;@Transientprivate String msg; // 现在这个属性不想生成在表中public String getId() {return id;}public void setId(String id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getMsg() {return msg;}public void setMsg(String msg) {this.msg = msg;}}

Hibernate注解开发-PO类注解配置相关推荐

  1. Spring注解开发-@Scope作用域注解

    @Scope用来描述bean的作用域.

  2. (转) Hibernate注解开发

    http://blog.csdn.net/yerenyuan_pku/article/details/70162268 Hibernate注解开发 在Hibernate中我们一般都会使用注解,这样可以 ...

  3. 【Mybatis 之应用篇】2_配置解析、属性名问题、日志、分页和注解开发

    文章目录 Mabatis 四.配置解析 1.核心配置文件 2.environments(环境配置)☆ 3.properties(属性)☆ 4.typeAliases(类型别名)☆ 5.settings ...

  4. MyBatis-学习笔记12【12.Mybatis注解开发】

    Java后端 学习路线 笔记汇总表[黑马程序员] MyBatis-学习笔记01[01.Mybatis课程介绍及环境搭建][day01] MyBatis-学习笔记02[02.Mybatis入门案例] M ...

  5. 关于Spring注解开发教程,打包全送你

    摘要:spring是我们web开发中必不可少的一个框架,基于传统的xml方式配置bean总觉得太过繁琐,从spring2.5之后注解的出现可以大大简化我们的配置. 本文分享自华为云社区<如何高效 ...

  6. 【Java从0到架构师】Spring - 纯注解开发

    纯注解开发 纯注解开发 - AOP 纯注解开发 - 整合 MyBatis 纯注解开发 - 事务管理 JSR 注解 JSR 注解 - @Resource.@Inject JSR 注解 - @PostCo ...

  7. 【java学习之路】(java框架)007.IoC和DI注解开发

    IoC和DI注解开发 Spring配置数据源 数据源(连接池)的作用 • 数据源(连接池)是提高程序性能如出现的 • 事先实例化数据源,初始化部分连接资源 • 使用连接资源时从数据源中获取 • 使用完 ...

  8. 二、Java框架之Spring注解开发

    文章目录 1. IOC/DI注解开发 1.1 Component注解 @Component @Controller @Service @Repository 1.2 纯注解开发模式 1.3 注解开发b ...

  9. 【Mybatis】Mybatis 注解开发

    文章目录 Mybatis的注解开发 MyBatis用注解实现增删改查 MyBatis的注解实现复杂映射开发 一对一查询 一对多查询 多对多查询 Mybatis的注解开发 这几年来注解开发越来越流行,M ...

最新文章

  1. 如何通过cpuinfo信息查看几个物理cpu,几个核数,几线程
  2. 机器学习(七)——tf.keras搭建神经网络固定模式
  3. 一张图告诉你为什么是服务网关
  4. mocha chai mysql_Github MIT开源银行电子支付系统(ReactJS+Nodejs+Mysql)
  5. django缓存优化(二)
  6. php网站建设和外包
  7. 【leetcode】【77】Combinations
  8. 信息安全审计系统S-Audit
  9. Tom猫喝牛奶(计时器、帧动画)
  10. Vue 2.0 真实点餐项目实战
  11. [React Native] 动画 · Animated
  12. TDengine:无模式写入行协议的四种方式
  13. 消息中间件---选型分析
  14. word里面怎么在框里打勾
  15. java des ecb_DES ECB加解密的Java实现
  16. 杰理之检测linein音频输入大小(能量)的方法【篇】
  17. 产品思维训练 | 以网易云和微信为例,产品迭代的依据是什么?
  18. maven 打包将依赖打进jar包
  19. dsa java_如何为Java生成2048位DSA密钥对?
  20. 【论文解读 EMNLP 2018 | JMEE】Jointly Multiple EE via Attention-based Graph Information Aggregation

热门文章

  1. 如何攻克目标检测?百度全球顶级会议双料冠军团队有话说!
  2. 【面试招聘】聊聊求职过程中的技术面试
  3. 入坑推荐系统,从Google这篇开始
  4. 网易云信助力中国航空工业集团,打造数字化云办公平台
  5. SpringBoot-MyBatis
  6. 正则(身份证,手机号,邮箱,正整数)
  7. 量子计算101:浅谈其需求、前景和现实
  8. 报名 | 想在硅谷近距离接触蚂蚁金服的CTO和一众技术高管?这个机会一定不能错过!...
  9. python继承实现原理封装property
  10. 推荐 2 个用 VS Code 直接浏览 GitHub 代码!只需要 1s !