正当觉得前方有那么一点光亮的时候,问题又出现了…没有觉得这个方法太危险了吗,恩恩,是啊,很危险…而且,人家经理要求上传的时候两个表,一个存图片,另一个存文本内容,而且两个之间有外键关联,我的天。
前天下班前经理扔下一句话:oracle里面不是有序列吗,你用序列。。。我晕,oracle这个,这个东西,太,太突然了吧,从来没有用过……脑子里就这么一个“序列”的词,回到学校,查吧,问吧,找吧,等等等等啦。
而且,针对这种方法存放图片读取图片的话,有点危险这个问题,经理要求,每次生成img标签前,从数据库里读取一个新的序列号,用ajax的方法。
想着以上这些要求,感觉以前的努力白费了,但是,总是有用的,因为之前的探索总能得出点什么知识的。昨天和今天两天的时间,好好解决这两个问题吧。
下面一点一点记录:
1、oracle中序列号
真的真的不知道oracle中的序列号是个神马东东,最后明白了,下面是在oracle中新建一个序列号和怎么获取的程序:
//查询序列的值
select userpicid_seq.nextval from dual
//新建一个序列
create sequence userpicid_seq minvalue 1 maxvalue 99999999
increment by 1
start with 1;
//新建触发器,插入表中对应的id
create or replace trigger userpicid_tri
before insert on userpic
for each row
begin
select userpicid_seq.nextval into :new.id from dual;
end;
2、oracle中实现mysql的limit方法
//实现mysql里面的limit效果
select ID from USERPIC where rownum 1 order by ID desc;
3、ajax读取序列号(jquery)
这个序列号呀,查了好长时间:
首先是java代码:
public class GetImgID extends HttpServlet{
private static Connection conn=null;
private final static String READIDSQL = "select userpicid_seq.nextval from dual";
static {
conn=DbConn.getConnection();
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
PreparedStatement pmst =null;
ResultSet rs=null;
int id = 0;
try {
pmst = conn.prepareStatement(READIDSQL);
rs= pmst.executeQuery();
if (rs.next()) {
id = rs.getInt(1);
PrintWriter pw ;
try {
pw = resp.getWriter();
pw.write(id+"");
pw.flush()
} catch (IOException e) {
e.printStackTrace();
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
doGet(req, resp);
}
}
之后用jquery中用如下方法:
$.get('http://localhost:8080/kindeditortest/GetImgID.do', function(data){
alert(data);
});
这样能弹出返回的序列值了。
被这句话搞了好长时间:
pw.write(id+"");
之前写的
pw.write(id);
总是出错,后来查API才知道,记录一下:
PrintWriter的write方法,参数是String类型,所以,如果想要将数字赋值的话,要先把数字改成字符,最简单的:PrintWriter(id+"");如果不改的话,直接pw.write(12);则表示传入的是单个字符。
最最后,有一个问题要记录,那就是在js文件中怎么引入另一个js文件,因为要在js文件中引入jquery.js文件嘛,查了一下:
document.write(unescape("%3Cscript language='javascript' src='jquery.js'%3E%3C/script%3E"));
我也不知道为什么这样写,改一下src就行了。
看着微博上关于这些天新知识点的记录,想一想这两周乱七八糟的乱写乱画,压力那么大,很累,但是,也很充实,现在进行到这个程度,才完成了一半,因为,还要整合公司的框架,希望能顺利点,加油!