代码:
hibernate.cfg.xml(Hibernate与数据库连接操作的文档)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="show_sql">true</property>
<property name="myeclipse.connection.profile">bookshop</property>
<property name="connection.url">
jdbc:mysql://localhost:3306/bookshop
</property>
<property name="connection.username">root</property>
<property name="connection.password">1234</property>
<property name="connection.driver_class">
com.mysql.jdbc.Driver
</property>
<property name="dialect">
org.hibernate.dialect.MySQLDialect
</property>
<mapping resource="com/hibtest1/entity/Users.hbm.xml" />
</session-factory>
</hibernate-configuration>
Users.java
package com.hibtest1.entity;
import java.io.Serializable;
public class Users implements Serializable {
private Integer id; //编号
private String loginName; //用户名
private String loginPwd; //密码
//默认构造方法
public Users() {
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getLoginName() {
return loginName;
}
public void setLoginName(String loginName) {
this.loginName = loginName;
}
public String getLoginPwd() {
return loginPwd;
}
public void setLoginPwd(String loginPwd) {
this.loginPwd = loginPwd;
}
}
Users.hbm.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="com.hibtest1.entity.Users" table="users" catalog="bookshop">
<id name="id" type="java.lang.Integer">
<column name="Id" />
<generator class="native"></generator>
</id>
<property name="loginName" type="java.lang.String">
<column name="LoginName" length="50" />
</property>
<property name="loginPwd" type="java.lang.String">
<column name="LoginPwd" length="16" />
</property>
</class>
</hibernate-mapping>
TestAdd.java(添加用户)
package com.hibtest1;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import com.hibtest1.entity.Users;
public class TestAdd {
public static void main(String[] args) {
new TestAdd().addUser();
}
private void addUser(){
//建立持久化对象
Users user=new Users();
user.setLoginName("Haige");
user.setLoginPwd("123456");
//1.初始化,读取配置文件hibernate.cfg.xml
Configuration config=new Configuration().configure();
//2.读取并解析映射文件(Users.hbm.xml),创建sessionFactory
SessionFactory sessionFactory=config.buildSessionFactory();
//3.打开session
Session session=sessionFactory.openSession();
Transaction tx=null;
try {
tx=session.beginTransaction(); //4.开始一个事务
session.save(user); //5.持久化操作
tx.commit(); //6.提交事务
} catch (Exception e) {
if(tx!=null){
tx.rollback(); //事务回滚
}
e.printStackTrace();
}finally{
session.close(); //7.关闭session
}
}
}
TestDelete.java(删除用户)
package com.hibtest1;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import com.hibtest1.entity.Users;
public class TestDelete {
public static void main(String[] args) {
new TestDelete().testDelete();
}
private void testDelete(){
//初始化,读取配置文件hibernate.cfg.xml
Configuration config=new Configuration().configure();
//读取并解析映射文件(Users.hbm.xml),创建sessionFactory
SessionFactory sessionFactory=config.buildSessionFactory();
//打开session
Session session=sessionFactory.openSession();
Transaction tx=null;
//加载要删除的数据
Users user=(Users)session.get(Users.class, new Integer(1));
try {
tx=session.beginTransaction(); //开始一个事务
session.delete(user); //执行删除
tx.commit(); //提交事务
} catch (Exception e) {
if(tx!=null){
tx.rollback(); //事务回滚
}
e.printStackTrace();
}finally{
session.close(); //关闭session
}
}
}
截图:
TestLoad(控制台输出用户数据)
package com.hibtest1;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import com.hibtest1.entity.Users;
public class TestLoad {
public static void main(String[] args) {
new TestLoad().testLoad();
}
private void testLoad(){
//1.初始化,读取配置文件hibernate.cfg.xml
Configuration config=new Configuration().configure();
//2.读取并解析映射文件(Users.hbm.xml),创建sessionFactory
SessionFactory sessionFactory=config.buildSessionFactory();
//3.打开session
Session session=sessionFactory.openSession();
//4.加载数据
Users user=(Users)session.get(Users.class, new Integer(1));
//在控制台输出用户名和密码
System.out.println(user.getLoginName()+" "+user.getLoginPwd());
}
}
截图:
TestUpdate.java(修改用户数据)
package com.hibtest1;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import com.hibtest1.entity.Users;
public class TestUpdate {
public static void main(String[] args) {
new TestUpdate().testUpdate();
}
private void testUpdate(){
//初始化,读取配置文件hibernate.cfg.xml
Configuration config=new Configuration().configure();
//读取并解析映射文件(Users.hbm.xml),创建sessionFactory
SessionFactory sessionFactory=config.buildSessionFactory();
//打开session
Session session=sessionFactory.openSession();
Transaction tx=null;
//加载要修改的数据
Users user=(Users)session.get(Users.class, new Integer(2));
//修改数据
user.setLoginName("popopo");
try {
tx=session.beginTransaction(); //开始一个事务
session.update(user); //执行更新
tx.commit(); //提交事务
} catch (Exception e) {
if(tx!=null){
tx.rollback(); //事务回滚
}
e.printStackTrace();
}finally{
session.close(); //关闭session
}
}
}
总结:Hibernate框架基本的数据库操作,其较JDBC更简洁更方便,大大减少了代码量,把对数据库表的操作变成对用户对象的操作。