Hibernate + maven学习笔记 - 第002天

Maven

安装

http://maven.apache.org/download.cgi
下载apache-maven-3.3.9-bin.zip
直接解压缩

配置环境变量

用户变量
M2_HOME D:\apache-maven-3.3.9
PATH    D:\apache-maven-3.3.9\bin

cmd界面操控

检查mvn成功 mvn -v
生成普通java项目

mvn archetype:generate -DgroupId=com.kygo -DartifactId=hibdemo -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

阿里

  
    
      alimaven
      aliyun maven
      http://maven.aliyun.com/nexus/content/groups/public/
      central        
    

仓库
http://mvnrepository.com/

Hibernate第002天

hibernate创建实体类
1.类型使用对象
2.必须要保留无参构造
3.不加final - 不能代理 1.实现接口 2.用字节码在内存生成对象实现代理
4.实现可序列化接口

注解

主键映射 @Embeddable @Embedded
可以把一个对象作为另一个对象的属性

主键和自动增长
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)

多对一 级联操作
@ManyToOne(cascade = CascadeType.ALL)
如: 存IdCard要先存User 如果只写存IdCard需要加 casacad 级联存User

一对一 一方必须是用@ManyToOne 用unique=ture来限定

添加外键约束
@JoinColumn(name = "userid")

双向关联必须
@OneToMany(mappedBy = "user")

fetch 抓取策略
fetch=FetchType.LAZY

不在数据库
@Transient

ShemaExport-数据库建表

        // 通过ShemaExport工具类实现自动导出表
        SchemaExport se = new SchemaExport();
        // 创建一个标准服务注册器对象(建造者模式)
        StandardServiceRegistry registry = new StandardServiceRegistryBuilder().configure().build();
        try {
            // 创建元数据对象(包含了hibernate的配置信息)
            Metadata metadata = new MetadataSources(registry).buildMetadata();
            // 通过映射实现在数据库中建表的操作
            se.create(EnumSet.of(TargetType.DATABASE), metadata);
        } finally {
            // 销毁注册器对象
            StandardServiceRegistryBuilder.destroy(registry);
        }

元数据对象也可以创建会话工厂,得到session对象

    metadata.getSessionFactoryBuilder().build().getCurrentSession();

你可能感兴趣的:(Hibernate + maven学习笔记 - 第002天)