Java笔记之hibernate(一):构建项目

1.Eclipse上新建Java Project项目hibernate_demo

2.src同级目录下新建lib文件夹,导入jar包,并Build Path

3.src目录下新建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-configuration>
    <session-factory>
        <!-- 数据库连接配置 -->
        <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
        <property name="connection.url">jdbc:mysql://localhost:3306/keeper?characterEncoding=utf-8</property>
        <property name="connection.username">root</property>
        <property name="connection.password">123456</property>
        <!-- MySQL方言配置 -->
        <property name="dialect">org.hibernate.dialect.MySQL5Dialect</property>
        <property name="show_sql">true</property>
        <property name="hbm2ddl.auto">update</property>
        <mapping resource="com/hibernate/demo/bean/Employee.hbm.xml"/>
    </session-factory>
</hibernate-configuration>
复制代码

4.新建com.hibernate.demo.bean包,并在其中新建Employee类和Employee.hbm.xml文件

Employee类

复制代码
package com.hibernate.demo.bean;

public class Employee {
    private Integer empId;
    private String empName;
    
    public Employee() {
        
    }
    
    public Employee(Integer empId, String empName) {
        super();
        this.empId = empId;
        this.empName = empName;
    }

    public Integer getEmpId() {
        return empId;
    }
    public void setEmpId(Integer empId) {
        this.empId = empId;
    }
    public String getEmpName() {
        return empName;
    }
    public void setEmpName(String empName) {
        this.empName = empName;
    }

    @Override
    public String toString() {
        return "Employee [empId=" + empId + ", empName=" + empName + "]";
    }
    
}
复制代码

Employee.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 package="com.hibernate.demo.bean">
    <!-- 映射Employee类与t_employee表 -->
    <class name="Employee" table="t_employee">
        <id name="empId" column="emp_id">
            <!-- 声明主键生成策略为自增 -->
            <generator class="native"></generator>
        </id>
        <property name="empName" column="emp_name"></property>
    </class>
</hibernate-mapping>
复制代码

5.新建com.hibernate.demo.test包,并在其中新建Test1类

复制代码
package com.hibernate.demo.test;

import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import org.hibernate.classic.Session;

import com.hibernate.demo.bean.Employee;

public class Test1 {

    public static void main(String[] args) {
        //加载配置文件,构建会话工厂对象
        SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();
        //获取会话对象
        Session session = sessionFactory.openSession();
        //根据类名和主键值获取对象
        Employee employee = (Employee) session.get(Employee.class, 1);
        System.out.println(employee.getEmpName());
    }

}
复制代码

6.运行Test1类

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
Hibernate: select employee0_.emp_id as emp1_0_0_, employee0_.emp_name as emp2_0_0_ from t_employee employee0_ where employee0_.emp_id=?
张三
posted @   安徒生敲代码  阅读(263)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
点击右上角即可分享
微信分享提示