- x86使用内敛汇编实现简单的临界段保护
唐·柯里昂798
汇编linux运维笔记服务器
临界资源保护实现方法禁用中断__attribute__((used))staticinlineuint32_tread_eflags(void){uint32_teflags;ASM_V("pushf\n\tpop%%eax":"=a"(eflags));returneflags;}__attribute__((used))staticinlinevoidwrite_eflags(uint32_t
- Thread和Runable比较
冲冲冲!!!
并发与同步深入Java多线程
大多数情况下,不考虑代码书写方式,这两个都是可以实现多线程功能的。所以他们的区别并不是性能上功能上的区别,而是书写方式,代码可维护性,松耦合性以及操作方便等方便的区别了。1.最直接的区别就是Runable是接口,是支持多继承的,也就是实现类也可以实现其他的接口,降低了耦合。而Tread是类,只能被单一继承,这样它的子类不能再继承其他类了,增加了耦合性。2.Runable书写更加方便,只需要实现一个
- Linux 文件IO之read() 函数
voode
linuxLinuxLinux编程文件IO
Linux中最常见的读取文件系统调用是read()。#includessize_tread(intfd,void*buf,size_tlen);从fd指向的文件读取len个字节到buf中,成功返回buf中的字节数,失败返回-1.对read()调用可能会有许多结果:返回一个等于len的值,所有字节存入buf中。返回一个大于0小于len的值,该情况出现在一个信号打断了读取过程或读取中发生错误,有效字节
- 二、Java线程
栗子ing
JUC并发编程java开发语言jvm算法后端
Java程序创建启动的时候,默认就有一个线程,也就是主线程,在运行了。一、创建和运行线程1)方法1:直接使用Trhead//创建线程对象Threadt=newThread(){@Overridepublicvoidrun(){//要执行的任务}};//设置线程名称默认是Tread-xx表示数字从0递增t.setName("t1");//启动线程t.start();2)方法2:使用Runnable配
- 【系统调用】常用系统调用函数(二)
bala5569
性能测试小白linux服务器
1.5read函数#includessize_tread(intfd,void*buf,size_tcount);功能:把指定数目的数据读到内存(缓冲区)。参数:fd:文件描述符buf:内存首地址count:读取的字节个数返回值:成功:实际读取到的字节个数失败:-1代码示例:#include#include#include#include#defineBUFFER_SIZE1024intmain(
- 一步一步学ROP之linux_x86之学习笔记
hope_9382
read()函数:ssize_tread[1](intfd,void*buf,size_tcount);从fd指针指向文件读取count字节保存在buf中。write()函数:ssize_twrite(intfd,constvoid*buf,size_tnbyte);向fd指针指向文件中写入从buf读取size长度字节的长度的字符。STDIN_FILENO从键盘中输入STDOUT_FILENO向屏
- Java基础 线程与并发库 Day41 2018-12-31
Ernest_Chou
12.线程的几种实现方式?实现方式通过继承Thread的类实现一个线程通过实现Runnale接口实现一个线程继承的拓展性不强,Java只支持单继承,如果一个类继承了Thread就不能继承其他的类了。启动方式Threadthread=newTread(继承Tread的对象或者实现Runnable的对象);tread.start();//启动线程使用的start方法,启动以后执行的是run方法。区分线
- Modelsim仿真操作指导
知识充实人生
modelsimfpga开发verilogmodelsim仿真
目录一、前言二、仿真分类三、RTL级仿真3.1创建库3.2仿真配置设置3.3运行仿真四、常见问题4.1#Errorloadingdesign4.2运行仿真时报错“can'tread"Startup(-L)":nosuchelementinarray”4.3运行仿真时无任何报错,但object窗口为空,可正常运行仿真,如执行命令run-all但没有波形一、前言目前网上较多的是使用ISE如vivado
- Linux编程 文件操作 close read write
golemon.
Linuxlinux运维服务器
close函数函数原型:#includeintclose(intfd);参数:fd:要关闭的文件的文件描述符返回值:调用成功:返回0;调用失败:返回-1功能:关闭一个已经打开的文件。read函数函数原型:#includesize_tread(intfd,constvoid*buf,size_tcount);参数:fd:文件描述符buf:缓冲区指针,用于缓存从文件中读取的数据count:要请求读取的
- 实现Runable接口和继承Tread类创建线程的区别
Change_6556
继承Thread类是不推荐的,因为它有以下的一些缺点:从代码架构角度:具体的任务(run方法)应该和“创建和运行线程的机制(Thread类)”解耦,用runnable对象可以实现解耦。使用继承Thread的方式的话,那么每次想新建一个任务,只能新建一个独立的线程,而这样做的损耗会比较大(比如重头开始创建一个线程、执行完毕以后再销毁等。如果线程的实际工作内容,也就是run()函数里只是简单的打印一行
- Linux read
突击手平头哥
Linux中的read函数read函数时Linux中最基础的文件读取函数,但是Linux中的文件包括socket/普通文件/管道等等函数原型ssize_tread(intfd,void*buf,size_tlen);buf时读取后存入的地方,len指明buf的长度(最长读取的不会超过这个)read的返回值1返回一个小于len的正整数,属于正常(如果可用字节数,小于len,被信号打断)2如果到达文件
- Linux系统编程——其他类型数据写到文件并读取
郑老师的小学童
linux
函数原型解读由前面章节可知,对文件的操作都是基于字符串,但对文件的操作并不仅限于此,这个时候需要重新审视几个文件操作的函数原型,函数原型如下:ssize_twrite(intfd,constvoid*buf,size_tcount);ssize_tread(intfd,void*buf,size_tcount);其中无论是写入(write)还是读取(read)函数,其第二个参数都是无类型的指针,而
- 嵌入式学习之linux系统编程---4 文件IO之read函数
要努力丫!
ITOP4412学习linuxlinux
1、read函数的函数原型#includessize_tread(intfd,void*buf,size_tcount);在函数原型中,ssize_t指的是返回值;fd是要读取的文件的文件描述符;*buf是万能指针,一个任意类型的指针,议案是传进去一个地址;count是要读取的字节个数。同样地,在ubuntu界面输入:man2read可以查看read函数的相关信息。该函数的作用是从文件描述符fd所
- gRPC 超时控制
煎鱼(EDDYCJY)
前言在前面的章节中,已经介绍了gRPC的基本用法。那你想想,让它这么裸跑真的没问题吗?那么,肯定是有问题了。今天将介绍gRPCDeadlines的用法,这一个必备技巧。内容也比较简单DeadlinesDeadlines意指截止时间,在gRPC中强调TL;DR(Toolong,Don'tread)并建议始终设定截止日期,为什么呢?为什么要设置当未设置Deadlines时,将采用默认的DEADLINE
- Linux 文件IO
jun8086
linux标准IO/文件IOlinux
Linux文件IO1.文件IO概念2.文件描述符(intfileno)3.intopen(constchar*pathname,intflags,mode_tmode);4.ssize_tread(intfd,void*buf,size_tcount);ssize_twrite(intfd,constvoid*buf,size_tcount);5.off_tlseek(intfd,off_toff
- 最近学习内容(2023-10-21)
etcix
学习
最近学习内容Linux编译链接命令一条有用的删除可执行文件的bash命令gcc在macos的编译选项,其中-g会生成一个.dSYM文件夹tolongdon’tread工具的使用gnubintuils的使用,但是很可惜macos上的是Mach-O,不是ELFaxel多线程下载器和其余的curl,wget,这里应该看一下tldr#首先有handy目录,handy/handy.hpp其次有libhand
- 用c语言对文件的写入和保存,C++_C语言中对文件最基本的读取和写入函数,C语言read()函数:读文件函数( - phpStudy...
weixin_39805906
用c语言对文件的写入和保存
C语言中对文件最基本的读取和写入函数C语言read()函数:读文件函数(由已打开的文件读取数据)头文件:#include定义函数:ssize_tread(intfd,void*buf,size_tcount);函数说明:read()会把参数fd所指的文件传送count个字节到buf指针所指的内存中.若参数count为0,则read()不会有作用并返回0.返回值为实际读取到的字节数,如果返回0,表示
- 【rtp】按照大端解析字节流
等风来不如迎风去
c/c++笔面应用实战网络webrtc
打算读取转换小端数值从uint8的字节流中,按照自己读取,首先读取到的是data字节,大端先读取到是高字节。直接存到数值value的高字节buf[3],最后返回value。staticuint32_tRead4Bytes(constuint8_t*data){uint32_tvalue=0;uint8_t*output=(
- IO学习系列之使用read和write复制文件内容
少年维克多
IO学习系列学习算法青少年编程Linux文件IO
read函数:功能:从文件fd中读取count个字节,存放进指针buf;具体内容:#includessize_tread(intfd,void*buf,size_tcount);/*参数:fd:文件描述符buf:用来存储读取内从的缓冲区的首地址count:想要读取的字节数返回值:成功实际读取的字节数,且读到文件结尾会返回0失败-1重置错误码*/write函数:功能:把指针buf中的内容,写coun
- Linux IO函数
ME_Liao_2022
算法
read/write函数:1.read#includessize_tread(intfd,void*buf,size_tcount);参数:-fd:文件描述符,open得到的,通过这个文件描述符操作某个文件-buf:需要读取数据存放的地方,数组的地址;-count:指定的数组的大小返回值:-成功:>0:返回实际的读取到的字节数=0:文件已经读完了-失败:返回-1,并且设置error2.write#
- l8-d9 UDP通信实现
-风裁尘-
udp网络协议网络
一、函数接口扩展与UDP通信实现流程1.write/read到send/recv函数原型:ssize_tsend(intsockfd,constvoid*buf,size_tlen,intflags);ssize_trecv(intsockfd,void*buf,size_tlen,intflags);前三个参数同read/write一样;ssize_tread(intfd,void*buf,si
- Linux IO操作——RIO包
WingCueng_Ray
unix网络编程linuxio标准
1.linux基本I/O接口介绍ssize_tread(intfd,void*buf,size_tcount);ssize_twrite(intfd,void*buf,size_tcount);以上两个是linux下的两个系统调用,用于对文件行基本的I/O操作。fd是非负文件描述符,其实相当于标识一个文件的唯一编号。默认标号0是标准输入(终端输入),1是标准输出(终端输出),2是标准错误。所以用户
- 「口语习语每天学」DAY37
小朋是个宝宝
「口语习语每天学」DAY37✏️steponsb'stoes今天分享的是《生活大爆炸》S11E08里出现的steponsb'stoes,英式英语中常用treadonsb'stoes,表示“激怒、得罪、冒犯(尤指因插手某人职责)”另外再积累一个关于tread的习语:treadonsb'sheels.表示“步某人后尘”,heel表示脚后跟,跟着脚后跟走就是步后尘,是不是很形象?
- Linux文件编程 (文件的打开,读写及光标的移动) 用基本函数实现cp指令
pg_hj
Linux文件编程linuxubuntu
Linux文件编程一文件的打开及创建1.1open函数二文件的写入与读取2.1文件写入ssize_twrite(intfd,constvoid*buf,size_tcount)函数2.2文件读取ssize_tread(intfd,void*buf,size_tcount);函数2.3文件写入操作2.4文件读取操作2.5光标移动操作off_tlseek(intfd,off_toffset,intwh
- ubuntu学习(五)----读取文件以及光标的移动
啥也不会的小白研究生
linux学习linuxubuntu
1、读取文件函数原型介绍ssize_tread(intfd,void*buf,size_tcount)参数说明:fd:是文件描述符buf:为读出数据的缓冲区;count:为每次读取的字节数(是请求读取的字节数,读上来的数据保存在缓冲区buf中,同时文件的当前读写位置向后移)返回值:成功:返回读出的字节数失败:返回-1,并设置errno,如果在调用read,之前到达文件末尾,则这次read返回02、
- HARRY Potter and the soecerer's stone
甜橙子味儿
chapeterthreethelettersfromnoonemailslot邮件投递口dodge闪躲,托词twang鼻音,弦声,砰的一声parchment羊皮纸grayish浅灰色的porridge粥,麦片粥,服刑faint昏厥scruff颈椎squeezed挤压leap跳跃trodden《tread》践踏行走nail用钉钉牢marmalade橘子酱bullet子弹duck鸭子,猛冲,闪避sn
- 多线程重点知识归纳总结。
小黎的培培笔录
JAVA重点部分的笔记java多线程
目录一、线程相关概念1、程序2、进程3、线程2、多线程应用1、创建线程的两种方式2、代码示例三、Runnable接口1、为什么要实现接口2、代码示例:如何使用3、静态代理模式:模拟极简的Tread类4、继承Tread类和实现Runnable接口的区别四、线程常用方法1、补充-线程终止2、常用方法3、守护线程五、线程的生命周期1、线程的几种状态2、线程状态转换图3、代码示例:查看线程状态六、线程同步
- C语言读写文件函数:read/write,pread/pwrite,readv/writev,preadv/pwritev,preadv2/pwritev2
抓饼先生
c语言linuxandroid
函数原型//最基本的read,write函数//read,write-readfromorwritetoafiledescriptor#includessize_tread(intfd,void*buf,size_tcount);ssize_twrite(intfd,constvoid*buf,size_tcount);//在read,write函数基础上,可指定位置偏移量//pread,pwri
- 2023/7/4
Repeat715
java开发语言
多线程单线程程序:从头往下依次运行多线程程序:可以在多个程序中切换,将等待的时间充分利用起来,提高程序效率总结:并发和并行多线程的实现方式:Thread实现多线程的第一种方式packagetreadclass1;publicclassTreadDemo{publicstaticvoidmain(String[]args){/*多线程的第一种启动方式:1.自己定义一个类继承Tread2.重写run方
- Python多线程(一)——创建多线程
微霞霞微
Python多线程python
创建多线程python支持两种创建多线程的方式:通过threading.Thread()创建。thread.Thread(group=None,name='Tread-x',targt=None,args=(),kwargs={},daemon=None)参数介绍:语法含义group一般不用name线程名targt目标函数args目标函数的参数,数据类型:元祖。与kwargs水火不容,只存在一个参
- html
周华华
html
js
1,数组的排列
var arr=[1,4,234,43,52,];
for(var x=0;x<arr.length;x++){
for(var y=x-1;y<arr.length;y++){
if(arr[x]<arr[y]){
&
- 【Struts2 四】Struts2拦截器
bit1129
struts2拦截器
Struts2框架是基于拦截器实现的,可以对某个Action进行拦截,然后某些逻辑处理,拦截器相当于AOP里面的环绕通知,即在Action方法的执行之前和之后根据需要添加相应的逻辑。事实上,即使struts.xml没有任何关于拦截器的配置,Struts2也会为我们添加一组默认的拦截器,最常见的是,请求参数自动绑定到Action对应的字段上。
Struts2中自定义拦截器的步骤是:
- make:cc 命令未找到解决方法
daizj
linux命令未知make cc
安装rz sz程序时,报下面错误:
[root@slave2 src]# make posix
cc -O -DPOSIX -DMD=2 rz.c -o rz
make: cc:命令未找到
make: *** [posix] 错误 127
系统:centos 6.6
环境:虚拟机
错误原因:系统未安装gcc,这个是由于在安
- Oracle之Job应用
周凡杨
oracle job
最近写服务,服务上线后,需要写一个定时执行的SQL脚本,清理并更新数据库表里的数据,应用到了Oracle 的 Job的相关知识。在此总结一下。
一:查看相关job信息
1、相关视图
dba_jobs
all_jobs
user_jobs
dba_jobs_running 包含正在运行
- 多线程机制
朱辉辉33
多线程
转至http://blog.csdn.net/lj70024/archive/2010/04/06/5455790.aspx
程序、进程和线程:
程序是一段静态的代码,它是应用程序执行的蓝本。进程是程序的一次动态执行过程,它对应了从代码加载、执行至执行完毕的一个完整过程,这个过程也是进程本身从产生、发展至消亡的过程。线程是比进程更小的单位,一个进程执行过程中可以产生多个线程,每个线程有自身的
- web报表工具FineReport使用中遇到的常见报错及解决办法(一)
老A不折腾
web报表finereportjava报表报表工具
FineReport使用中遇到的常见报错及解决办法(一)
这里写点抛砖引玉,希望大家能把自己整理的问题及解决方法晾出来,Mark一下,利人利己。
出现问题先搜一下文档上有没有,再看看度娘有没有,再看看论坛有没有。有报错要看日志。下面简单罗列下常见的问题,大多文档上都有提到的。
1、address pool is full:
含义:地址池满,连接数超过并发数上
- mysql rpm安装后没有my.cnf
林鹤霄
没有my.cnf
Linux下用rpm包安装的MySQL是不会安装/etc/my.cnf文件的,
至于为什么没有这个文件而MySQL却也能正常启动和作用,在这儿有两个说法,
第一种说法,my.cnf只是MySQL启动时的一个参数文件,可以没有它,这时MySQL会用内置的默认参数启动,
第二种说法,MySQL在启动时自动使用/usr/share/mysql目录下的my-medium.cnf文件,这种说法仅限于r
- Kindle Fire HDX root并安装谷歌服务框架之后仍无法登陆谷歌账号的问题
aigo
root
原文:http://kindlefireforkid.com/how-to-setup-a-google-account-on-amazon-fire-tablet/
Step 4: Run ADB command from your PC
On the PC, you need install Amazon Fire ADB driver and instal
- javascript 中var提升的典型实例
alxw4616
JavaScript
// 刚刚在书上看到的一个小问题,很有意思.大家一起思考下吧
myname = 'global';
var fn = function () {
console.log(myname); // undefined
var myname = 'local';
console.log(myname); // local
};
fn()
// 上述代码实际上等同于以下代码
m
- 定时器和获取时间的使用
百合不是茶
时间的转换定时器
定时器:定时创建任务在游戏设计的时候用的比较多
Timer();定时器
TImerTask();Timer的子类 由 Timer 安排为一次执行或重复执行的任务。
定时器类Timer在java.util包中。使用时,先实例化,然后使用实例的schedule(TimerTask task, long delay)方法,设定
- JDK1.5 Queue
bijian1013
javathreadjava多线程Queue
JDK1.5 Queue
LinkedList:
LinkedList不是同步的。如果多个线程同时访问列表,而其中至少一个线程从结构上修改了该列表,则它必须 保持外部同步。(结构修改指添加或删除一个或多个元素的任何操作;仅设置元素的值不是结构修改。)这一般通过对自然封装该列表的对象进行同步操作来完成。如果不存在这样的对象,则应该使用 Collections.synchronizedList 方
- http认证原理和https
bijian1013
httphttps
一.基础介绍
在URL前加https://前缀表明是用SSL加密的。 你的电脑与服务器之间收发的信息传输将更加安全。
Web服务器启用SSL需要获得一个服务器证书并将该证书与要使用SSL的服务器绑定。
http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后
- 【Java范型五】范型继承
bit1129
java
定义如下一个抽象的范型类,其中定义了两个范型参数,T1,T2
package com.tom.lang.generics;
public abstract class SuperGenerics<T1, T2> {
private T1 t1;
private T2 t2;
public abstract void doIt(T
- 【Nginx六】nginx.conf常用指令(Directive)
bit1129
Directive
1. worker_processes 8;
表示Nginx将启动8个工作者进程,通过ps -ef|grep nginx,会发现有8个Nginx Worker Process在运行
nobody 53879 118449 0 Apr22 ? 00:26:15 nginx: worker process
- lua 遍历Header头部
ronin47
lua header 遍历
local headers = ngx.req.get_headers()
ngx.say("headers begin", "<br/>")
ngx.say("Host : ", he
- java-32.通过交换a,b中的元素,使[序列a元素的和]与[序列b元素的和]之间的差最小(两数组的差最小)。
bylijinnan
java
import java.util.Arrays;
public class MinSumASumB {
/**
* Q32.有两个序列a,b,大小都为n,序列元素的值任意整数,无序.
*
* 要求:通过交换a,b中的元素,使[序列a元素的和]与[序列b元素的和]之间的差最小。
* 例如:
* int[] a = {100,99,98,1,2,3
- redis
开窍的石头
redis
在redis的redis.conf配置文件中找到# requirepass foobared
把它替换成requirepass 12356789 后边的12356789就是你的密码
打开redis客户端输入config get requirepass
返回
redis 127.0.0.1:6379> config get requirepass
1) "require
- [JAVA图像与图形]现有的GPU架构支持JAVA语言吗?
comsci
java语言
无论是opengl还是cuda,都是建立在C语言体系架构基础上的,在未来,图像图形处理业务快速发展,相关领域市场不断扩大的情况下,我们JAVA语言系统怎么从这么庞大,且还在不断扩大的市场上分到一块蛋糕,是值得每个JAVAER认真思考和行动的事情
- 安装ubuntu14.04登录后花屏了怎么办
cuiyadll
ubuntu
这个情况,一般属于显卡驱动问题。
可以先尝试安装显卡的官方闭源驱动。
按键盘三个键:CTRL + ALT + F1
进入终端,输入用户名和密码登录终端:
安装amd的显卡驱动
sudo
apt-get
install
fglrx
安装nvidia显卡驱动
sudo
ap
- SSL 与 数字证书 的基本概念和工作原理
darrenzhu
加密ssl证书密钥签名
SSL 与 数字证书 的基本概念和工作原理
http://www.linuxde.net/2012/03/8301.html
SSL握手协议的目的是或最终结果是让客户端和服务器拥有一个共同的密钥,握手协议本身是基于非对称加密机制的,之后就使用共同的密钥基于对称加密机制进行信息交换。
http://www.ibm.com/developerworks/cn/webspher
- Ubuntu设置ip的步骤
dcj3sjt126com
ubuntu
在单位的一台机器完全装了Ubuntu Server,但回家只能在XP上VM一个,装的时候网卡是DHCP的,用ifconfig查了一下ip是192.168.92.128,可以ping通。
转载不是错:
Ubuntu命令行修改网络配置方法
/etc/network/interfaces打开后里面可设置DHCP或手动设置静态ip。前面auto eth0,让网卡开机自动挂载.
1. 以D
- php包管理工具推荐
dcj3sjt126com
PHPComposer
http://www.phpcomposer.com/
Composer是 PHP 用来管理依赖(dependency)关系的工具。你可以在自己的项目中声明所依赖的外部工具库(libraries),Composer 会帮你安装这些依赖的库文件。
中文文档
入门指南
下载
安装包列表
Composer 中国镜像
- Gson使用四(TypeAdapter)
eksliang
jsongsonGson自定义转换器gsonTypeAdapter
转载请出自出处:http://eksliang.iteye.com/blog/2175595 一.概述
Gson的TypeAapter可以理解成自定义序列化和返序列化 二、应用场景举例
例如我们通常去注册时(那些外国网站),会让我们输入firstName,lastName,但是转到我们都
- JQM控件之Navbar和Tabs
gundumw100
htmlxmlcss
在JQM中使用导航栏Navbar是简单的。
只需要将data-role="navbar"赋给div即可:
<div data-role="navbar">
<ul>
<li><a href="#" class="ui-btn-active&qu
- 利用归并排序算法对大文件进行排序
iwindyforest
java归并排序大文件分治法Merge sort
归并排序算法介绍,请参照Wikipeida
zh.wikipedia.org/wiki/%E5%BD%92%E5%B9%B6%E6%8E%92%E5%BA%8F
基本思想:
大文件分割成行数相等的两个子文件,递归(归并排序)两个子文件,直到递归到分割成的子文件低于限制行数
低于限制行数的子文件直接排序
两个排序好的子文件归并到父文件
直到最后所有排序好的父文件归并到输入
- iOS UIWebView URL拦截
啸笑天
UIWebView
本文译者:candeladiao,原文:URL filtering for UIWebView on the iPhone说明:译者在做app开发时,因为页面的javascript文件比较大导致加载速度很慢,所以想把javascript文件打包在app里,当UIWebView需要加载该脚本时就从app本地读取,但UIWebView并不支持加载本地资源。最后从下文中找到了解决方法,第一次翻译,难免有
- 索引的碎片整理SQL语句
macroli
sql
SET NOCOUNT ON
DECLARE @tablename VARCHAR (128)
DECLARE @execstr VARCHAR (255)
DECLARE @objectid INT
DECLARE @indexid INT
DECLARE @frag DECIMAL
DECLARE @maxfrag DECIMAL
--设置最大允许的碎片数量,超过则对索引进行碎片
- Angularjs同步操作http请求with $promise
qiaolevip
每天进步一点点学习永无止境AngularJS纵观千象
// Define a factory
app.factory('profilePromise', ['$q', 'AccountService', function($q, AccountService) {
var deferred = $q.defer();
AccountService.getProfile().then(function(res) {
- hibernate联合查询问题
sxj19881213
sqlHibernateHQL联合查询
最近在用hibernate做项目,遇到了联合查询的问题,以及联合查询中的N+1问题。
针对无外键关联的联合查询,我做了HQL和SQL的实验,希望能帮助到大家。(我使用的版本是hibernate3.3.2)
1 几个常识:
(1)hql中的几种join查询,只有在外键关联、并且作了相应配置时才能使用。
(2)hql的默认查询策略,在进行联合查询时,会产
- struts2.xml
wuai
struts
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache