hibernate的增删改查和三种状态
package com.lanou.hibernate;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import com.lanou.hibernate.bean.User;
//游离——>临时delete() ->持久update->临时状态(delete)
public class TestMain {
public static void main(String[] args) {
Configuration config;
SessionFactory sf;
Session session;
Transaction tx = null;
try {
config = new Configuration().configure();
sf = config.buildSessionFactory();
session = sf.openSession();
tx = session.beginTransaction();
User yufei = session.get(User.class, 8);
User user = session.get(User.class, 8);
yufei.setUsername("888");
System.out.println(user.getUsername());
/*---------------------------三种状态----------------------------------*/
/*
* User user = new User(); // 临时状态下 // 当一个数据没有id时,处于临时状态
* user.setUsername("malijie");
* user.setPwd("meiyouchijiuzhuangtai");
*
* // session.update(user); // 增和放一块,先根据id查找,要是有就更新
* session.saveOrUpdate(user); // 持久状态下 持久状态下的内容时刻和数据库绑定在一起
*
* System.out.println(user.getId()); user.setPwd("3miaozhong");
* tx.commit(); // 脱管态 /游离状态 和数据库没有紧密联系,不归transcation管理 ,事务提交后
* user.setPwd("aaaaaa");
* /*-----------------------------------增、删、改、查---------------------
* -------------------------------------
*/
// 使用hibernate添加一条数据的 过程
// User user=new User();
// user.setUsername("cuixuefei");
// user.setPwd("123");
//
// User user1=new User();
// user1.setUsername("xuweibing");
// user1.setPwd("455");
// session.save(user);
// int a=1/0;
// session.save(user1);
// 使用hibernate查找一条数据的过程
// User user=session.get(User.class, 1); //load 可以报错 get数据库没有值返回空
// 持久态
// if(user!=null){
// System.out.println(user.getId()+" "+user.getUsername()+"
// "+user.getPwd());
// }
// 使用hibernate删除一条内容
// User user = new User();
// user.setId(3);
// session.delete(user);
// User user = new User();
// user.setId(1);
// user.setUsername("uuu");
// user.setPwd("999");
// session.update(user);
// tx.commit();
} catch (Exception e) {
e.printStackTrace();
tx.rollback();
}
System.exit(0);
// // 装配着模式 configure() 为了加载配置文件
// Configuration cfg = new Configuration().configure();
// // 创建sessionfactory工厂
// SessionFactory sf = cfg.buildSessionFactory();
// // 系统和数据库的会话
// Session session = sf.openSession();
// // 事务:Transaction
// // 一致性
// // 打开一个事务
// Transaction tx = session.beginTransaction();
// // 执行数据库动作
//
// User user=new User();
// user.setUsername("wangyu");
// user.setPwd("123456");
// //保存数据
// session.save(user);
//
//
// //事务提交
// tx.commit();
// //事务回滚 失败
// // tx.rollback();
// System.out.println("数据库链接成功!");
}
}
user.hbm.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<!-- 映射实体类 -->
<class name="com.lanou.hibernate.bean.User" table="tb_user">
<id name="id" >
<!--id的生成规则 -->
<generator class="native"></generator>
</id>
<property name="username" ></property>
<property name="pwd" ></property>
</class>
</hibernate-mapping>