Hibernate基础:快速入门(4):增加数据

来源:互联网 发布:50岁知天命是什么意思 编辑:程序博客网 时间:2024/05/18 00:01

数据库的操作增删改查,或者CRUD是最常见的操作。这篇文章中介绍增加数据的方法

hibernate.cfg.xml

创建如下所示的hibernate的设定文件

<?xml version="1.0" encoding="utf-8"?><!DOCTYPE hibernate-configuration SYSTEM  "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"><hibernate-configuration>  <session-factory>    <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>    <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>    <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/hbtestdb?useSSL=false</property>    <property name="hibernate.connection.username">hbtestuser01</property>    <property name="hibernate.connection.password">hbtestuser01</property>    <property name="show_sql">true</property>    <property name="current_session_context_class">thread</property>  </session-factory></hibernate-configuration>

Entity Class:User

我们将会创建一个Entity的User类。Entity类就是用来与数据库的Table进行Mapping的Class。

import javax.persistence.Entity;import javax.persistence.Id;import javax.persistence.Table;import javax.persistence.Column;@Entity@Table (name="hbtableuser")public class User {  @Id  @Column(name="userid")  private int userid;  @Column(name="username")  private String username;  @Column(name="country")  private String country;  public  User(){    System.out.println("Default User construction is called...");  }  public User(int userid, String username, String country) {    this.userid = userid;    this.username = username;    this.country = country;  }  public int getUserid() {    return userid;  }  public void setUserid(int userid) {    this.userid = userid;  }  public String getUsername() {    return username;  }  public void setUsername(String username) {    this.username = username;  }  public String getCountry() {    return country;  }  public void setCountry(String country) {    this.country = country;  }}
类型 注解 import 作用 类注解 @Entity javax.persistence.Entity 类注解用 类注解 @Table javax.persistence.Table 类注解用:@Table (name=”Table名”) 属性注解 @Id javax.persistence.Id 主码注解 属性注解 @Column javax.persistence.Column 所有字段都需要

使用xml文件自然也可以,由于注解可能是今后的标准方向,相关的例子都回使用注解方式。

创建Demo演示代码

import org.hibernate.Session;import org.hibernate.SessionFactory;public class HbDemo02 {  public static void main(String[] args){    try{      SessionFactory sessionFactory = new org.hibernate.cfg.Configuration()        .configure("hibernate.cfg.xml")        .addAnnotatedClass(User.class)        .buildSessionFactory();      Session session = sessionFactory.getCurrentSession();      System.out.println("Successfully got connection from session factory.");      User user = new User(1001,"liumiaocn","China");      session.beginTransaction();      session.save(user);      session.getTransaction().commit();    }catch (Exception e){      System.out.println("Exception happened...");      e.printStackTrace();    }  }}

执行结果

十二月 12, 2016 9:14:49 下午 org.hibernate.Version logVersionINFO: HHH000412: Hibernate Core {5.2.5.Final}十二月 12, 2016 9:14:49 下午 org.hibernate.cfg.Environment <clinit>INFO: HHH000206: hibernate.properties not found十二月 12, 2016 9:14:49 下午 org.hibernate.annotations.common.reflection.java.JavaReflectionManager <clinit>INFO: HCANN000001: Hibernate Commons Annotations {5.0.1.Final}十二月 12, 2016 9:14:49 下午 org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl configureWARN: HHH10001002: Using Hibernate built-in connection pool (not for production use!)十二月 12, 2016 9:14:49 下午 org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreatorINFO: HHH10001005: using driver [com.mysql.jdbc.Driver] at URL [jdbc:mysql://localhost:3306/hbtestdb?useSSL=false]十二月 12, 2016 9:14:49 下午 org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreatorINFO: HHH10001001: Connection properties: {user=hbtestuser01, password=****}十二月 12, 2016 9:14:49 下午 org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreatorINFO: HHH10001003: Autocommit mode: false十二月 12, 2016 9:14:49 下午 org.hibernate.engine.jdbc.connections.internal.PooledConnections <init>INFO: HHH000115: Hibernate connection pool size: 20 (min=1)十二月 12, 2016 9:14:50 下午 org.hibernate.dialect.Dialect <init>INFO: HHH000400: Using dialect: org.hibernate.dialect.MySQLDialectSuccessfully got connection from session factory.Hibernate: insert into hbtableuser (country, username, userid) values (?, ?, ?)

Workbench结果确认

这里写图片描述

0 0
原创粉丝点击