hibernate基本使用
1.hibernate简述
2.hibernate目录
3.hibernate基本使用
4.过程回顾
01
hibernate简述
hibernate框架应用在web三层架构的DAO层,是对JDBC的一种轻量级的封装,对javaBeans和数据库表进行映射,就不用再自己编写sql语句去获取对象属性对应表字段手动执行到数据库里,hibernate就帮你做了后面的工作,只需要对对象进行操作
02
目录结构
到官网下载解压后就有三个文件夹
1.documentation里面是一些使用文档基本上没啥用
2.lib就包含着使用hiternate要用到的java包,其中required是必须的包
3.project是测试工程
03
基本使用
首先导入lib>required中的java包,除此之外要连接数据库当然得导入驱动包数据库我用的是mysql,我这里是mysql-connector-java-8.0.17.jar
使用hibernate不用去自己手动连接数据库创建驱动对象,得到连接对象什么的,这些语句都封装好了,所以你只需要去传入驱动的包路径、url、用户名、密码这些参数即可。这些通过核心配置文件hibernate.cfg.xml来传入
hiberante.cfg.xml
<!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>
<property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</property>
<property name="hibernate.connection.driver_class">com.mysql.cj.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql:///hibernate?serverTimezone=Asia/Shanghai</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">123456</property>
<property name="hibernate.show_sql">true</property>
<property name="hibernate.format_sql">true</property>
<property name="hibernate.hbm2ddl.auto">update</property>
<mapping resource="com/hao/domain/Student.hbm.xml"/>
</session-factory>
</hibernate-configuration>
dialect:使用什么版本的sql语句,我这里就设置为mysql的
connection.driver_class:驱动的全限定名称
connection.url:mysql6之后时区参数一定要写
connection.username:数据库用户名
connection.password:对应用户名的访问密码
show_sql:是否在控制台打印它生成的sql语句
format_sql:格式化控制台显示的sql语句
最后还有一个mapping标签就是关于映射信息的配置文件的地址(全限定名),加载了核心配置文件之后,连接到数据库。当你对domain类进行操作时,他就去到核心配置文件去找映射配置文件地址。通过映射配置文件就能知道这个domain对应哪个表,当你去操作这个domian时他就自动去操作这个表
Student.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="com.hao.domain.Student" table="student">
<id name="id" column="id">
<generator class="native"/>
</id>
<property name="name" column="name"/>
<property name="age" column="age"/>
</class>
</hibernate-mapping
domain类Student对应表student
domain类属性id对应列字段id
domain类属性name对应列字段name
domain类属性age对应列字段age
<id>标签是写主键的映射配置
<property>标签是其他普通字段的映射配置
给表插入数据
public class HibernateTest { @Test
public void hibernateTest(){
Configuration configuration = new Configuration().configure();
SessionFactory sessionFactory = configuration.buildSessionFactory();
Session session = sessionFactory.openSession();
Student student = new Student();
student.setName("张三");
student.setAge(19);
session.save(student);
session.close();
}
}
04
执行流程回顾