两个周的折腾(三)——在线文本编辑器与oracle

正当觉得前方有那么一点光亮的时候,问题又出现了…没有觉得这个方法太危险了吗,恩恩,是啊,很危险…而且,人家经理要求上传的时候两个表,一个存图片,另一个存文本内容,而且两个之间有外键关联,我的天。

前天下班前经理扔下一句话: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就行了。

看着微博上关于这些天新知识点的记录,想一想这两周乱七八糟的乱写乱画,压力那么大,很累,但是,也很充实,现在进行到这个程度,才完成了一半,因为,还要整合公司的框架,希望能顺利点,加油!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值