文章目录
- 创建Hibernate项目
- 一、前提准备
- 二、创建项目
- 三、实现一个例子
创建Hibernate项目
一、前提准备
- 准备Hibernate开发必需的jar包。
- 准备数据库的驱动jar包。
- 准备junit.jar包。
这些包你可以去官网下载,也可以下载我已下载好的(本人目前使用的)。
https://pan.baidu.com/s/1DlnXJMLrBFf44dZ_kv8rXA?pwd=ccb1
二、创建项目
这里是创建项目路径和名称,可自己选择。
创建一个叫lib的文件夹,这里面存放需要导入的jar包
1. 导入Hibernate开发必需的jar包。
2. 导入数据库的驱动jar包。
3. 导入junit.jar包。
Hibernate的jar包在lib文件夹下的required文件夹里面,全部复制过来即可。
如何导入?
在需要导入文件夹里面找到jar包,复制这些jar包,然后点击paste即可
点击ok后,项目就创建完成了。
三、实现一个例子
以添加用户信息为例
1、先创建数据库(具体创建过程,不再展出)
我创建的数据库名为javaee,表名为person
2、先创建了一个包,然后再创建一个Person类
package com.ccb;
public class Person {
private Integer id;
private String name;
private String sex;
private int age;
public Person(){}
public Person(String name,String sex,int age){
this.age=age;
this.name=name;
this.sex=sex;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
3、在含有Person类的包下创建Person.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>
<!-- name:类的全路径:-->
<!-- table:表的名称:(可以省略的.使用类的名称作为表名.)-->
<class name="com.ccb.Person" table="PERSON" >
<!-- 主键-->
<id name="id" type="java.lang.Integer">
<column name="id"></column>
<!--主键生成策略-->
<generator class="native"></generator>
</id>
<!--表内表头名和属性
property里面的name是Person类里面的属性名
column里面的name是表头里面的表头名
type是Person属性的类型
-->
<property name="name" type="java.lang.String">
<column name="name"></column>
</property>
<property name="sex" type="java.lang.String">
<column name="sex"></column>
</property>
<property name="age" type="int">
<column name="age"></column>
</property>
</class>
</hibernate-mapping>
4、在src下创建hibernate.cfg.xml(固定名字,不可更改)
把下面代码复制过去
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<!--使用 Hibernate 自带的连接池配置
这里的javaee是我的数据库名字,需要换成你的数据库名字
数据库账号,密码,都需要换成你的
-->
<property name="connection.url">jdbc:mysql:///javaee</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">123456</property>
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<!--hibernate 方言-->
<property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</property>
<!--打印sql语句-->
<property name="hibernate.show_sql">true</property>
<!--格式化sql-->
<property name="hibernate.format_sql">true</property>
<!-- 加载映射文件
就是刚刚创建的Person.hbm.xml,需要全路径
-->
<mapping resource="com/ccb/Person.hbm.xml"/>
</session-factory>
</hibernate-configuration>
5、创建主类
package com.ccb;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;
import java.util.Scanner;
public class main1 {
public static void main(String[] args) {
Scanner cin=new Scanner(System.in);
SessionFactory sessionFactory=null;
Session session=null;
Transaction transaction=null;
//读取配置文件,并创建sessionFactory对象
Configuration configuration=new Configuration().configure();
ServiceRegistry serviceRegistry=new StandardServiceRegistryBuilder().
applySettings(configuration.getProperties()).build();
sessionFactory=configuration.buildSessionFactory(serviceRegistry);
session=sessionFactory.openSession();
System.out.println("请依次输入:姓名 性别 年龄");
String name=cin.next();
String sex=cin.next();
int age=cin.nextInt();
Person person=new Person(name,sex,age);
transaction=session.beginTransaction(); //启动事务
session.save(person); //执行事务,保存对象
transaction.commit(); //提交事务
session.close();
sessionFactory.close();
cin.close();
}
}