Hibernate快速入门

一:简介

Hibernate是一个基于jdbc的开源的持久化框架,是一个优秀的ORM实现,它很大程度的简化了dao层编码工作。Hibernate对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码。经常性有人将Hibernate与mybatis进行对比,Hibernate是一个完整的ORM框架,使用更加简单,功能更加强大,性能不好控制(中小项目使用的多),而Mybatis也封装了很多的原生的JDBC,是一个半ORM框架,性能可控(SQL需要自己写)。

二:快速入门

1、导入相关依赖

<dependency>
     <groupId>org.hibernate</groupId>
     <artifactId>hibernate-core</artifactId>
     <version>3.6.10.Final</version>
</dependency>

2、编写hibernate.cfg.xml

如果是springboot项目就把它放在resources目录下

<?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 自带的连接池配置-->
        <property name="connection.url">jdbc:mysql://localhost:3306/数据库名称</property>
        <property name="hibernate.connection.username">数据库name</property>
        <property name="hibernate.connection.password">数据库密码</property>
        <!--mysql5:com.mysql.jdbc.Driver         mysql8:com.mysql.cj.jdbc.Driver-->
        <property name="connection.driver_class">com.mysql.cj.jdbc.Driver</property>

        <!--hibernate 方言-->
        <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>

        <!--打印sql语句-->
        <property name="hibernate.show_sql">true</property>

        <!--格式化sql-->
        <property name="hibernate.format_sql">true</property>

        <!--自动生成数据库-->
        <property name="hibernate.hbm2ddl.auto"/>

        <!-- 加载映射文件 -->
        <mapping resource="xml映射文件路径"/>

    </session-factory>
</hibernate-configuration>

3、编写实体类和映射文件

3.1、这里以一个基础的用户信息表为例【id(主键递增,索引),name,school】

3.2、编写实体类(这里偷懒用一下lombok的@Data,可以不用写get,set和构造器)

@Data
public class User implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableId(type = IdType.AUTO)
    private Integer id;

    private String name;

    private String school;


}

3.3、编写映射文件

<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-mapping PUBLIC
        "-//Hibernate/Hibernate Mapping DTD//EN"
        "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
    <class name = "com.example.myproject.domain.po.User" table="user"  lazy="false">
        <id name = "id" type="java.lang.Integer">
            <column name="id"/>
            <generator class="identity"/>
        </id>
        <property name="name" type="java.lang.String">
            <column name="name"/>
        </property>
        <property name="school" type="java.lang.String">
            <column name="school"/>
        </property>
    </class>
</hibernate-mapping>

3.4、修改.pom文件中的build,让他们可以互相扫描到

    <build>
        <resources>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.xml</include>
                </includes>
            </resource>
        </resources>
    </build>

这样就算ok了,加下来就写个测试类进行一下测试

4、编写实体类进行测试

public class test1 {
    public static void main(String[] args) {
        //configuration
        Configuration configuration = new Configuration().configure("hibernate.cfg.xml");

        //获取session
        SessionFactory sessionFactory = configuration.buildSessionFactory();
        Session session = sessionFactory.openSession();

        //操作数据
        User user = new User();
        user.setName("zhangsan");
        user.setSchool("yihzong");

        session.save(user);
        //提交
        session.beginTransaction().commit();
        //关闭
        session.close();
    }
}

搞定,剩下的一些用法就让小伙伴们自己慢慢探索吧

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值