hibernate入门--实现数据简单插入
hibernate实现数据的简单插入
项目目录结构:
第一步:先建一张数据表Company
[sql] view plain copy
- /*
- Navicat MySQL Data Transfer
- Source Server : localhost_3306
- Source Server Version : 50051
- Source Host : localhost:3306
- Source Database : hibernate
- Target Server Type : MYSQL
- Target Server Version : 50051
- File Encoding : 65001
- Date: 2017-04-20 18:57:04
- */
- SET FOREIGN_KEY_CHECKS=0;
- -- ----------------------------
- -- Table structure for `company`
- -- ----------------------------
- <span style="color:#ff6666;">DROP TABLE IF EXISTS `company`;
- CREATE TABLE `company` (
- `id` int(3) NOT NULL auto_increment,
- `name` varchar(10) NOT NULL,
- `url` varchar(50) NOT NULL,
- `creation_date` date NOT NULL,
- PRIMARY KEY (`id`)
- ) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
- </span>-- ----------------------------
- -- Records of company
- -- ----------------------------
- INSERT INTO `company` VALUES ('2', '华软', 'http://home.sise.cn/', '2017-04-20');
第二步:创建Company.java持久化类
[java] view plain copy
- package com.hbp;
- import java.util.Date;
- //创建Company持久化类
- public class Company {
- private String url;
- private int id;
- private String name;
- private Date createDate;
- public String getUrl() {
- return url;
- }
- public void setUrl(String url) {
- this.url = url;
- }
- public int getId() {
- return id;
- }
- public void setId(int id) {
- this.id = id;
- }
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- public Date getCreateDate() {
- return createDate;
- }
- public void setCreateDate(Date createDate) {
- this.createDate = createDate;
- }
- }
第三步:创建对象-关系映射文件Company.hbm.xml
[html] view plain copy
- <?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 package="com.hbp">
- <class name="Company">
- <id name="id" column="id">
- <generator class="increment"></generator>
- </id>
- <property name="name" column="name"></property>
- <property name="url" column="url"></property>
- <property name="createDate" column="creation_date"></property>
- </class>
- </hibernate-mapping>
第四步:创建主函数InsertCompany.java,插入数据
[java] view plain copy
- package com.hbp;
- import java.util.Date;
- import org.hibernate.Session;
- import org.hibernate.SessionFactory;
- import org.hibernate.Transaction;
- import org.hibernate.cfg.Configuration;
- //持久化数据
- public class InsertCompany {
- public static void main(String[] args) {
- //创建一个Company
- Company company=new Company();
- company.setName("华软");
- company.setUrl("www.sise.com");
- company.setCreateDate(new Date());
- //根据hibernate配置文件的配置信息,创建一个configuration实例
- Configuration configuration=new Configuration().configure();
- //创建SessionFactory实例
- SessionFactory sessionFactory=configuration.buildSessionFactory();
- //获取一个全新的session对象
- Session session=sessionFactory.openSession();
- //创建一个事务
- Transaction transaction=null;
- try {
- //用session开启事务进行数据插入
- transaction=session.beginTransaction();
- session.save(company);
- //提交事务
- transaction.commit();
- } catch (Exception e) {
- //如果数据插入失败这回滚到初始化状态
- if(transaction!=null){
- transaction.rollback();
- e.printStackTrace();
- }
- }finally{
- //记得最后关闭session
- session.close();
- }
- }
- }
第五步:创建Hibernate.cfg.xml配置文件(数据源配置)
[html] view plain copy
- <?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>
- <!-- mysql数据库驱动程序 -->
- <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
- <!-- 数据库用户密码 -->
- <property name="hibernate.connection.password">root</property>
- <!-- 数据库 -->
- <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/hibernate</property>
- <!-- 数据库用户名 -->
- <property name="hibernate.connection.username">root</property>
- <!-- 数据库方言 -->
- <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
- <!-- 在控制台输出数据库查询语句 -->
- <property name="hibernate.show_sql">true</property>
- <!-- 输出格式化的数据库查询语句,方便阅读 -->
- <property name="hibernate.format_sql">true</property>
- <!-- 映射表 -->
- <mapping resource="com/hbp/Company.hbm.xml"/>
- </session-factory>
- </hibernate-configuration>
注意:是<mapping resource="com/hbp/Company.hbm.xml"/>而不是<mapping resource="com.hbp/Company.hbm.xml"/>
第五步:running