Dom4j知识集锦
如何禁止加载XSD和DTD
1 2 |
SAXReader reader = new SAXReader( true ); reader.setFeature( Constants.XERCES_FEATURE_PREFIX + Constants.LOAD_EXTERNAL_DTD_FEATURE, false ); |
DTD验证,无法联网时报错
通过指定本地的DTD文档来解决:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
SAXReader reader = new SAXReader( true ); reader.setEntityResolver( new EntityResolver() { public InputSource resolveEntity( String publicId, String systemId ) { if ( publicId.equals( "-//Hibernate/Hibernate Mapping DTD 3.0//EN" ) ) { InputStream in = getClass().getResourceAsStream( "/hibernate-mapping-3.0.dtd" ); return new InputSource( in ); } return null; } } ); |
使用JAXP来进行XSD验证
Dom4j如何格式化XML输出
如何使用XPath解析带名字空间的XML
Dom4j访问者模式中,删除节点导致NullPointerException
报错:java.lang.NullPointerException at org.dom4j.tree.AbstractElement.accept(AbstractElement.java:208)
解决:在访问者中记录需要删除的节点,访问结束后一… 阅读全文
14 years ago
0
Linux文本编辑器
启动
1 2 |
# 以窗口模式启动 emacs -nw |
常用快捷键
C默认为Ctrl键,M默认为Alt键
快捷键 | 说明 |
基本 | |
C-x C-c | 退出 |
C-x C-f | 打开/新建文件 |
C-x C-s | 保存文件 |
C-x C-w | 另存为 |
C-g | 取消正在编辑的命令 |
C-` | 激活菜单,和我的环境冲突。修改为C-\ |
M-x | 输入命令 |
光标 | |
C-v M-v | 下一页 上一页 |
C-l | 当前行居中显示 |
C-b C-f… |
14 years ago
0
Linux内核学习笔记(四)
I/O系统架构
当Linux内核组件要读写一些数据时,并不是请求一发出,内核便立即执行该请求,而是将其推迟执行。当传输一个新数据块时,内核需要检查它能否通过。Linux IO调度程序是介于通用块层和块设备驱动程序之间,所…
阅读全文
14 years ago
0
Linux内核学习笔记(三)
Linux使用虚拟内存技术。它是一种位于应用程序内存请求与内存管理单元(MMU,一般是集成于CPU的硬件)硬件之间的抽象层。虚拟内存计数有以下优势:
- 多个进程可以同时并发的运行,使用重复的虚拟内存地址
- 应用程序所需内存大于物理内存时也可以运行
- 程序代码中,只有部…
14 years ago
0
Linux内核学习笔记(二)
x86平台中,一个进程调用C库函数读取文件内容,其经历的处理步骤可能如下:
- 在用户空间,进程调用fread()库函数
- 库函数触发read()系统调用
- 0x80软中断被触发,CR0寄存器的PE位被置0,进入内核态
- read()系统调用对VFS层发起调用file_op…
14 years ago
0
Hibernate基于注解的配置样例
实体类上的常用注解
1 2 3 4 5 6 7 8 9 10 11 12 13 |
@Entity ( name = "ChristmasTree" ) @Table ( name = "T_CRISMS_TREE" ) //给自动生成的表添加注释 @org.hibernate.annotations.Table ( appliesTo = "T_CRISMS_TREE", comment = "圣诞树" ) @Cacheable //JPA注解,表示该类型的实体支持缓存 //启用二级缓存时有意义,指定Hibernate缓存策略、存放区域 @Cache ( usage = CacheConcurrencyStrategy.READ_WRITE, region = "entityCache" ) public class ChristmasTree { //集合属性的缓存策略必须单独配置 @Cache ( usage = CacheConcurrencyStrategy.READ_WRITE, region = "entityCache" ) private List branches; } |
使用注解方式进行对象-数据库映射时,应当以JPA注解为主,仅Hibernate特有的功能则使用其私有的注解类。
简单主键和简单属性映射
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
//简单的主键映射 @Id //该注解指明此实体的标识符属性,对应了关系型数据库的主键 @Column ( name = "ID", columnDefinition = "int(11) comment '主键'" ) private Integer id; //UUID方式的主键生成器配置,其它任何自定义的主键生成器可以依样扩展 @Id @Column ( name = "ID", columnDefinition = "varchar(36) comment '主键,36位UUID'" ) @GeneratedValue ( generator = "uuid" ) @GenericGenerator ( name = "uuid", strategy = "org.hibernate.id.UUIDGenerator" ) private String id; //可以指定普通属性的延迟加载 @Basic ( fetch = FetchType.EAGER, optional = true ) @Column ( name = "BUILD_COST", columnDefinition = "decimal(10,2) comment '建造费用'" ) private BigDecimal buildCost; //时间映射 //只能用于java.util.Date或者java.util.Calendar,用于表示日期、时间或者时间戳 @Temporal ( TemporalType.TIMESTAMP ) @Column ( name = "BUILD_TIME", columnDefinition = "datetime comment '建造时间'" ) private Date buildTime; //大字段映射 @Lob @Column ( name = "REMARK", columnDefinition = "longtext comment '圣诞树备注信息'" ) private String remark; //枚举类型映射 @Enumerated ( EnumType.ORDINAL ) //根据枚举元素的声明顺序,从0开始 @Column ( name = "STATUS", columnDefinition = "tinyint comment '状态'" ) private Status status; //乐观并发控制用列 @Version @Column ( name = "VERSION" ) public Integer version; |
复合主键映射
嵌入式(embeddable)对象映射
关联映射
继承映射
其它注解
阅读全文
14 years ago
0
Ubuntu下安装OpenSSH服务器和客户端
OpenSSH
安装
1 2 |
sudo apt-get install openssh-client sudo apt-get install openssh-server |
服务器配置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
#监听端口 Port 22 #启用证书方式登录 PubkeyAuthentication yes #启用登录欢迎横幅 Banner /etc/issue.net # 允许root通过密码登录 PermitRootLogin yes #每隔60秒发送一次心跳给客户端 ClientAliveInterval 60 #如果连续5次心跳客户端没响应,则断开连接 ClientAliveCountMax 5 |
客户端配置
服务器可以发起保活心跳,客户端也可以:
设置默认Identity
要修改当前用户的默认SSH Key的位置,使用配置文件:
免密码登录
使用puTTY登录
先输入Session名称,然后点击Save,才能保存;加载时要先点击名称,然后Load:
小键盘功能默认是输入不了数字的,需要改为:
中文乱码问题的解决(设置编码方式与服务器一致,默认UTF-8):
免密码…
阅读全文
14 years ago
0