Hibernate实现简单的增删改查操作


1、创建表
//根据实体类创建表字段

2、创建java project项目

//这个不多说

3、添加对应jar包

//这个也不多说

4、创建数据库表实体类

package com.entity;

/**
 * 数据库实体
 * Created by lvjun on 2018-03-26.
 */
public class UsersEntity {
    int id;//用户id
    String uname;
    String upwd;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getUname() {
        return uname;
    }

    public void setUname(String uname) {
        this.uname = uname;
    }

    public String getUpwd() {
        return upwd;
    }

    public void setUpwd(String upwd) {
        this.upwd = upwd;
    }
}

5、创建UsersEntity.hb.xml配置文件,用于映射实体类对应的数据库表,跟实体类一个包内

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">

<!--
    用于映射UsersEntity实体类,对应数据库中users表
-->
<hibernate-mapping package="com.entity">
    <class name="UsersEntity" table="users">
        <!--属性id,映射表里的字段id-->
        <id name="id" column="id">
            <!--id的自增长方式采用数据库的本地方式-->
            <generator class="native"></generator>
        </id>
        <property name="uname" />
        <property name="upwd" />
    </class>

</hibernate-mapping>

6、创建Hibernate.cfg.xml配置文件,在src目录下

<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
    <session-factory>
        <!-- Database connection settings -->
        <!--配置访问数据库要用到的驱动,url,账号、密码-->
        <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
        <property name="connection.url">jdbc:mysql://localhost:3306/newtime?characterEncoding=UTF-8</property>
        <property name="connection.username">root</property>
        <property name="connection.password">1234</property>

        <!-- SQL dialect -->
        <!--使用MYSQL方言,告诉hibernate数据库类型-->
        <property name="dialect">org.hibernate.dialect.MySQLDialect</property>
        <!--事务管理方式,即每个线程一个事务-->
        <property name="current_session_context_class">thread</property>
        <!--是否在控制台显示执行的sql语句-->
        <property name="show_sql">true</property>
        <!--是否会自动更新数据库的表结构,不需要创建表,Hibernate会自动去创建表结构-->
        <property name="hbm2ddl.auto">update</property>
        <!--去识别UsersEntity实体类-->
        <mapping resource="com/entity/UsersEntity.hbm.xml" />
    </session-factory>
</hibernate-configuration>

7、测试类

1、SelectTestHabernate

package com.test;

import com.entity.UsersEntity;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;

/**
 * 根据ID查询信息
 * Created by lvjun on 2018-03-26.
 */
public class SelectTestHabernate {
    public static void main(String[] args) {
        //获取SessionFactory
        SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();
        //通过SessionFactory 获取 Session
        Session session = sessionFactory.openSession();
        //在Session基础上开启一个事务
        session.beginTransaction();

        //查询方式get
        UsersEntity usersEntity = (UsersEntity) session.get(UsersEntity.class, 4);
        System.out.println("get:id=4的用户名:" + usersEntity.getUname());

        //查询方式load
        UsersEntity usersEntity2 = (UsersEntity) session.load(UsersEntity.class, 29);
        System.out.println("load:id=29的用户名:" + usersEntity2.getUname());

        //提交事物
        session.getTransaction().commit();
        //关闭事物
        session.close();
        sessionFactory.close();
    }

}

2、InsertTestHibernate

package com.test;

import com.entity.UsersEntity;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import org.hibernate.classic.Session;

/**
 * 测试添加参数
 * Created by lvjun on 2018-03-26.
 */
public class InsertTestHibernate {
    public static void main(String[] args) {
        //获取SessionFactory
        SessionFactory  sessionFactory = new Configuration().configure().buildSessionFactory();
        //通过SessionFactory 获取 Session
        Session session =sessionFactory.openSession();
        //在Session基础上开启一个事务
        session.beginTransaction();


        //通过调用Session的save方法把对象保存到数据库,插入一条数据
        UsersEntity usersEntity =new UsersEntity();
        usersEntity.setUname("lvjunjun");
        usersEntity.setUpwd("lvjun123123");
        System.out.println("瞬时状态");
        session.save(usersEntity);
        System.out.println("持久状态");


        //循环插入N条数据
//        for (int i=0 ; i< 10 ; i ++){
//            UsersEntity usersEntity =new UsersEntity();
//            usersEntity.setUname("lvjun"+i);
//            usersEntity.setUpwd("a"+i);
//            session.save(usersEntity);
//        }


        //提交事物
        session.getTransaction().commit();
        //关闭事物
        session.close();
        System.out.println("脱管状态");
        sessionFactory.close();

    }
}

3、UpdateTestHibernate

package com.test;

import com.entity.UsersEntity;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;

/**
 * 根据ID修改一条记录
 * Created by lvjun on 2018-03-26.
 */
public class UpdateTestHibernate {
    public static void main(String[] args) {
        //获取SessionFactory
        SessionFactory sessionFactory =new Configuration().configure().buildSessionFactory();
        //通过SessionFactory获取Session
        Session session=sessionFactory.openSession();
        //Session开启事物
        session.beginTransaction();
        //根据id查询一条记录
        UsersEntity usersEntity = (UsersEntity) session.get(UsersEntity.class, 19);
        System.out.println("id是=4的数据参数:"+usersEntity.getUname());
        //修改密码
        usersEntity.setUpwd("1234567890");
        session.update(usersEntity);
        //提交事物
        session.getTransaction().commit();
        //关闭事物
        session.close();
        sessionFactory.close();
    }
}

4、DeleteTestHibernate

package com.test;

import com.entity.UsersEntity;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;

/**
 * 根据ID删除一条记录
 * Created by lvjun on 2018-03-26.
 */
public class DeleteTestHibernate {
    public static void main(String[] args) {
        //获取SessionFactory
        SessionFactory sessionFactory =new Configuration().configure().buildSessionFactory();
        //通过SessionFactory获取Session
        Session session=sessionFactory.openSession();
        //Session开启事物
        session.beginTransaction();
        //根据id查询一条记录
        UsersEntity usersEntity = (UsersEntity) session.get(UsersEntity.class, 4);
        //删除
        session.delete(usersEntity);
        //提交事物
        session.getTransaction().commit();
        //关闭事物
        session.close();
        sessionFactory.close();

    }
}

  • 5
    点赞
  • 49
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值