Hibernate 使用

Hibernate 使用


Hibernate 的使用避免了大量的写sql数据。简化了操作。

student为数据库中的一张表,含有字段id,name,sex,place,对应的类为Student,

Student 类有id,name,sex,place,等私有变量,对应的每个变量都有set及个体方法,因此就将类与数据库中的字段对应起来了。

配置文件如下:

<hibernate-mapping>
    <class name="Student" table="student" catalog="school">
        
        <id name="id" type="java.lang.Integer">
            <column name="id" />
            <generator class="assigned"></generator>
        </id>
        
        <property name="name" type="java.lang.String">
            <column name="name" length="20" />
        </property>
        
        <property name="pwd" type="java.lang.Integer">
            <column name="pwd" />
        </property>
        <property name="sex" type="java.lang.String">
            <column name="sex" length="20" />
        </property>
        <property name="place" type="java.lang.String">
            <column name="place" length="20" />
        </property>
    </class>
</hibernate-mapping>


测试代码如下:

Student  student=new Student();

       student.setName("ctgu");
       student.setPlace("sanxia");      
       student.setSex("naen");
       
      Configuration conf=new Configuration();
      SessionFactory sessionFactory=conf.configure().buildSessionFactory();
      
      Session session=sessionFactory.openSession();
      
      session.beginTransaction();
      session.save(student);
      session.getTransaction().commit();
      session.close();

      sessionFactory.close();

功能:向数据库中添加数据。


集成的方法:通过类对数据库中数据实现增删改查,

增加一个用户

public void addUser(User user)
    {        
       Configuration conf=new Configuration();
       SessionFactory sessionFactory=conf.configure().buildSessionFactory();
      
       Session session=sessionFactory.openSession();

        System.out.println(session);
        Transaction t=session.beginTransaction();
        session.save(user);//session的save方法,添加一个用户
        t.commit();
        session.close();
    }

查询,结果是获得一个User对象
    public User getUserByEmail(String email) {
       Configuration conf=new Configuration();
       SessionFactory sessionFactory=conf.configure().buildSessionFactory();
      
       Session session=sessionFactory.openSession();

        User user=(User)session.createQuery("from User u where u.email=?")
                                    .setString(0,email).uniqueResult();
        session.close();
        return user;
    }
sessioncreateQuery方法,从数据库中查询
    public User getUserById(Integer id)
    {
       Configuration conf=new Configuration();
       SessionFactory sessionFactory=conf.configure().buildSessionFactory();
      
       Session session=sessionFactory.openSession();

        User user=(User)session.createQuery("from User u where u.id=?")
                                    .setInteger(0, id).uniqueResult();
        session.close();
        return user;
    }

    public void deleteUser(Integer id) {
       Configuration conf=new Configuration();
       SessionFactory sessionFactory=conf.configure().buildSessionFactory();
      
        Session session=sessionFactory.openSession();

        Transaction t=session.beginTransaction();
        User user=getUserById(id);
        System.out.println(user.getId()+"\t"+user.getNickname());
        session.delete(user);//session的delete方法实现删除一个用户
        t.commit();
        session.close();
    }
更新
    public void updateUser(User user) {
       Configuration conf=new Configuration();
       SessionFactory sessionFactory=conf.configure().buildSessionFactory();
      
        Session session=sessionFactory.openSession();

        Transaction t=session.beginTransaction();
        session.update(user);//session的update方法,向数据库中添加一个用户
        t.commit();
        session.close();
    }
    
    public List<?> getAllUser() {
       Configuration conf=new Configuration();
       SessionFactory sessionFactory=conf.configure().buildSessionFactory();
      
       Session session=sessionFactory.openSession();

        List list=session.createQuery("from User")
                                    .list();
        session.close();
        return list;
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值