SSH之hibernate学习笔记-----第一个Dome

一、导入jar包

从hibernate官网下载配置工具并解压
这里写图片描述
解压打开文件夹目录如下
SSH之hibernate学习笔记-----第一个Dome_第1张图片
hibernate-release-5.2.2.Final\lib\required子目录下存放了Hibernate的核心类库以及必需的第三方类库。
将其拷贝到java project项目下新建的lib文件下(除此之外还学要两个jar包,一个是用于日志打印的jar包,另一个则是用于数据库的连接)
SSH之hibernate学习笔记-----第一个Dome_第2张图片

二、创建Hibernate配置文件(hibernate.cfg.xml)
找到hibernate-release-5.2.2.Final\project\etc路径下的hibernate.cfg.xml文件hibernate.properties文件,将hibernate.cfg.xml文件拷贝到src目录下
SSH之hibernate学习笔记-----第一个Dome_第3张图片
打开hibernate.properties文件此处用的是mySQL数据库,找到mySQL的配置方式。如下图:SSH之hibernate学习笔记-----第一个Dome_第4张图片
hibernate.cfg.xml文件进行配置
SSH之hibernate学习笔记-----第一个Dome_第5张图片

三、创建实体类

public class Employee {
    private  int id;
    private String username;
    private String password;
    private String nickname;
    private double salary;//薪水

    public Employee() {
    }
    public Employee(String username, String password, String nickname,
            double salary) {
        this.username = username;
        this.password = password;
        this.nickname = nickname;
        this.salary = salary;
    }
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getUsername() {
        return username;
    }
    public void setUsername(String username) {
        this.username = username;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
    public String getNickname() {
        return nickname;
    }
    public void setNickname(String nickname) {
        this.nickname = nickname;
    }
    public double getSalary() {
        return salary;
    }
    public void setSalary(double salary) {
        this.salary = salary;
    }
}

四、创建hbm映射文件并将映射添加到hibernate.cfg.xml文件中

在project中搜索hbm.xml复制一个**.hbm.xml文件到实体类包中
SSH之hibernate学习笔记-----第一个Dome_第6张图片
映射文件**.hbm.xml文件配置
SSH之hibernate学习笔记-----第一个Dome_第7张图片

最后记得要在hibernate.hbm.xml文件中mapping下

<mapping resource="com/text/hibernate01/bean/Employee.hbm.xml" />

五、创建SessionFactory
此处创建


    @Test
    public void test() {
        Configuration cfg = new Configuration().configure();
        // StandardServiceRegistry serviceRegistry = new
        // StandardServiceRegistryBuilder().applySettings(cfg.getProperties()).build();
        SessionFactory sessionFactory = cfg.buildSessionFactory();
        Session session = null;
        try {
            session = sessionFactory.openSession();
            // 开启事务
            session.beginTransaction();
            Employee employee = new Employee("黄药师", "123", "东邪", 1200);
            // 保存事务
            session.save(employee);
            // 提交事务
            session.getTransaction().commit();
        } catch (HibernateException e) {
            if (session != null) {
                session.getTransaction().rollback();
            }
            e.printStackTrace();
        } finally {
            session.close();
        }
    }

六、测试
SSH之hibernate学习笔记-----第一个Dome_第8张图片

七、总结
第一个Dome比较难入手,一切都是新的,期间遇到很多问题。
1.session.save 一直存不进去,之前差了好多帖子解决不了。我hibernate的入门其实是看视频一点一点跟着敲出来的,看的视频是2014年录的,有点时效性东西。视频中讲的测试:

StandardServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder().applySettings(cfg.getProperties()).build();
        SessionFactory sessionFactory = cfg.buildSessionFactory(serviceRegistry);

之后测试一直报异常MappingExcption:unkown entity ,都说是没有配置映射,其实将StandardServiceRegistry注释掉就好了,原因我也不知道23333
2.编写测试代码的时候,出现了一次Configure build path的编译错误,用myeclipse自带的JDK,会报错,用自己的1.8也回报错,用1.7不报错但是会报异常,编译版本跟class文件的版本不一致,我当时找了半天,用了网上几乎所有的解决方法,最后是发现jdk位数和myeclipse的位数不匹配造成的。

你可能感兴趣的:(SSH之hibernate学习笔记-----第一个Dome)