Hibernate框架session的方法
package Test; import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration; import model.stud; public class testmain {
public static void main(String[] args) { //配置信息对象
Configuration config=new Configuration();
//配置全局对象
config=config.configure("hibernate.cfg.xml");
//创建session工厂
SessionFactory sessionfactory=config.buildSessionFactory();
//建立数据库会话
Session session=sessionfactory.openSession();
//获取事务对象
Transaction t=session.beginTransaction();
stud stu=new stud(null, "猪大肠", "123456", "嫖娼");
session.save(stu);
t.commit();
session.close();
}
}
以上是测试的基本配置
Session对象的方法
1.save:保存对象(就相当于sql语句里面的添加语句一样);
persist():保存一个对象,跟save作用一样(*如果手动设置了ID,则save方法会忽略ID,而persist方法会抛出一个异常)
2.get:根据OID获取对象(*根据id查询对象):
stud stud = session.get(stud.class, 1);
System.out.println(stud);
3.load:加载一个对象,跟get方法一样:
1.get会立即查询,而load不会立即查询,要等到调用到它时它才会去查询
2.load加载之后,如果session被管理,则直接抛出异常
3.如果数据库中没得响应的结果,则get会返回一个null,而load会直接抛出异常
stud stud=session.load(stud.class, 1);
System.out.println(stud);
4.clear:清空缓存
session.clear();
5.refresh.重新加载某个对象
6.evict:可以将某个被session管理的持久化对象,从session中移除,使其变为游离对象;
1.瞬时态:
存在于程序中,不存在数据库中,没有oid,不在session中
如下:
1 UserInfo userInfo = new UserInfo(88,"恶霸天","987654",30,"小鱼儿与花无缺","simalfishchild@qq.com");
2 System.out.println(userInfo);
2.游离态:
存在与程序中,存在与数据库中,有oid,不在session中
如下:
1 UserInfo userInfo3 = session.get(UserInfo.class, 4);
2 session.clear();
//修改密码
3 userInfo3.setPassWord("6666666");
3.持久态:
存在于程序中,存在于数据库中,有oid,在session中
如下:
UserInfo userInfo2 = session.get(UserInfo.class, 5);
7.close:关闭
session.close();
8.update:更新对象(游离),该对象会转变为持久化对象
//修改
session.update(userInfo);
9.delete:从数据库中删除一个对象, session的delete方法是通过主键进行删除的,主键不存在则异常,持久状态对象被delete后变成瞬时状态对象
session.delete(1);
10.saveOrUpdate:系统会判断该对象,如果是临时对象,就会执行保存操作,如果是游离对象,则执行更新操作
stud stu1=new stud(null, "王胖子", "123456", "嫖娼");
session.saveOrUpdate(stu1);
11.flush:发送让session对象SQL语句
以上方法本人已测试,如有写错的地方请大家指出
最新文章
- git使用ssh密钥
- Postgre cannot insert multiple commands into a prepared statement
- 转载--JAVA读取文件最佳实践
- codeforces 711D Directed Roads(DFS)
- cocos2dx音乐与音效
- B/S与C/S区别
- HTTPS-SSL/TSL与SNI的关系以及同IP多域名虚拟主机的SSL/TSL认证
- js关闭当前页面/关闭当前窗口
- Windows server 2003常用设置
- ASP.NET mvc 遇见的问题
- 跳跳棋(9018_1563)(BZOJ_2144)
- java-FFmpeg(一) 实现视频的转码和截图功能
- Oracle添加记录的时候报错:违反完整性约束,未找到父项关键字
- codechef Killing Monsters
- GO数组
- scrapy框架持久化存储
- vue 绑定属性 绑定Class 绑定style
- Android Studio INSTALL_FAILED_UID_CHANGED的解决办法
- 【git】——简单用法
- 利用js对象的特性,去掉数组中的重复项