Hibernate 注解

来源:互联网 发布:web项目压缩js 编辑:程序博客网 时间:2024/06/06 01:12

一、导入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/HibernateConfiguration 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
原创粉丝点击