try

Hibernate使用笔记整理

非 Y 不嫁゛ 提交于 2019-12-08 05:28:43
A. Hibernate执行环境配置 用到的包 antlr-2.7.6.jar 解释hibernate的查询语言,叫hibernate query Language,叫hql语句的 commons-collections-3.1.jar 是一些集合,一些公共的集合,apache 的 公共包, 主要是支持hibernate缓存的,hibernate有各种缓存,一级缓存,二级缓存,查询缓存 dom4j-1.6.1.jar 解析xml文件的 hibernate3.jar 核心包 javassist-3.11.0.GA.jar 生成一些动态代理的包 jta-1.1.jar java事物管理,事物分布式管理 log4j-1.2.17.jar slf4j-api-1.5.8.jar jpos的日志接口,jpos是自己的产品,一般用的并不多,用的几乎都是log4j,为什么hibernate用它?可能是gemkey被jpos收编了之后,换本家了总得用点自己的东西,3.5以下需要 slf4j-log4j12-1.5.8.jar slf4j-api的实现类,没有实现完的 类路径下的log4j.properties log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.Target=System.out

不依赖驱动更新blob字段

霸气de小男生 提交于 2019-12-07 22:10:00
不依赖驱动更新blob字段,场景如下: tomcat发布到weblogic上,使用weblogic的连接池,就抛错了,如下: java.lang.ClassCastException: weblogic.jdbc.wrapper.Blob_oracle_sql_BLOB 开发代码如下: oracle.sql.BLOB blob = (oracle.sql.BLOB) rs.getBlob("TRANSFERDATA"); BufferedOutputStream bos = new BufferedOutputStream(blob.getBinaryOutputStream()); bos.write(define.getBytes("GBK")); 后来查了一下,原因是通过weblogic连接池取出的连接取出的blob对象是weblogic封装过的OracleThinBlob,而不是oracle.sql.BLOB。然后又看了一下OracleThinBlob的方法与oracle.sql.BLOB类似,所以采用了下面的写法,避免异常: Object obj = rs.getBlob("TRANSFERDATA"); Class clazz = obj.getClass(); Method method = clazz.getMethod("getBinaryOutputStream

SpringBoot整合Redis最全实录

自闭症网瘾萝莉.ら 提交于 2019-12-07 18:08:04
前言 在本篇文章中将SpringBoot整合Redis,使用的是RedisTemplate,分别实现了SpringBoot与redis的单机版、集群版、哨兵模式的整合。 Maven依赖 <!-- 整合redis --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> 项目下载及目录结构 1.[SpringBoot整合Redis实例] (http://download.csdn.net/download/plei_yue/10257285) 这里写图片描述 2.Redis安装和相关配置参考 修改配置文件 创建一个redis.properties配置文件。 #Matser的ip地址 redis.hostName=192.168.177.128 #端口号 redis.port=6382 #如果有密码 redis.password= #客户端超时时间单位是毫秒 默认是2000 redis.timeout=10000 #最大空闲数 redis.maxIdle=300 #连接池的最大数据库连接数。设为0表示无限制,如果是jedis 2.4以后用redis.maxTotal #redis

案例分析:设计模式与代码的结构特性

北慕城南 提交于 2019-12-07 16:18:30
一、案例简介   Java基于多线程和NIO实现聊天室   涉及到的技术点 线程池ThreadPoolExecutor 阻塞队列BlockingQueue,生产者消费者模式 Selector Channel ByteBuffer ProtoStuff 高性能序列化 HttpClient连接池 Spring依赖注入 lombok简化POJO开发 原子变量 内置锁 CompletionService log4j+slf4j日志 实现的功能 登录注销 单聊 群聊 客户端提交任务,下载图片并显示 上线下线公告 在线用户记录 批量下载豆瓣电影的图片,并打为压缩包传输给客户端 客户端使用方式: 登录:默认用户名是user1-user5,密码分别是pwd1-pwd5 例:打开客户端后输入用户名为user1,密码为pwd1 注销:关闭客户端即可 单聊:@username:message 例:@user2:hello 群聊:message 例:hello,everyone 提交任务:task.file:图片的URL / task.crawl_image:豆瓣电影的id[?imageSize=n] 可以加请求参数 例1:task.file: https://img1.doubanio.com/view/movie_poster_cover/lpst/public/p2107289058.webp

Java 8?还记得那年大明湖畔的Java 7吗?

半世苍凉 提交于 2019-12-07 12:00:23
译注:但见新人笑,哪闻旧人哭。在大家都在兴致勃勃的讨论Java 8的时候,那个早被遗忘的Java 7,或许你从来都没有记得它的好。 Java 8的发布也有一个月了,我相信现在大家都在探索JDK 8中的新特性。但是,在你彻底开始钻研Java 8之前,最好先来回顾下Java 7有哪些新特性。如果你还记得的话,Java 6是没有增加任何特性的,只是JVM的一些改动以及性能的提升,不过JDK 7倒是增加了不少有助于提升开发效率的很给力的特性。我现在写这篇文章的目的是什么呢?为什么别人都在讨论Java 8的时候,我却还在聊Java1.7的事?因为我认为并不是所有的Java开发人员都很清楚JDK 7中的改动,还有什么时候比新版本发布的时候更适合介绍上一版本的特性的呢?我还很少看见有开发人员在代码中使用自动资源管理(ARM),尽管IDE的辅助工具都已经支持这个特性了。不过确实看到有人在用string的switch功能以及<>在做类型推导,另外,也很少有人知道fork-join框架,或者在一个catch块里捕获多个异常,或者在数值型字面量中使用下划线。因此我借这个机会来写一篇简短的摘要,回顾一下这些能方便我们日常开发工作的改动。NIO以及新的文件接口,还有很多API层面的改动也同样值得关注。我相信和Java 8的lambda表达式结合起来后,写出来的代码肯定会更加简洁。 类型推导 JDK 1

JDK1.7中新增自动释放资源接口AutoCloseable

对着背影说爱祢 提交于 2019-12-07 11:59:51
新增了try-with-resource 异常声明 在JDK7中只要实现了AutoCloseable或Closeable接口的类或接口,都可以使用try-with-resource来实现异常处理和资源关闭 异常抛出顺序。在Java se 7中的try-with-resource机制中异常的抛出顺序与Java se 7以前的版本有一点不一样。 是先声明的资源后关闭 JDK7以前如果rd.readLine()与rd.close()(在finally块中)都抛出异常则只会抛出finally块中的异常,不会抛出rd.readLine();中的异常。这样经常会导致得到的异常信息不是调用程序想要得到的。 JDK7及以后版本中如果采用try-with-resource机制,如果在try-with-resource声明中抛出异(可能是文件无法打或都文件无法关闭)同时rd.readLine();也势出异常,则只会势出rd.readLine()的异常。 public class Main { //声明资源时要分析好资源关闭顺序,先声明的后关闭 //在try-with-resource中也可以有catch与finally块。 //只是catch与finally块是在处理完try-with-resource后才会执行。 public static void main(String[] args) {

python学习——基础(八)

旧街凉风 提交于 2019-12-07 09:42:52
python 内置了 一套 try...except...finally... 的错误处理机制; try: print 'try' r = 10 / 0 print 'result:', r except ZeroDivisionError, e: print 'except:', e finally: print 'finally' 结果: try except: integer division or modulo by zero finally finally语句块是一定会执行的; 此外,如果没有错误发生,可以在 except 语句块后面加一个 else ,当没有错误发生时,会自动执行 else 语句: try: print 'try' r = 10 / 1 print 'result:', r except ZeroDivisionError, e: print 'except:', e else: print 'no error' finally: print 'finally' 结果: try result: 10 no error finally Python所有的错误都是从BaseException类派生的,常见的错误类型和继承关系看这里: https://docs.python.org/2/library/exceptions.html#exception

JavaScript中Promise 使用、原理以及实现过程

跟風遠走 提交于 2019-12-07 07:43:37
1.什么是 Promise promise 是目前 JS 异步编程的主流解决方案,遵循 Promises/A+ 方案。 2.Promise 原理简析 (1)promise 本身相当于一个状态机,拥有三种状态 pending fulfilled rejected 一个 promise 对象初始化时的状态是 pending,调用了 resolve 后会将 promise 的状态扭转为 fulfilled,调用 reject 后会将 promise 的状态扭转为 rejected,这两种扭转一旦发生便不能再扭转该 promise 到其他状态。 (2)promise 对象原型上有一个 then 方法,then 方法会返回一个新的 promise 对象,并且将回调函数 return 的结果作为该 promise resolve 的结果,then 方法会在一个 promise 状态被扭转为 fulfilled 或 rejected 时被调用。then 方法的参数为两个函数,分别为 promise 对象的状态被扭转为 fulfilled 和 rejected 对应的回调函数 3.Promise 如何使用 构造一个 promise 对象,并将要执行的异步函数传入到 promise 的参数中执行,并且在异步执行结束后调用 resolve( ) 函数,就可以在 promise 的 then

Java I/O 模型的演进

柔情痞子 提交于 2019-12-07 01:31:06
相关概念 同步和异步 阻塞和非阻塞 Unix I/O 模型 阻塞 I/O 非阻塞 I/O I/O 多路复用(异步阻塞 I/O) 信号驱动 I/O(SIGIO) 异步 I/O 几种 I/O 模型的比较 常见 Java I/O 模型 “阻塞I/O”模式 改进为“阻塞I/O+多线程”模式 改进为“阻塞I/O+线程池”模式 改进为“非阻塞I/O”模式 改进为“异步I/O”模式 源码 参考引用 原文同步至 http://waylau.com/java-io-model-evolution/ 什么是同步?什么是异步?阻塞和非阻塞又有什么区别?本文先从 Unix 的 I/O 模型讲起,介绍了5种常见的 I/O 模型。而后再引出 Java 的 I/O 模型的演进过程,并用实例说明如何选择合适的 Java I/O 模型来提高系统的并发量和可用性。 由于,Java 的 I/O 依赖于操作系统的实现,所以先了解 Unix 的 I/O 模型有助于理解 Java 的 I/O。 相关概念 同步和异步 描述的是用户线程与内核的交互方式: 同步 是指用户线程发起 I/O 请求后需要等待或者轮询内核 I/O 操作完成后才能继续执行; 异步 是指用户线程发起 I/O 请求后仍继续执行,当内核 I/O 操作完成后会通知用户线程,或者调用用户线程注册的回调函数。 阻塞和非阻塞 描述的是用户线程调用内核 I/O 操作的方式

Java I/O 模型的演进

a 夏天 提交于 2019-12-07 00:09:36
什么是同步?什么是异步?阻塞和非阻塞又有什么区别?本文先从 Unix 的 I/O 模型讲起,介绍了5种常见的 I/O 模型。而后再引出 Java 的 I/O 模型的演进过程,并用实例说明如何选择合适的 Java I/O 模型来提高系统的并发量和可用性。 由于,Java 的 I/O 依赖于操作系统的实现,所以先了解 Unix 的 I/O 模型有助于理解 Java 的 I/O。 相关概念 同步和异步 描述的是用户线程与内核的交互方式: 同步 是指用户线程发起 I/O 请求后需要等待或者轮询内核 I/O 操作完成后才能继续执行; 异步 是指用户线程发起 I/O 请求后仍继续执行,当内核 I/O 操作完成后会通知用户线程,或者调用用户线程注册的回调函数。 阻塞和非阻塞 描述的是用户线程调用内核 I/O 操作的方式: 阻塞 是指 I/O 操作需要彻底完成后才返回到用户空间; 非阻塞 是指 I/O 操作被调用后立即返回给用户一个状态值,无需等到 I/O 操作彻底完成。 一个 I/O 操作其实分成了两个步骤:发起 I/O 请求和实际的 I/O 操作。 阻塞 I/O 和非阻塞 I/O 的区别在于第一步,发起 I/O 请求是否会被阻塞,如果阻塞直到完成那么就是传统的阻塞 I/O ,如果不阻塞,那么就是非阻塞 I/O 。 同步 I/O 和异步 I/O 的区别就在于第二个步骤是否阻塞,如果实际的 I/O