hibernate简单使用示例

开发中我们会使用一些持久层框架,而Hibernate则是相当不错一个。
ORM:对象关系映射(Object Relational Mapping,简称ORM,或O/RM,或O/R mapping)是一种程序技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换。其实就是将关系和对象通过映射文件进行联系。我们在程序中只需要操作对象即可操作对应的数据库表的数据。 
1. 什么是hibernate?

开源,全自动 orm框架。


2. 使用实例
2.1 导入jar包
hibernate-release-5.2.10.Final\lib\required中的jar包和对应数据库的驱动jar包加载导向项目中 

2.2 配置文件
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的配置信息 -->
<hibernate-configuration>
    <!--配置工厂信息,全局信息 -->
    <session-factory>
        <!--1、设置四本一言  -->
        <!--四本一言 四大基本项: 1、驱动类名 2、指明需要连接的url 3、用户名 4、密码 Hibernate支持不同的数据库,但是每种数据库语法可能有区别,可以使用方言,注意版本 -->
        <!--数据库驱动类全称  -->
        <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
        <!--数据库url地址  -->
        <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/hibernate_db?characterEncoding=UTF-8</property>
        <!--用户名  -->
        <property name="hibernate.connection.username">lx</property>
        <!--密码  -->
        <property name="hibernate.connection.password">lx</property>
        <!--方言 -->
        <property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</property>
        <!--2、全局配置信息  -->
        <!--执行DDL的类别:
        create:每次都删除新建
        update:存在就修改,不存在就新建  -->
        <property name="hibernate.hbm2ddl.auto">update</property>
        <!--是否显示SQL语句  -->
        <property name="hibernate.show_sql">true</property>
        <!--是否格式化SQL语句  -->
        <property name="hibernate.format_sql">true</property>
        <!-- 启用getCurrentSession,默认未启用 -->
        <property name="hibernate.current_session_context_class">thread</property>
        <!--3、加载配置文件  -->
        <!--基于xml映射文件: 映射文件加载。路径 -->
         <mapping resource="com/gc/pojo/User.hbm.xml"></mapping>
    </session-factory>
</hibernate-configuration>
2.3 User.hbm.xml
<?xml version="1.0" encoding="UTF-8"?>
<!--文档说明,设置映射文件  -->
<!DOCTYPE hibernate-mapping
        SYSTEM
        "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd" >
<!--映射标签
 package:内部类的所在的包名 -->
<hibernate-mapping package="com.gc.pojo">
    <!--需要设置的映射类:设置该类对应的表  -->
    <!--属性:
    name:类名
    table:表名  -->
    <class name="User" table="tb_user">
    <!--id:主键,name:属性名称,column:字段名称  -->
        <id name="id" column="id">
            <!--generator:主键生成策略
            class:标记主键如何生成
            取值:
            1、native:自动增长,会根据当前的数据库自动切换
            2、identity:mySQL的自增策略
            3、sequence:Oracle的自增标记
            4、uuid:32位字符串
            5、assigned:自定义字符串
            6、foreign:外键
            7、increment:自己维护自增关系
              -->
            <generator class="native"/>
        </id>
        <!--配置属性对应的字段  -->
        <property name="name" length="16" column="username"/>
        <property name="pass" length="32"/>
    </class>
</hibernate-mapping>
2.4 测试代码
@Test
public void test () {
	// 1、加载配置文件
	Configuration configuration = new Configuration().configure();
	// 2、创建Session工厂
	SessionFactory factory = configuration.buildSessionFactory();
	// 3、创建Session对象
	Session session = factory.openSession();
	// 4、操作数据
	System.out.println(session.save(new User("测试", "666666")));
	// 5、关闭
	session.close();
}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Hibernate是一个Java持久化框架,它提供了面向对象的方法来操作关系型数据库。下面是Hibernate使用步骤: 1. 添加Hibernate的依赖包到项目中。 2. 配置Hibernate的配置文件hibernate.cfg.xml,配置数据库连接信息、实体类映射等。 3. 定义实体类,并在实体类中使用Hibernate注解进行映射。 4. 编写DAO层接口和实现类,使用Hibernate提供的API进行数据库操作。 5. 在需要使用Hibernate的地方,注入DAO层接口并调用其中的方法。 下面是一个简单示例代码: 1. 添加Hibernate依赖包,比如在Maven项目中可以在pom.xml中添加以下依赖: ```xml <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-core</artifactId> <version>5.4.27.Final</version> </dependency> ``` 2. 配置Hibernate的配置文件hibernate.cfg.xml,比如: ```xml <hibernate-configuration> <session-factory> <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/mydb</property> <property name="hibernate.connection.username">root</property> <property name="hibernate.connection.password">123456</property> <property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</property> <mapping class="com.example.User"/> </session-factory> </hibernate-configuration> ``` 3. 定义实体类User,并在实体类中使用Hibernate注解进行映射,比如: ```java @Entity @Table(name="user") public class User { @Id @GeneratedValue(strategy=GenerationType.IDENTITY) @Column(name="id") private int id; @Column(name="name") private String name; @Column(name="age") private int age; // getter and setter methods } ``` 4. 编写DAO层接口和实现类,使用Hibernate提供的API进行数据库操作,比如: ```java public interface UserDao { public void save(User user); public void update(User user); public void delete(int id); public User get(int id); public List<User> getAll(); } public class UserDaoImpl implements UserDao { private SessionFactory sessionFactory; public void setSessionFactory(SessionFactory sessionFactory) { this.sessionFactory = sessionFactory; } @Override public void save(User user) { Session session = sessionFactory.getCurrentSession(); session.save(user); } @Override public void update(User user) { Session session = sessionFactory.getCurrentSession(); session.update(user); } @Override public void delete(int id) { Session session = sessionFactory.getCurrentSession(); User user = (User) session.get(User.class, id); session.delete(user); } @Override public User get(int id) { Session session = sessionFactory.getCurrentSession(); User user = (User) session.get(User.class, id); return user; } @Override public List<User> getAll() { Session session = sessionFactory.getCurrentSession(); Query query = session.createQuery("from User"); List<User> list = query.list(); return list; } } ``` 5. 在需要使用Hibernate的地方,注入UserDao接口并调用其中的方法,比如: ```java public class UserServiceImpl implements UserService { private UserDao userDao; public void setUserDao(UserDao userDao) { this.userDao = userDao; } @Override public void save(User user) { userDao.save(user); } @Override public void update(User user) { userDao.update(user); } @Override public void delete(int id) { userDao.delete(id); } @Override public User get(int id) { return userDao.get(id); } @Override public List<User> getAll() { return userDao.getAll(); } } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值