1、编写数据库表users对应的实体类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;
}
}
<?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"><!-- 配置一个实体类的映射信息,name=实体类的名字,table=数据库表的名字 -->
<id name="id" type="java.lang.Integer"> <!-- <id></id>=对应数据库的主键 name=对应实体类(users.java)的属性 type=该属性的Java类(users.java)型-->
<column name="Id" /><!-- 指定对应数据库表的主键 -->
<generator class="native"></generator><!-- 指定数据库主键的生成策略 自增字段(native) -->
</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>
3、在项目的src目录下添加hibernate配置文件,默认文件名为hibernate.cfg.xml
<pre name="code" class="html"><?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>
<!-- 该配置文件中需要配置数据库的连接信息和hibernate的参数 -->
<session-factory>
<property name="show_sql">true</property><!-- 程序运行时在控制台输出(true)执行的sql语句 -->
<property name="myeclipse.connection.profile">bookshop</property><!-- 连接的数据库名 -->
<property name="connection.url"><!-- 定义数据库连接URL -->
jdbc:mysql://localhost:3306/bookshop
</property>
<property name="connection.username">root</property><!-- 数据库名 -->
<property name="connection.password">123456</property><!-- 数据库密码 -->
<property name="connection.driver_class"><!-- 定义数据库驱动类 -->
com.mysql.jdbc.Driver
</property>
<property name="dialect"><!-- 用于配置hibernate使用的不同数据库类型 -->
org.hibernate.dialect.MySQLDialect
</property>
<mapping resource="com/hibtest1/entity/Users.hbm.xml" /><!-- 配置实体类和数据表的映射信息的映射文件需要在此声明 -->
</session-factory>
</hibernate-configuration>
4、新建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 {
/**
* @param args
*/
public static void main(String[] args) {
new TestAdd().addUser();
}
private void addUser(){
//建立持久化对象
Users user=new Users();
//可从前台获取值后 在执行set方法
user.setLoginName("zhangsan");
user.setLoginPwd("123456");
//1.初始化,读取配置文件 hibernate.cfg.xml
Configuration config=new Configuration().configure();
//2.读取创建 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
}
}
}
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 TestLoad {
/**
* @param args
*/
public static void main(String[] args) {
new TestLoad().testLoad();
}
private void testLoad() {
// 1.初始化,读取配置文件 hibernate.cfg.xml
Configuration config = new Configuration().configure();
// 2.读取创建 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());
}
}
5、测试删除数据,新建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 {
/**
* @param args
*/
public static void main(String[] args) {
new TestDelete().testDelete();
}
private void testDelete(){
Configuration config=new Configuration().configure();
SessionFactory sessionFactory=config.buildSessionFactory();
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();
}
}
}
6、测试修改数据
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 {
/**
* @param args
*/
public static void main(String[] args) {
new TestUpdate().testUpdate();
}
private void testUpdate(){
Configuration config=new Configuration().configure();
SessionFactory sessionFactory=config.buildSessionFactory();
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();
}
}
}