您的位置:首页 > 数据库

Hibernate 框架基本的数据库增删改查操作

2017-02-09 14:27 846 查看
 代码:

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更简洁更方便,大大减少了代码量,把对数据库表的操作变成对用户对象的操作。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: