1、首先导入jar包:
(1)Hibernate的jar包文件夹中lib下的required下的所有jar包
(2)lib下的jpa下面的jar包
(3)log4j和slf4j的jar包
(4)mysql的驱动jar包:
2、创建一个实体类(就是JavaBean),注意属性要和你想创建的数据库表中的字段一一对应,且要有一个属性是值不能为重复的(如id)!
例如(User.java):
package cn.melo.entity;
public class User {
private int id;
private String name;
private int age;
private String gender;
public User() {
super();
}
public User(int id, String name, int age, String gender) {
super();
this.id = id;
this.name = name;
this.age = age;
this.gender = gender;
}
public User(String name, int age, String gender) {
super();
this.name = name;
this.age = age;
this.gender = gender;
}
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 int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
}
3、创建用于配制映射关系的xml:
一般把它放在实体类所在的包下,命名格式一般为:实体类名.hbm.xml;
要引入dtd约束,可以到hibernate-mapping.dtd中去找到<!DOCTYPE,然后复制粘贴即可!
如:User.hbm.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="cn.melo.entity.User" table="t_user">
<!-- 属性和表字段都是有唯一值的! -->
<id name="id" column="id">
<!-- native表示该字段在数据库表中是自增长,且自动增长 -->
<generator class="native"></generator>
</id>
<!-- 配置其他属性和表字段的对应关系 -->
<property name="name" column="name"></property>
<property name="age" column="age"></property>
<property name="gender" column="gender"></property>
</class>
</hibernate-mapping>
4、配置hibernate核心配置文件:
位置必须放在src下面,命名必须是hibernate.cfg.xml
引入dtd约束,到hibernate-configuration.dtd文件中去找即可;
如,hibernate.cfg.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!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>
<!-- 1、配置数据库信息 -->
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<!--数据库url,自己的数据库名不要写错 -->
<property name="hibernate.connection.url">jdbc:mysql:///hibernateDemo</property>
<!--数据库的用户名 -->
<property name="hibernate.connection.username">xxx</property>
<!--数据库的登录密码 -->
<property name="hibernate.connection.password">xxx</property>
<!-- 2、配置Hibernate信息 -->
<!-- 输出SQL语句 -->
<property name="hibernate.show_sql">true</property>
<!-- 格式化SQL语句 -->
<property name="hibernate.format_sql">true</property>
<!-- 如果有表就更新,没有表就创建 -->
<property name="hibernate.hbm2ddl.auto">update</property>
<!-- 配置数据库方言 -->
<!-- <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property> -->
<property name="dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property>
<!-- 3、引入映射配置文件 -->
<mapping resource="cn/melo/entity/User.hbm.xml"/>
</session-factory>
</hibernate-configuration>
5、测试:
代码Demo1:
package cn.melo.hibernate;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import cn.melo.entity.User;
public class Demo1 {
//Hibernate实现添加操作
public static void main(String[] args) {
/*
* 1、加载配置文件
*/
Configuration cfg = new Configuration();
cfg.configure();
/*
* 2、创建SessionFactory对象
*/
SessionFactory sessionFactory = cfg.buildSessionFactory();
/*
* 3、创建Session对象
*/
Session session = sessionFactory.openSession();
/*
* 4、开启事务
*/
Transaction tx = session.beginTransaction();
/*
* 5、操作数据库的逻辑
*/
User user = new User("安东尼", 18, "男");
//添加
session.save(user);
/*
* 6、提交事务
*/
tx.commit();
/*
* 7、释放资源
*/
session.close();
sessionFactory.close();
}
}
目录结构(我创建的是java项目,web项目也一样的套路了):
测试成功就OK了!前提是数据库要自己创建,表不用自己创建,打开数据库连接!!