一. 准备工作
1.1jar包准备
Hibernate必须的jar包
hibernate-release-5.0.7.Final中的lib/required
数据库驱动jar包:(MYSQL)
日志jar包
2.2配置文件
Hibernate配置文件连接上数据库相关配置(hibernate.cfg.xml)
<?xml version='1.0' encoding='utf-8'?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory> <!--显示执行的SQL语句--> <property name="show_sql">true</property> <!--连接字符串--> <property name="connection.url">jdbc:mysql://localhost:3306/test</property> <!--连接数据库的用户名--> <property name="connection.username">root</property> <!--数据库用户密码--> <property name="connection.password">root</property> <!--数据库驱动--> <property name="connection.driver_class">com.mysql.jdbc.Driver</property> <!--JDBC连接池(使用内置的连接池)--> <property name="connection.pool_size">1</property> <!--设置Hibernate自动管理上下文的策略--> <property name="current_session_context_class">thread</property> <!--选择使用的方言--> <property name="dialect">org.hibernate.dialect.MySQLDialect</property> <!--在启动时删除并重新创建数据库--> <property name="hbm2ddl.auto">create</property> <mapping resource="com/hb/entity/User.hbm.xml"/> </session-factory> </hibernate-configuration> |
映射配置文件描述与数据库中表的映射关系(XXX.hbm.xml)
<?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping> <!--name实体类的全名 table表名 catelog数据库的名称--> <class name="com.hb.entity.User" table="n_user"> <id name="id"> <generator class="uuid"></generator> </id> <property name="name"></property> <property name="psw"></property> <property name="brithday"></property> </class> </hibernate-mapping> |
log4j.xml文件(略)
二. 保存数据
2.1实体类
package com.hb.entity;
import java.util.Date; import javax.persistence.Entity;
@Entity public class User { private String id; private String name; private String psw; private Date brithday;
public User() { super(); // TODO Auto-generated constructor stub }
public User(String id, String name, String psw, Date brithday) { super(); this.id = id; this.name = name; this.psw = psw; this.brithday = brithday; }
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 getPsw() { return psw; }
public void setPsw(String psw) { this.psw = psw; }
public Date getBrithday() { return brithday; }
public void setBrithday(Date brithday) { this.brithday = brithday; }
} |
2.2创建表
package com.hb.entity;
import org.hibernate.boot.MetadataSources; import org.hibernate.boot.registry.StandardServiceRegistryBuilder; import org.hibernate.boot.spi.MetadataImplementor; import org.hibernate.service.ServiceRegistry; import org.hibernate.tool.hbm2ddl.SchemaExport;
public class ExportDB { public static void main(String[] args) {
ServiceRegistry serviceRegistry=new StandardServiceRegistryBuilder().configure().build(); //读取配置文件 MetadataImplementor metadata=(MetadataImplementor) new MetadataSources(serviceRegistry).buildMetadata(); new SchemaExport(metadata).create(true, true); } } |
2.3插入数据
package com.hb.entity;
import java.util.Date;
import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.cfg.Configuration;
public class Client { public static void main(String[] args) { //读取hibernate.cfg.xml文件 Configuration configuration=new Configuration().configure(); //建立SessionFactory SessionFactory sessionFactory=configuration.buildSessionFactory(); //取得Session Session session=null; try{ session=sessionFactory.openSession(); //开始事物 session.beginTransaction(); User user=new User(); user.setName("张三"); user.setPsw("123"); user.setBrithday(new Date()); //保存User对象 session.save(user); //提交事务 session.getTransaction().commit(); }catch(Exception e){ e.printStackTrace(); session.getTransaction().rollback(); }finally{ if(session!=null){ if(session.isOpen()){ session.close(); } }
}
} }
|