使用Eclipse编写第一个Hibernate程序

来源:互联网 发布:为什么30岁不能学java 编辑:程序博客网 时间:2024/05/19 00:09
  • 本次最终目的是使用Hibernate保存一条数据到数据库中
  • 学习地址:http://www.imooc.com/course/programdetail/pid/48

为什么使用Hibernate

编写大量的SQL语句有诸多缺陷:语法不同、实现方式不同、移植和维护麻烦。抛弃sql思想Hibernate就是一种ORM(Object / Relationship Mapping)框架技术。下图是Hibernate在程序中所处位置:
这里写图片描述

编写第一个Hibernate程序

  1. help -> Install New SoftWare ->粘贴【http://download.jboss.org/jbosstools/neon/stable/updates/】->点击add然后等等->选择Jboss Web and Java EE Development目录下的Hibernate Tools
  2. 新建一个Java Project导入Hibernate、Junit、mysql jar包
  3. 创建Hibernate的配置文件,new -> others -> Hibernate下cfg.xml文件
    <session-factory>
    <property name="connection.username">root</property>
    <property name="connection.driver_class">com.mysql.jdbc.Driver</property><property name="connection.url"><![CDATA[jdbc:mysql://127.0.0.1:3306/hibernate?useUnicode=true&characterEncoding=UTF-8]]></property>
    <property name="dialect">org.hibernate.dialect.MySQLDialect</property><property name="show_sql">true</property>
    <property name="format_sql">true</property>
    <property name="hbm2ddl.auto">create</property> <mapping resource="Students.hbm.xml"/>
  4. 创建持久化类,生成get、set方法。
    `
    /**
    遵循javabean原则
    */
    public class Students {

    private int sid; // 学号
    private String sname; // 名字
    private String gender;
    private Date birthday;
    private String address;
    `

  5. 创建对象-关系映射文件,生成Students.hbm.xml文件。生成方法类似配置文件那样
  6. 通过HibernateAPI编写访问数据库的代码
    public class StudentsTest {

    // 导入Hibernate中jar包
    private Session session;
    private SessionFactory sessionFactory;
    private Transaction transaction; `
    @Before
    public void init(){
    // 创建配置对象
    Configuration config = new Configuration().configure();
    // 创建服务注册对象
    ServiceRegistry serviceRegistry = new ServiceRegistryBuilder().applySettings(config.getProperties()).buildServiceRegistry();

    // 创建会话工厂对象sessionFactory = config.buildSessionFactory(serviceRegistry);// 会话对象session = sessionFactory.openSession();// 开启事务transaction = session.beginTransaction();

    }
    @After
    public void destory(){
    // 提交事务
    transaction.commit();
    // 关闭session
    session.close();
    // 关闭工厂会话
    sessionFactory.close();
    }
    @Test
    public void testSaveStudents(){
    Students students = new Students(1, “zhangsan”, “男”, new Date(), “wudangshan”);
    // 保存数据库中
    session.save(students);
    }
    }
    7.Junit启动

    • 注意jar包版本:
      这里写图片描述
阅读全文
0 0