Hibernate注解开发-PO类注解配置
在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类注解配置相关推荐
- Spring注解开发-@Scope作用域注解
@Scope用来描述bean的作用域.
- (转) Hibernate注解开发
http://blog.csdn.net/yerenyuan_pku/article/details/70162268 Hibernate注解开发 在Hibernate中我们一般都会使用注解,这样可以 ...
- 【Mybatis 之应用篇】2_配置解析、属性名问题、日志、分页和注解开发
文章目录 Mabatis 四.配置解析 1.核心配置文件 2.environments(环境配置)☆ 3.properties(属性)☆ 4.typeAliases(类型别名)☆ 5.settings ...
- MyBatis-学习笔记12【12.Mybatis注解开发】
Java后端 学习路线 笔记汇总表[黑马程序员] MyBatis-学习笔记01[01.Mybatis课程介绍及环境搭建][day01] MyBatis-学习笔记02[02.Mybatis入门案例] M ...
- 关于Spring注解开发教程,打包全送你
摘要:spring是我们web开发中必不可少的一个框架,基于传统的xml方式配置bean总觉得太过繁琐,从spring2.5之后注解的出现可以大大简化我们的配置. 本文分享自华为云社区<如何高效 ...
- 【Java从0到架构师】Spring - 纯注解开发
纯注解开发 纯注解开发 - AOP 纯注解开发 - 整合 MyBatis 纯注解开发 - 事务管理 JSR 注解 JSR 注解 - @Resource.@Inject JSR 注解 - @PostCo ...
- 【java学习之路】(java框架)007.IoC和DI注解开发
IoC和DI注解开发 Spring配置数据源 数据源(连接池)的作用 • 数据源(连接池)是提高程序性能如出现的 • 事先实例化数据源,初始化部分连接资源 • 使用连接资源时从数据源中获取 • 使用完 ...
- 二、Java框架之Spring注解开发
文章目录 1. IOC/DI注解开发 1.1 Component注解 @Component @Controller @Service @Repository 1.2 纯注解开发模式 1.3 注解开发b ...
- 【Mybatis】Mybatis 注解开发
文章目录 Mybatis的注解开发 MyBatis用注解实现增删改查 MyBatis的注解实现复杂映射开发 一对一查询 一对多查询 多对多查询 Mybatis的注解开发 这几年来注解开发越来越流行,M ...
最新文章
- 如何通过cpuinfo信息查看几个物理cpu,几个核数,几线程
- 机器学习(七)——tf.keras搭建神经网络固定模式
- 一张图告诉你为什么是服务网关
- mocha chai mysql_Github MIT开源银行电子支付系统(ReactJS+Nodejs+Mysql)
- django缓存优化(二)
- php网站建设和外包
- 【leetcode】【77】Combinations
- 信息安全审计系统S-Audit
- Tom猫喝牛奶(计时器、帧动画)
- Vue 2.0 真实点餐项目实战
- [React Native] 动画 · Animated
- TDengine:无模式写入行协议的四种方式
- 消息中间件---选型分析
- word里面怎么在框里打勾
- java des ecb_DES ECB加解密的Java实现
- 杰理之检测linein音频输入大小(能量)的方法【篇】
- 产品思维训练 | 以网易云和微信为例,产品迭代的依据是什么?
- maven 打包将依赖打进jar包
- dsa java_如何为Java生成2048位DSA密钥对?
- 【论文解读 EMNLP 2018 | JMEE】Jointly Multiple EE via Attention-based Graph Information Aggregation