Hibernate学习笔记---框架搭建&增删改查

1、Hibernate作用:

帮我们完成数据库的操作,可以以面向对象的方式来完成,不需要书写SQL语句

hibernate是一款orm(orm:object relationg mapping. 对象关系映射)的框架,也就是说我们要完成实体对象和关系数据库中间的映射

2、Hibernate框架的搭建

导包—》导入约束—》创建实体对象(类)—》创建关系视图(表)—》配置映射关系(类名.hbm.xml)—》

书写主配置文件(orm:object relationg mapping. 对象关系映射)—》书写测试类

a.导包

Hibernate学习笔记---框架搭建&增删改查_第1张图片
驱动包
驱动包

**b.导入约束**window—》preference—》xml catalog
Hibernate学习笔记---框架搭建&增删改查_第2张图片
这里写图片描述

c.实体对象 。。。。

d.关系数据表 。。。。

orm文件配置



   
   
<hibernate-mapping package="cn.itheima.domain" >
    
    <class name="Customer" table="cst_customer" >
        
        <id name="cust_id"  >
            
            <generator class="native">generator>
        id>
        
        <property name="cust_name" column="cust_name" >
            
        property>
        <property name="cust_source" column="cust_source" >property>
        <property name="cust_industry" column="cust_industry" >property>
        <property name="cust_level" column="cust_level" >property>
        <property name="cust_linkman" column="cust_linkman" >property>
        <property name="cust_phone" column="cust_phone" >property>
        <property name="cust_mobile" column="cust_mobile" >property>
    class>
hibernate-mapping>

e.主文件配置



<hibernate-configuration>
    <session-factory>

        
         
        <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driverproperty>
         
        <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/d1property>
         
        <property name="hibernate.connection.username">rootproperty>
         
        <property name="hibernate.connection.password">123456property>
        
        <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialectproperty>


        
        
        <property name="hibernate.show_sql">trueproperty>
        
        <property name="hibernate.format_sql">trueproperty>
        
        <property name="hibernate.hbm2ddl.auto">updateproperty>
        
        <mapping resource="cn/itheima/domain/Customer.hbm.xml" />

    session-factory>
hibernate-configuration>

f.书写测试类

//学习Session对象
//session对象功能: 表达hibernate框架与数据库之间的连接(会话).session类似于
//                 JDBC年代的connection对象. 还可以完成对数据库中数据的增删改查操作.
//                session是hibernate操作数据库的核心对象

@Test
    //session的新增
    public void fun2(){
        //1 创建,调用空参构造,访问主配置文件
        Configuration conf = new Configuration().configure();

        //2 根据配置信息,创建 SessionFactory对象
        SessionFactory sf = conf.buildSessionFactory();

        //3 获得session
        Session session = sf.openSession();

        //4 session获得操作事务的Transaction对象
        //获得操作事务的tx对象
        //Transaction tx = session.getTransaction();
        //开启事务并获得操作事务的tx对象(建议使用)
        Transaction tx2 = session.beginTransaction();

        //----------------------------------------------
        Customer c = new Customer();

        c.setCust_name("传智播客");

        session.save(c);
        //----------------------------------------------
        tx2.commit();//提交事务
        session.close();//释放资源
        sf.close();//释放资源
    }

3、增删改查

//创建实体对象
Customer c = new Customer();
//添加数据
c.setCust_name("laiaa");
//保存
session.save(c);

            //方法1-id查询
            Customer customer1 = session.get(Customer.class, 4l);
            System.out.println(customer1);

            //发法2-HQL语句查询
            //1> 书写HQL语句 查的是实体对象
            String sql="from Customer";

            //2> 根据HQL语句创建查询对象
            Query query = session.createQuery(sql);

            //3> 根据查询对象获得查询结果
            List<Customer> list = query.list(); // 返回list结果
            //query.uniqueResult();//接收唯一的查询结果

            System.out.println(list);

            //方法三-?标记符查询
            String sql2="from Customer where cust_name=?";

            Query query1 = session.createQuery(sql2);

            query1.setParameter(0, "laiaa");

            @SuppressWarnings("unchecked")
            List<Customer> c =query1.list();

            System.out.println(c);

//1 获得要修改的对象
Customer c = session.get(Customer.class, 1l);
//2 调用delete删除对象
session.delete(c);

//1 获得要修改的对象
Customer c = session.get(Customer.class, 1l);
//2 修改
c.setCust_name("黑马程序员");
//3 执行update
session.update(c);

你可能感兴趣的:(java,SSH)