Hibernate 注解

一、导入jar包
1、导入所学要的jar包,在eclipse里面选中项目右击,点击菜单栏中的properties,找到Java Build Path里面的Libraries,点击右侧的Add External JARS…就可导入相应路径的jar包。具体步骤:eclipse->项目->properties->Java Build Path->Libraries->Add External JARS
2、出来导入hibernate相应的jar报,还需要导入sqljdbc的jar包。

二、代码
实现hibernate有两种方式:一种是注解配置方式,另一种是文件配置方式。下面介绍一下注解方式
1、创建建一个实体类,如:EmployeeBean.java

package zzzy;

import java.io.Serializable;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;

import org.hibernate.annotations.GenericGenerator;


@Entity
@Table(name="Employee") //数据库表名
public class EmployeeBean implements Serializable{

    @Id //主键标识
    @Column(name="EmployeeID",nullable=false,unique=true)
    @GenericGenerator(name="generator",strategy="indetity") //定义主键生成器
    @GeneratedValue(strategy=GenerationType.IDENTITY)
    private int employeeID;

    private String name;

    private String dept;

    private int age;

    private double salary;

    public int getEmployeeID() {
        return employeeID;
    }

    public void setEmployeeID(int employeeID) {
        this.employeeID = employeeID;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getDept() {
        return dept;
    }

    public void setDept(String dept) {
        this.dept = dept;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public double getSalary() {
        return salary;
    }

    public void setSalary(double salary) {
        this.salary = salary;
    }

    public EmployeeBean() {
    }

}

2、在src目录下创建名为 hibernate.cfg.xml 的配置文件,改文件的命名是国定的。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate
Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

<hibernate-configuration>
    <session-factory>
        <!-- 数据库链接字符串 -->
        <property name="connection.url">jdbc:sqlserver://localhost:1433;databaseName=UserInfo</property>
        <!-- 数据库的登陆用户名 -->
        <property name="connection.username">sa</property>
        <!-- 数据库的登陆密码 -->
        <property name="connection.password">123456</property>
        <!-- 数据库驱动 -->
        <property name="connection.driver_class">com.microsoft.sqlserver.jdbc.SQLServerDriver</property>
        <!-- 方言:为每一种数据库提供适配器,方便转换 -->
        <property name="dialect">org.hibernate.dialect.SQLServer2008Dialect</property>
        <property name="show_sql">true</property>
        <!-- 注解方式 -->
        <mapping class="zzzy.EmployeeBean" /> 
    </session-factory>
</hibernate-configuration>

3、在实体类同一目录下创建包含Main函数的启动类:EmployeeMain

package zzzy;

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

public class EmployeeMain {

    public static void main(String[] args)  {

        try{
            // 1. Configuration xml与注解方式是分开的
            Configuration objConf = new Configuration().configure();
            // 2. SessionFactory
            SessionFactory objSessionFact = objConf.buildSessionFactory();
            // 3. Session
            Session objSession = objSessionFact.openSession();
            // 4. 事务
            Transaction objTran = objSession.beginTransaction();
            // 5. 实体对象
            EmployeeBean objUsers = new EmployeeBean();

            //根据操作的方式(增加、修改、删除、提取数据)调用不同方法
            //增加数据
            objUsers.setName("王二");
            objUsers.setAge(12);
            objUsers.setDept("你好");
            objUsers.setSalary(1503.12);
            objSession.save(objUsers);

        /*  //输出显示
            objSession.load(objUsers, "001");
            System.out.println(objUsers.getEmployeeID());
            System.out.println(objUsers.getName());

            //删除数据
            objUsers = (EmployeeBean)objSession.get(EmployeeBean.class, "001");
            objSession.delete(objUsers);

            //更新
            objUsers = (EmployeeBean)objSession.get(EmployeeBean.class, "001");
            objUsers.setName("张三");
            objUsers.setAge(18);
            objUsers.setDept("你好");
            objUsers.setSalary(3333.2);
            objSession.update(objUsers);*/

            // 6. 提交
            objTran.commit();
            // 7. 关闭
            objSession.close();
        }
        catch(RuntimeException  ex){
            System.out.print(ex.getMessage());
        }
        catch(Exception ex){
            System.out.print(ex.getMessage());
        }
    }

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值