session

MyBatis(2)——增删改查

人走茶凉 提交于 2020-02-16 14:08:01
增删改查: 1.在实体类的映射文件中增加insert、update、delete标签与数据库语句,例如 <!-- 会去获取到对应的实体类的getter方法 --> <insert id="insertUser" parameterType="cn.aaa.entity.User" useGeneratedKeys="true"> insert into users(username,password) values(#{username},#{password}) </insert> 2.新建数据库处理包(dao),编写增删改查的方法,例如: //*根据id查询 public User getById(int id) throws IOException { SqlSession session=MyBatisUtil.getSession(); //对应mapper的namespace User user=session.selectOne("cn.aaa.entity.UserMapper.selectUser", id); session.close(); return user; } 注: ⑴Sqlsession的源码中,insert和delete都是调用的update方法,所以dao中这三者方法可以互换调用。⑵如果数据库用的是支持事务的引擎,那么需要调用session

.NET Core MVC 登陆或权限过滤器

偶尔善良 提交于 2020-02-16 13:47:37
1 using AuthorizationCenter.Define; 2 using Microsoft.AspNetCore.Http; 3 using Microsoft.AspNetCore.Mvc; 4 using Microsoft.AspNetCore.Mvc.Controllers; 5 using Microsoft.AspNetCore.Mvc.Filters; 6 using System.Linq; 7 8 namespace AuthorizationCenter.Filters 9 { 10 /// <summary> 11 /// 登陆过滤器 12 /// </summary> 13 public class SignFilter : ActionFilterAttribute 14 { 15 /// <summary> 16 /// 当动作执行中 17 /// </summary> 18 /// <param name="context"></param> 19 public override void OnActionExecuting(ActionExecutingContext context) 20 { 21 // 判断是否检查登陆 22 var noNeedCheck = false; 23 if (context

MyBatis(6)——分页的实现

我们两清 提交于 2020-02-16 13:43:23
分页的实现 a)通过mysql的分页查询语句: 说明:sql的分页语句格式为select * from aaa limit #{startIndex},#{pageSize} //------------映射文件------------// //*设置传入参数类型为Map,parameterType="Map" <!--查询语句,分页查询--> <!-- 因为字段名不一致,此处的resultType换成结果集映射resultMap --> <select id="selectAll" parameterType="Map" resultMap="UserMap"> select * from users limit #{startIndex},#{pageSize} </select> //------------实体逻辑处理类:dao------------// //*新建Map参数并传入 public List<User> getAll(int currentPage,int pageSize) throws IOException { SqlSession session=MyBatisUtil.getSession(); Map<String, Integer> map=new HashMap<String, Integer>(); map.put("startIndex"

SSH框架

雨燕双飞 提交于 2020-02-16 13:36:07
Ssh 为 struts+spring+hibernate的一个集成 框架 ,是目前较流行的一种Web应用程序开源框架。 集成SSH框架的系统从职责上分为四层: 表示层 、 业务逻辑层 、 数据持久层 和域模块层,以帮助开发人员在短期内搭建结构清晰、可复用性好、 维护 方便的 Web应用程序 。其中使用Struts作为系统的整体基础架构,负责MVC的分离,在Struts框架的 模型 部分,控制业务跳转,利用Hibernate框架对 持久层 提供支持,Spring做管理,管理struts和hibernate。具体做法是:用 面向对象 的分析方法根据需求提出一些模型,将这些模型实现为基本的Java对象,然后编写基本的DAO(Data Access Objects)接口,并给出Hibernate的DAO实现,采用Hibernate架构实现的DAO类来实现 Java 类与数据库之间的转换和访问,最后由Spring做 管理 ,管理struts和hibernate。 业务流程 编辑 系统的基本 业务 流程 是: 在 表示层 中,首先通过JSP页面实现 交互界面 ,负责接收请求(Request)和传送响应(Response),然后Struts根据 配置 文件(struts-config.xml)将ActionServlet接收到的Request委派给相应的Action处理。在业务层中

JWT(JSON Web Token)介绍

夙愿已清 提交于 2020-02-16 11:42:01
什么是JSON Web Token JSON Web Token(缩写 JWT)是目前最流行的跨域认证解决方案,本文介绍它的原理和用法。 首先是跨域认证的问题 互联网服务离不开用户认证。一般流程是下面这样。 1、用户向服务器发送用户名和密码。 2、服务器验证通过后,在当前对话(session)里面保存相关数据,比如用户角色、登录时间等等。 3、服务器向用户返回一个 session_id,写入用户的 Cookie。 4、用户随后的每一次请求,都会通过 Cookie,将 session_id 传回服务器。 5、服务器收到 session_id,找到前期保存的数据,由此得知用户的身份。 这种模式的问题在于,扩展性(scaling)不好。单机当然没有问题,如果是服务器集群,或者是跨域的 服务导向架构,就要求 session 数据共享,每台服务器都能够读取 session。 举例来说,A 网站和 B 网站是同一家公司的关联服务。现在要求,用户只要在其中一个网站登录,再访 问另一个网站就会自动登录,请问怎么实现? 一种解决方案是 session 数据持久化,写入数据库或别的持久层。各种服务收到请求后,都向持久层请 求数据。这种方案的优点是架构清晰,缺点是工程量比较大。另外,持久层万一挂了,就会单点失败。 另一种方案是服务器索性不保存 session 数据了,所有数据都保存在客户端

1.7 Flask

时间秒杀一切 提交于 2020-02-16 07:55:15
Django Model ORM Session ModelForm amdin 大而全 浪费资源 Flask Session 小而精,三方组件全 稳定性相对较差 Tornado 异步IO 非阻塞 原生websocket 干净 Sanic HOT from flask import Flask app = Flask( name ) app.run() from flask import Flask app = Flask( name ) @app.route("/") def index(): return "Hello World" app.run() Response三剑客: HttpResponse: return "Hello World" 返回字符串至客户端 from flask import render_template render : return render_template("login.html") 与Django中的 render 使用一致 返回模板由浏览器渲染 from flask import redirect redirect: return redirect("/login") # 302 跳转,重定向URL Flask中小儿子: 1.from flask import jsonify retrun jsonify({name:111}) #

Session variable not passed in live server [closed]

旧巷老猫 提交于 2020-02-16 07:28:08
问题 Closed. This question is off-topic. It is not currently accepting answers. Want to improve this question? Update the question so it's on-topic for Stack Overflow. Closed 3 years ago . I have tried out some code in php for user registration this whole code works fine on local server but when it comes to live server every php code is getting executed but session variables are not displayed but in local server session variables are passed and displayed properly DB_Function.php public function

学习动态性能表 第一篇--v$sysstat

左心房为你撑大大i 提交于 2020-02-16 06:59:54
学习动态性能表 第一篇 --v$sysstat   按照 OracleDocument 中的描述, v$sysstat 存储自数据库实例运行那刻起就开始累计全实例 (instance-wide) 的资源使用情况。 类似于 v$sesstat ,该视图存储下列的统计信息: 1>. 事件发生次数的统计 ( 如: user commits) 2>. 数据产生,存取或者操作的 total 列 ( 如: redo size) 3>. 如果 TIMED_STATISTICS 值为 true, 则统计花费在执行操作上的总时间 ( 如: CPU used by this session) v$sysstat 视图常用列介绍: l STATISTIC#: 标识 l NAME: 统计项名称 l VALUE: 资源使用量 该视图还有一列 class- 统计类别但极少会被使用,各类信息如下: 1 代表事例活动 2 代表 Redo buffer 活动 4 代表锁 8 代表数据缓冲活动 16 代表 OS 活动 32 代表并行活动 64 代表表访问 128 代表调试信息 注意: Statistic# 的值在不同版本中各不相同,使用时要用 Name 做为查询条件而不要以 statistic# 的值做为条件。 使用 v$sysstat 中的数据   该视图中数据常被用于监控系统性能。如 buffer cache

Hibernate的缓存(收集)

妖精的绣舞 提交于 2020-02-16 05:49:12
(1)缓存就是把以前从数据库中查询出来和使用过的对象保存在内存中(一个数据结构中),这个数据结构通常是或类似Hashmap,当以后要使用某个对象 时,先查询缓存中是否有这个对象,如果有则使用缓存中的对象,如果没有则去查询数据库,并将查询出来的对象保存在缓存中,以便下次使用。 2)Hibernate的Session就是一种缓存,我们通常将之称为Hibernate的一级缓存,当想使用session从数据库中查询出一个对象 时,Session也是先从自己内部查看是否存在这个对象,存在则直接返回,不存在才去访问数据库,并将查询的结果保存在自己内部。由于Session代 表一次会话过程,一个Session与一个数据库连接相关连,所以Session最好不要长时间保持打开,通常仅用于一个事务当中,在事务结束时就应关 闭。并且Session是线程不安全的,被多个线程共享时容易出现问题。通常只有那种全局意义上的缓存才是真正的缓存应用,才有较大的缓存价值,因 此,Hibernate的Session这一级缓存的缓存作用并不明显,应用价值不大。Hibernate的二级缓存就是要为Hibernate配置一种 全局缓存,让多个线程和多个事务都可以共享这个缓存。我们希望的是一个人使用过,其他人也可以使用,session没有这种效果。 (3)二级缓存是独立于Hibernate的软件部件,属于第三方的产品

Hibernate的缓存

人盡茶涼 提交于 2020-02-16 05:43:10
参考文章: 关于hibernate的缓存使用 这篇博文已经说的很详细,不过我这里还有一些补充说明的。 —————————————————————————————————————————————— Hibernate持久层缓存的级别: (1)事务级别 该级别缓存中的缓存对象只能被当前事务使用,每个事务都有各自的缓存,缓存中的数据通常以关联对象的形式保存。同时被缓存对象的生命周期依赖于当前事务的生命周期,当前事务结束时,该缓存中缓存对象的生命周期也会结束。事务级别的缓存通常使用内存作为保存缓存对象的存储介质,Hibernate的一级缓存(Session缓存)即该级别的缓存。 (2)应用(进程)级别 该级别缓存中对象可以被当前应用(进程)内的所有事务共享访问,被缓存对象的生命周期与当前应用相同。当应用结束时,缓存对象的生命周期结束。如果当前应用是一个分布式应用,则不能使用该级别的缓存,这种级别的缓存使用内存或硬盘作为缓存对象的存储介质。 (3)分布式级别 如果当前应用部署在多台服务器的分布式(集群)环境下,则当前应用可以使用分布式级别的缓存缓存持久化对象。分布式缓存中缓存的数据会被一台或者多台服务器共享。如果缓存数据发生变化,则更新后的缓存数据会同步到集群中的每台服务器中,进而保证缓存数据的一致性。 Hibernate的二级缓存可以是应用级别或者分布式级别的缓存