引入依賴
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.14</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>5.4.1.Final</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.4</version>
<scope>provided</scope>
</dependency>
創(chuàng)建持久化類
@Data
@Entity
@Table(name = "t_news")
public class News {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
private String title;
private String content;
}
-
@Entity
注解生命該類是一個(gè)持久化類 -
@Table
指定該類映射的表峡眶,name
屬性指定表名 -
@Id
指定類的標(biāo)識(shí)屬性感混,即可以唯一標(biāo)識(shí)該對(duì)象的屬性,通常映射到表中的主鍵列 -
@GeneratedValue
指定主鍵的生成策略泥栖,strategy
屬性指定主鍵的生成策略為IDENTITY
配置hibernate.cfg.xml
<!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>
<!-- 配置連接數(shù)據(jù)庫的基本信息 -->
<property name="connection.driver_class">com.mysql.cj.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql://localhost:3306/hibernate?serverTimezone=UTC</property>
<property name="connection.username">root</property>
<property name="connection.password">123456</property>
<!-- hibernate基本信息 -->
<!-- hibernate數(shù)據(jù)庫方言 -->
<property name="hibernate.dialect">org.hibernate.dialect.MySQL8Dialect</property>
<!-- 執(zhí)行操作時(shí)控制臺(tái)是否要打印SQL -->
<property name="show_sql">true</property>
<!-- 是否對(duì)SQL進(jìn)行格式化 -->
<property name="format_sql">true</property>
<!-- 自動(dòng)生成表的策略 -->
<property name="hbm2ddl.auto">update</property>
<!-- 所有的持久化類 -->
<mapping class="io.q.model.News"/>
</session-factory>
</hibernate-configuration>
測(cè)試程序
public class NewsTest {
private static StandardServiceRegistry registry;
private static SessionFactory sessionFactory;
private Session session;
private Transaction transaction;
@BeforeClass
public static void init(){
registry = new StandardServiceRegistryBuilder().configure().build();
sessionFactory = new MetadataSources( registry ).buildMetadata().buildSessionFactory();
}
@Before
public void setUp(){
session = sessionFactory.openSession();
transaction = session.beginTransaction();
}
@After
public void tearDown(){
transaction.commit();
session.close();
}
@AfterClass
public static void destroy(){
sessionFactory.close();
StandardServiceRegistryBuilder.destroy(registry);
}
@Test
public void saveNews(){
News news = new News();
news.setTitle("重拾hibernate");
news.setContent("重拾hibernate快速入門程序");
session.save(news);
}
}
執(zhí)行日志
image.png
執(zhí)行結(jié)果
image.png