Hibernate基础框架搭建
hibernate是java与数据库相互连接的对象映射框架,在之前都是使用JDBC来操作数据库的,现在出现了hibernate,使得程序猿更加方便操作数据库中的内容,因为hibernate可以自动生成sql语句,不需要程序员进行输入,接下来让我们在idea中创建一个hibnate项目。
第一步,在hibernate官网下载相应的jar包。
点击后下滑,在这里随机选择一个版本下载即可
下载后解压
如果官网下载速度太慢
里面包含了需要连接数据库的jar包
第二步,介绍下载mysql相关jar包
以上是所有需要hibernate的jar包,接下来我们在idea中新建一个普通项目,然后新建一个源文件目录,将需要下载的jar包添加到目录下,下面是需要添加的jar包。
第三步,添加包到项目中
将这些文件复制到lib目录下,ADD as library
框架搭建示例
基本的包已经导入完成,接下来我们在建立目录,用于存储测试Test项,类(pojo),配置项(config),接下来我们在配置项添加一个类,这里我简单的添加一个用户类,基本元素有,id,我们以id作为hibernate的唯一属性值,相当于数据库主键的存在后面是类的基本属性username,address,然后设置gets和sets方法。
public class User {
// hibernate要求实体类中要有唯一属性
private int uid;
private String username;
private String address;
public int getUid() {
return uid;
}
public void setUid(int uid) {
this.uid = uid;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}
在pojo文件中创建一个以xml后缀的文件,这里可能找不到以xml结尾的文件,我们可以先创建一个FXML文件,然后修改其后缀即可。
文件第一行必须是以下内容:
<?xml version="1.0" encoding="utf-8" ?>
如果是其他内容,请删除后添加,然后在刚刚添加的jar包中找到hibernate-core-x.x.x.final.jar(x代表的是数字,下载版本不同可能数字不同,所有这里我用x代替),在第二个文件夹下找到hibernate-mapping-3.0.dtd,把该文件的10~12行复制到刚刚的文件中,接下来开始添加你需要在数据库中建立的表格的信息。文件中的信息和你创建的类相关。
<hibernate-mapping>
<!--配置实体类对象和关系型数据库表之间的映射关系
name:实体类全路径名
table:与实体类相映射的数据库表名
-->
<class name="com.hbnu.pojo.User" table="tb_user">
<!-- 主键映射关系配置
name:实体类中唯一属性名称
column:数据库表中的主键名称 column属性可以省略,如果column属性省略,
则自动生成的数据库表字段名和实体类中的属性名一致
-->
<id name="uid" column="id">
<!-- 主键生成策略 -->
<generator class="native"></generator>
</id>
<!-- 其他属性映射配置-->
<property name="username" column="name"/>
<property name="address" column="addr"></property>
</class>
</hibernate-mapping>
先创建一个同上找到同一个文件夹在文件夹下面找到hibernate-configuration-3.0.dtd,然后进行添加10~12行在第一行下。再连接数据库中项目
<hibernate-configuration>
<session-factory>
<!-- 1、数据库配置信息 (必需)-->
<property name="hibernate.connection.driver_class" >com.mysql.cj.jdbc.Driver</property>
配置数据库连接,在//localhost:3306/数据库名
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/数据库名?serverTimezone=GMT&useSSL=false&characterEncoding=utf-8</property>
<property name="hibernate.connection.username">root</property>
<!--这里是数据库密码--!>
<property name="hibernate.connection.password">******</property>
<!-- 2、hibernate配置信息 (非必需)-->
<!-- 2.1,查看hibernate底层生成的sql语句-->
<property name="show_sql">true</property>
<!--2.格式化底层的sql语句-->
<property name="format_sql">true</property>
<!--2.3数据库方言-->
<property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</property>
<!--2.4配置hibernate自动创建表格,如果数据库表格存在,则更新-->
<property name="hibernate.hbm2ddl.auto">update</property>
<!-- 3、映射关系配置文件信息 (必需)-->
<mapping resource="com/hbnu/config/user.hbm.xml"/>
</session-factory>
</hibernate-configuration>
接下来我们就开始测试连接数据库,在此之前,我们需要打开本机数据库,然后在其中建立一个数据库,数据库名与代码中一致,如果已经创建,请忽略。
接下来我们在Test文件夹中添加class文件测试创建表。
这里我添加了一个方法连接数据库,创建表之前需要连接数据库,连接数据库有5步:
1.加载并解析hibernate配置文件
2.通过配置文件构建会话工厂
3.通过会话工厂建立会话对象
4.通过会话对象完成对数据库的基础操作
5.关闭会话对象和会话工厂
hibernate的Configuration类是加载的核心,创建一个Configuration对象,引用该对象构建SessionFactory (会话工厂),然后利用会话工厂创建Session对象。大家也可以通过文字来尝试创建。
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import org.junit.Test;
public class HibernateTest {
//这个表明是测试,遇到报错,一路下滑即可
@Test
public void insertData(){
//1.解析hibernate配置文件
Configuration configuration = new Configuration().configure();
//2.通过配置对象构建会话工厂
SessionFactory sessionFactory = configuration.buildSessionFactory();
//3.通过会话工厂创建会话对象
Session session = sessionFactory.openSession();
}
}
接下来我们需要使用session把内容添加表中,这也离不开我们的类中的属性。
User user = new User();
user.setUsername("张三");
user.setAddress("湖北武汉");
session.save(user);//通过操作实体对象操作数据库
已经操作完毕,接下来我们只需要将资源关闭即可,使用**close()**方法即可释放资源。
最后在运行,在idea中会出现一段SQL语句,表明我们基本的框架已经搭建好了,接下来要接触的就是在hibernate中的CRUD(增删改查).