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();
}
}