1,配置文件
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="connection.url">jdbc:oracle:thin:@10.10.44.161:1521:ORCL</property>
<property name="connection.driver_class">oracle.jdbc.OracleDriver</property>
<property name="connection.username">javazhao</property>
<property name="connection.password">123456</property>
<property name="hbm2ddl.auto">update</property>
<property name="show_sql">true</property>
<property name="format_sql">true</property>
<mapping class="com.oracle.bean.Student"/>
<mapping class="com.oracle.bean.TAccount"/>
<mapping class="com.oracle.bean.Hello"/>
<mapping class="com.oracle.bean.Hello2"/>
<mapping class="com.oracle.bean.Hello3"/>
<mapping class="com.oracle.bean.Hello4"/>
</session-factory>a
</hibernate-configuration>
2,这段代码一定要写,
<resources> <resource> <directory>src/main/java</directory> <includes> <include>*.xml</include> </includes> </resource> </resources>
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.oracle</groupId> <artifactId>mvn_hibernate</artifactId> <version>1.0-SNAPSHOT</version> <name>mvn_hibernate</name> <!-- FIXME change it to the project's website --> <url>http://www.example.com</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.compiler.source>1.7</maven.compiler.source> <maven.compiler.target>1.7</maven.compiler.target> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> </dependency> <!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-core --> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-core</artifactId> <version>5.1.0.Final</version> </dependency> <!-- https://mvnrepository.com/artifact/org.projectlombok/lombok --> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.16.18</version> </dependency> <!--<!– <!– https://mvnrepository.com/artifact/com.oracle/ojdbc6 –> <dependency> <groupId>com.oracle</groupId> <artifactId>ojdbc6</artifactId> <version>11.2.0.3</version> </dependency>--> <!-- <!– https://mvnrepository.com/artifact/com.oracle/ojdbc6 –>--> <dependency> <groupId>com.oracle</groupId> <artifactId>ojdbc6</artifactId> <version>11.2.0.3</version> </dependency> </dependencies> <build> <resources> <resource> <directory>src/main/java</directory> <includes> <include>*.xml</include> </includes> </resource> </resources> <pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) --> <plugins> <plugin> <artifactId>maven-clean-plugin</artifactId> <version>3.0.0</version> </plugin> <!-- see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_jar_packaging --> <plugin> <artifactId>maven-resources-plugin</artifactId> <version>3.0.2</version> </plugin> <plugin> <artifactId>maven-compiler-plugin</artifactId> <version>3.7.0</version> </plugin> <plugin> <artifactId>maven-surefire-plugin</artifactId> <version>2.20.1</version> </plugin> <plugin> <artifactId>maven-jar-plugin</artifactId> <version>3.0.2</version> </plugin> <plugin> <artifactId>maven-install-plugin</artifactId> <version>2.5.2</version> </plugin> <plugin> <artifactId>maven-deploy-plugin</artifactId> <version>2.8.2</version> </plugin> </plugins> </pluginManagement> </build> </project>
1,建一个Student类,使用配置文件生成表
package com.oracle.bean;
import lombok.Data;
import org.hibernate.annotations.UpdateTimestamp;
import javax.persistence.*;
import java.math.BigDecimal;
import java.util.Date;
//每一个实体一定要有主键
//类 叫做 Student 表 T_Student
@Data
@Entity
@Table(name ="T_STUDENT")
public class Student {
@Id
@Column(name="stuid")
@GeneratedValue(strategy=GenerationType.SEQUENCE)
private int sid;
private String sname;
private String sex;
//数据库中的字段和类属性名称不一致的时候 关键字
//columnDefinition 指定数据表的字段的类型
//只有oracle才有varchar2
//mysql 字符串 varchar
@Column(name="leav",length =10,nullable = false,unique = true)
private String leave;
//10000.54
@Column(precision =7,scale =2)
private BigDecimal money; //float double bigdecimal
@Transient//不和数据库产生关系
private String address;
//Data 年月日
//Time 时分秒
//TimeStamp 年月日+时分秒
@Temporal(TemporalType.TIMESTAMP) //因为数据库 date datetime mysql date年月日 datetime年月日时分秒
private Date Born;
@Lob //二进制数据 图片 文字 ...视频 音频
private Byte[] img;
package com.oracle.bean;
import lombok.Data;
import javax.persistence.*;
@Data
@Entity
public class Hello {
//我hibernate 在你的数据库中专门创建一个表 这个表来创建自增长
//t_zizengzhang pk nowval
//
//tstudent 2 1
//hello 1 1
//t_account 3 1
@Id
@GeneratedValue(strategy = GenerationType.TABLE,generator = "table_generator")
@TableGenerator(name="table_generator",table = "t_zizengzhang",pkColumnName ="pk",valueColumnName = "nowval",initialValue = 0,allocationSize = 1)
private int hid;
private String hname;
}
使用uuid的主键生成策略最多
package com.oracle.bean; import lombok.Data; import org.hibernate.annotations.GenericGenerator; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; @Data @Entity public class Hello3uuid { @Id @GeneratedValue(generator = "uuid_gener") @GenericGenerator(name="uuid_gener",strategy ="uuid") public String hid; public String hname; }
测试类
package com.oracle.core; import com.oracle.bean.Student; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.cfg.Configuration; import org.junit.After; import org.junit.Before; import org.junit.Test; public class BuildStudent { private Session session; private SessionFactory sessionFactory; @Before public void begin(){ Configuration cfg=new Configuration(); cfg.configure(); SessionFactory sessionFactory = cfg.buildSessionFactory(); session= sessionFactory.openSession(); session.beginTransaction(); } @Test public void student(){ Student stu=new Student(); stu.setSname("666"); stu.setSex("nv"); session.save(stu); // hello.setHname("糖宝2"); // session.save(hello); } @After public void end(){ session.getTransaction().commit(); session.close(); sessionFactory.close(); } }