- 浏览: 34428 次
最新评论
文章列表
spring + hibernate 设置更新指定字段
hibernate的update方式默认的是更新所有字段的,这导致一个很大的问题,当想更新部分字段时必须要把整个entity先load一遍,然后set相应的更新字段再保存
这一步load数据势必将数据库的操作增加一倍,而且基本上是多余的,最近看了下hibernate源码,发现hibernate有设置指定更新的方式,具体方式如下
org.hibernate.persister.entity.AbstractEntityPersister中定义了基类的更新方法
public void update(
final Serializab ...
Mysql Innodb中的锁和事务隔离级别
- 博客分类:
- 数据库
Read Uncommitted
这种级别,数据库一般都不会用,而且任何操作都不会加锁
Read Committed
数据的读取都是不加锁的,但是数据的写入、修改和删除是需要加锁的。
Repeatable Read
读
【Mysql技术内幕InnoDB存储引擎】笔记
- 博客分类:
- 数据库
1.体系结构及存储引擎
组成部分
连接池组件
管理服务和工具组件
SQL接口组件
查询分析器组件
haun缓存组件
插件式存储引擎
物理文件
连接mysql
TCP/IP
命名管道/共享内存
Unix域套接字
2.InnoDB存储引擎
ExecutorService 详解
- 博客分类:
- JAVA
ThreadPoolExecutor
主要参数:
corePoolSize 线程池核心大小,当从没有任务到新任务进入时线程从0上涨到coreSize
maximumPoolSize 线程池queue满后新建线程到maxSize为止
keepAliveTime 线程无工作后如果大于coreSize则被回收
BlockingQueue< ...
最近在查一个内存泄露问题的时候查到的,总所周知-XX:MaxDirectMemorySize可以设置java堆外内存的峰值,但是具体是在哪里限制的呢
java.nio.DirectByteBuffer用于生成一块cap大小的堆外内存
java.nio.Bits
// These methods should be called whenever direct memory is allocated or
// freed. They allow the user to control the amount of direct memory
...
NIO中采用了当前比较热的reactor模式,废话不多说,上一个reactor的demo
Selector:
public class Selector
{
private BlockingQueue<Event> queue = new LinkedBlockingQueue<>();
private Object lock = new Object();
public List<Event> select() {
return select(0);
}
List<Event> sel ...
ExecutorService中几个兄弟说明
- 博客分类:
- JAVA
ThreadPoolExecutor
主要参数
int corePoolSize
int maximumPoolSize
long keepAliveTime //ideltime 当队列为空时的等待时间,如果超过该时间任然没有新任务,则退出当前线程
BlockingQueue<Runnable> workQueue
当新增一个任务时
如果当前任务数<corePoolSize 则新增一个thread,
如果当前执行线程数>maximumPoolSize,否则加入到workQueue中
FixedThreadPool
corePoolSize=max ...
“科技在本质上有所偏好,使得它朝往某种特定方向。”
12个词阐明了科技未来的走向,可预见的宏观,微观下的科技对世界的改变:
1,我们身边的事物,无论静态的动态的都在朝着“智能化”的方向发展,而智能提供了人 ...
当linux内核>2.6时使用epoll,否则使用poll
public static SelectorProvider create() {
String osname = AccessController.doPrivileged(
new GetPropertyAction("os.name"));
if ("SunOS".equals(osname)) {
return new sun.nio.ch.DevPollSelectorProvider ...
select,poll,epoll 是linux下的3种多路复用(java中的NIO)方式
他们有什么区别呢,还是直接上代码:
select:
int select (int n, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout);
select方式会监视所有的readFD,writeFD,exceptFD
select的一 个缺点在于单个进程能够监视的文件描述符的数量存在最大限制
poll:
int poll (struct pollfd *fds, unsign ...
面向流,面向缓冲区,这是JAVA中的概念,和操作系统无关具体怎么看呢,废话少说直接上源码第一段是JAVA中的标准IO
java.net.SocketInputStream.read
int read(byte b[], int off, int length, int timeout) throws IOException {
int n;
// EOF already encountered
if (eof) {
return -1;
}
// connection reset
if (impl.isConnectionReset()) {
...
网上看了好多IO,NIO的文字,参差不齐,每篇总是差一两个点没有讲到,所以这里对于我自己理解的做一个总结,也许有不对的地方。
1,基本概念
1.1)同步/异步,阻塞/非阻塞
同步异步主要针对C端:
所谓同步,就是在 ...
Hibernate自动关联更新
最近项目一个一个问题
由hibernateTools生成的对象中已经做好关联关系
对象A:
package net.esj.model;
// Generated 2012-11-14 15:20:18 by Hibernate Tools 3.2.0.beta8
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.Column;
imp ...
HIbernate-tools修改记录
1,增加中文注释,参考BLOG:http://www.blogjava.net/pauliz/archive/2009/11/13/302162.html
2,修改默认ID生成规则
public String getTableIdentifierStrategyName(TableIdentifier identifier) {
//return "assigned";
return "uuid";//默认UUID
}
3,增加ONE-TO-MANY的集合注解的targetEntity属性,也可以 ...
create tablespace FSDATA
datafile 'G:\server\oracle\bsp\fsdata.dbf' size 500M REUSE
LOGGING
ONLINE
PERMANENT
EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1M
//创建
drop tablespace FSDATA including contents and datafiles
//删除
alter database datafile 'D:\oradata\orcl\PERFSTAT.DBF' autoextend on
//字段自动增长