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语句
  

  以上方法本人已测试,如有写错的地方请大家指出

最新文章

  1. git使用ssh密钥
  2. Postgre cannot insert multiple commands into a prepared statement
  3. 转载--JAVA读取文件最佳实践
  4. codeforces 711D Directed Roads(DFS)
  5. cocos2dx音乐与音效
  6. B/S与C/S区别
  7. HTTPS-SSL/TSL与SNI的关系以及同IP多域名虚拟主机的SSL/TSL认证
  8. js关闭当前页面/关闭当前窗口
  9. Windows server 2003常用设置
  10. ASP.NET mvc 遇见的问题
  11. 跳跳棋(9018_1563)(BZOJ_2144)
  12. java-FFmpeg(一) 实现视频的转码和截图功能
  13. Oracle添加记录的时候报错:违反完整性约束,未找到父项关键字
  14. codechef Killing Monsters
  15. GO数组
  16. scrapy框架持久化存储
  17. vue 绑定属性 绑定Class 绑定style
  18. Android Studio INSTALL_FAILED_UID_CHANGED的解决办法
  19. 【git】——简单用法
  20. 利用js对象的特性,去掉数组中的重复项

热门文章

  1. Java学习的第四十天
  2. python获取当前时间、今天零点、235959点、昨天当前时间、明天的当前时间
  3. 【Postman】使用Postman实现接口数据关联
  4. Python list函数
  5. 没有磁盘空间 No space left on device
  6. 13 SOAP
  7. 云计算之路-出海记:命令行下的 AWS
  8. 时间序列数据的定义,读取与指数平滑(Java)
  9. .net core mvc appsettings.json配置文件的使用
  10. C#设计模式-建造者模式(Builder Pattern)