首页 > 其他分享 >绑定本地的Session

绑定本地的Session

时间:2022-10-31 15:32:36浏览次数:44  
标签:hibernate 绑定 Session 本地 import com public itheima


绑定本地的Session图示解析:

绑定本地的Session_hibernate

 代码的结构:

绑定本地的Session_hibernate_02

代码:

SaveServlet.java




绑定本地的Session_hibernate_03

绑定本地的Session_hibernate_04

1 package com.itheima.servlet;
2
3 import java.io.IOException;
4 import javax.servlet.ServletException;
5 import javax.servlet.http.HttpServlet;
6 import javax.servlet.http.HttpServletRequest;
7 import javax.servlet.http.HttpServletResponse;
8
9 import com.itheima.domain.User;
10 import com.itheima.service.UserService;
11
12 /**
13 * Servlet implementation class SaveServlet
14 */
15 public class SaveServlet extends HttpServlet {
16 private static final long serialVersionUID = 1L;
17
18
19 public SaveServlet() {
20 super();
21 }
22
23
24 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
25 User u1=new User();
26 u1.setName("测试一");
27
28 User u2=new User();
29 u2.setName("测试二");
30
31 new UserService().save(u1, u2);
32 }
33
34
35 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
36 // TODO Auto-generated method stub
37 doGet(request, response);
38 }
39
40 }


View Code


UserService.java




绑定本地的Session_xml_05

绑定本地的Session_java_06

1 package com.itheima.service;
2
3 import org.hibernate.Session;
4 import org.hibernate.Transaction;
5
6 import com.itheima.dao.UserDao;
7 import com.itheima.domain.User;
8 import com.itheima.utils.HibernateUtils;
9
10 public class UserService {
11
12 public void save(User u1,User u2) {
13 UserDao dao=new UserDao();
14 //获取session
15 Session session=HibernateUtils.getCurrentSession();
16 //开启事务
17 Transaction tr=session.beginTransaction();
18 try {
19 dao.save1(u1);
20 dao.save2(u2);
21 //提交事务
22 tr.commit();
23 } catch (Exception e) {
24 e.printStackTrace();
25 //出现问题:回滚事务
26 tr.rollback();
27 }finally {
28
29 }
30
31 }
32 }


View Code


 UserDao.java




绑定本地的Session_hibernate_07

绑定本地的Session_hibernate_08

1 package com.itheima.dao;
2
3 import org.hibernate.Hibernate;
4 import org.hibernate.Session;
5 import org.hibernate.Transaction;
6
7 import com.itheima.domain.User;
8 import com.itheima.utils.HibernateUtils;
9
10 public class UserDao {
11
12 public void save1(User u1) {
13
14 Session session=HibernateUtils.getCurrentSession();
15 session.save(u1);
16 }
17 public void save2(User u2) {
18 Session session=HibernateUtils.getCurrentSession();
19 session.save(u2);
20 }
21 }


View Code


HibernateUtils.java(稍微修改)




绑定本地的Session_xml_09

绑定本地的Session_xml_10

1 package com.itheima.utils;
2
3 import javax.servlet.jsp.jstl.core.Config;
4
5 import org.hibernate.Session;
6 import org.hibernate.SessionFactory;
7 import org.hibernate.cfg.Configuration;
8
9 /*
10 * Hibernate框架的工具
11 * @author chenyanlong
12 */
13 public class HibernateUtils {
14
15 //Curl+shift+x
16 private static final Configuration CONFIG;
17 private static final SessionFactory FACTORY;
18
19 //编写静态代码
20 static {
21 //加载配置文件
22 CONFIG =new Configuration().configure();
23 //构造工厂
24 FACTORY=CONFIG.buildSessionFactory();
25 }
26
27 /*
28 * 从工厂获取Session对象
29 * @return
30 */
31 public static Session getSession() {
32 return FACTORY.openSession();
33
34 }
35 //获取本地Session
36 public static Session getCurrentSession() {
37 return FACTORY.getCurrentSession();
38 }
39 public static void main(String[] args) {
40 //调用获取session的方法
41 getSession();
42 }
43 }


View Code


hibernate.cfg.xml(开启绑定本地的session)




绑定本地的Session_java_11

绑定本地的Session_xml_12

1 <?xml version="1.0" encoding="UTF-8"?>
2 <!DOCTYPE hibernate-configuration PUBLIC
3 "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
4 "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
5
6 <hibernate-configuration>
7 <!-- 记住:先配置sessionFactoryy -->
8
9 <session-factory>
10 <!-- 必须的配置 -->
11 <!-- 配置连接数据库的基本的信息: -->
12 <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
13 <property name="hibernate.connection.url">jdbc:mysql:///hibernate_day02</property>
14 <property name="hibernate.connection.username">root</property>
15 <property name="hibernate.connection.password">123456</property>
16
17 <!-- 数据库的方言: -->
18 <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
19 <!-- 可选配置 -->
20 <!-- 显示SQL语句,在控制台显示 -->
21 <property name="hibernate.show_sql">true</property>
22 <!-- 格式化SQL语句 -->
23 <property name="hibernate.format_sql">true</property>
24 <!-- 生成数据库的表结构
25 update:如果没有表结构,创建表结构。如果存在,不会创建,添加数据
26 -->
27 <property name="hibernate.hbm2ddl.auto">update</property>
28
29 <!-- 设置数据库的隔离级别,就使用默认值就OK
30 <property name="hibernate.connection.isolation">4</property>
31 -->
32
33 <!-- 开启绑定本地的session -->
34 <property name="hibernate.current_session_context_class">thread</property>
35
36 <!-- 映射配置文件,需要引入映射的配置文件 -->
37 <mapping resource="com/itheima/domain/User.hbm.xml"/>
38
39
40 </session-factory>
41 </hibernate-configuration>


View Code


 

标签:hibernate,绑定,Session,本地,import,com,public,itheima
From: https://blog.51cto.com/u_12277263/5809912

相关文章

  • py爬虫数据到本地Excel表格
    效果图需要爬取的网页和内容所含有的知识点requests爬虫请求时间戳表格操作python保存为exeexe获取当前运行程序的路径fromasyncio.windows_eventsimportNU......
  • python pip下载依赖到本地和本地安装
    pythonpip下载依赖到本地和本地安装环境:ubuntu18.0.4python3.6pip3list.txt文件内容(需要下载的安装包):certifi==2022.9.24 cffi==1.15.......
  • 用dmp文件导入本地库
    select*fromdba_users;select*fromdba_users;selecttablespace_name,file_namefromdba_data_files;dropuserGZIDCcascade;droptablespaceIDC_GIKAMD......
  • Windows系统搭建基于k8s开发所需本地集群环境
    安装DockerDesktop去官网下载,新版已经比前几年好用多了安装前要去windows功能里边开启Hyper-V和适用于Linux的Windows子系统若安装完,启动显示乱码,打开管理员shell,执行......
  • 如何修改maven的本地仓库(IDEA版本)
    第一步:(xml配置)换成新的仓库路径    第二步:(IDEA配置) 注切换仓库,以后第一次加载依赖比较慢,这时可以选择奇特的事,然后慢慢等待吧 ......
  • python - pyquery 将腾讯新闻保存为本地xlsx
    infolitedemo#coding:utf-8###pyquery抓取腾讯新闻#In[7]:importrequestsfrompyqueryimportPyQueryaspqhtml=requests.get('http://news.qq.com/').t......
  • idea中本地git如何切换分支
    原文链接:https://blog.csdn.net/weixin_47120348/article/details/118734762首先要查看分支  localbranches是代表本地分支Master分支是主分支,其他的自定义分支,rem......
  • IDEA切换git分支(从本地切换、从远程拉取后切换)
    链接:https://www.jianshu.com/p/8a5d6a93c0a8:https://www.cnblogs.com/isme-zjh/p/15612035.html场景:在多人开发中,需要在主分支的基础上创建一些分支去分配给小组或者......
  • git推送本地项目到运城仓库
    输入初始化仓库:gitinit继续输入(相当于将本地文件和远程仓库建立连接):gitremoteaddorigin远程仓库地址继续输入(将Gitee上的仓库pull到本地文件夹中):gitpullorig......
  • PHP session 阻塞问题
    由于PHP实现session的机制默认是利用把信息储存在文件里的,这就是涉及到读取文件需要保证一定安全性所以需要在读写的时候锁文件,如果不及时解锁,如程序的业务过程较长就......