`
文章列表
1 getCurrentSession创建的session会和绑定到当前线程,而openSession不会。 2 getCurrentSession创建的线程会在事务回滚或事物提交后自动关闭,而openSession必须手动关闭 这里getCurrentSession本地事务(本地事务:jdbc)时 要在配置文件里进行如下设置     * 如果使用的是本地事务(jdbc事务) <property name="hibernate.current_session_context_class">thread</property> * 如果使用的是全局事 ...
上面的两种方式都是非常的复杂,如果仅仅是需要返回一个结果集,那就完全可以使用函数来实现了。 Java代码 create or replace package procpkg is      type refcursor is ref cursor;      procedure procrefcursor(p varchar2, p_ref_postypeList  out refcursor);      function procpostype(p varchar2) return PosTypeTable;    end procpkg;     create or replace pac ...
3.4 select into不可乎视的问题 我们知道在pl/sql中要想从数据表中向变量赋值,需要使用select into 子句。 但是它会带动来一些问题,如果查询没有记录时,会抛出no_data_found异常。 如果有多条记录时,会抛出too_many_rows异常。 这个是比较糟糕的。一旦抛出了异常,就会让过程中断。特别是no_data_found这种异常,没有严重到要让程序中断的地步,可以完全交给由程序进行处理。 Java代码 create or replace procedure procexception(p varchar2)    as       ...
2. 存储过程内部块 2.1 内部块 我们知道了存储过程的结构,语句块由begin开始,以end结束。这些块是可以嵌套。在语句块中可以嵌套任何以下的块。 Java代码 Declare … begin … exception … end;    create or replace procedure innerBlock(p1 varchar2)    as       o1 varchar2(10) := 'out1';    begin      dbms_output.put_line(o1);      declare         inner1 ...
我们在进行pl/sql编程时打交道最多的就是存储过程了。存储过程的结构是非常的简单的,我们在这里除了学习存储过程的基本结构外,还会学习编写存储过程时相关的一些实用的知识。如:游标的处理,异常的处理,集合的选择等等 1.存储过程结构 1.1 第一个存储过程 Java代码 create or replace procedure proc1(      p_para1 varchar2,      p_para2 out varchar2,      p_para3 in out varchar2    )as      v_name varchar2(20);    ...
ThreadLocal与synchronized Java良好的支持多线程。使用java,我们可以很轻松的编程一个多线程程序。但是使用多线程可能会引起并发访问的问题。synchronized和ThreadLocal都是用来解决多线程并发访问的问题。大家可能对synchronized较为熟悉,而对ThreadLocal就要陌生得多了。 并发问题。当一个对象被两个线程同时访问时,可能有一个线程会得到不可预期的结果。 一个简单的java类Studnet Java代码 public class Student {      private int age=0;       ...
ThreadLocal并不能从字面上理解为线程的本地实现版本,因为它并不是一个线程,而是ThreadLocal Variable(线程局部变量)。它的功能非常简单,就是为每一个使用该变量的线程都提供一个变量值的副本,使得每一个线程都可以独立地 ...
数据库突然出了问题,没办法只能重装,因为事先并不知道MySQL卸载是比较复杂的,结果重新安装的时候出现了问题:Could not start the service MySQL. Error:0 在网上整了半天,终于搞定了,下面给出我的解决方案。 首先,在管理工具->服务里面将MySQL的服务给停止,然后打开cmd 进入你的MySQL bin目录下,例如我的是 C:\Program Files\MySQL\MySQL Server 5.0\bin 然后使用如下命令mysqld-nt -remove 然后就会显示......success! 好了下面进入添加删除程序,找到MySQL选择卸 ...
列了J2EE中的一些xml配置,当然并不全。---------------------------------------------------------------------------------------------------------------------------------配置servlet映射关系:<web-app>   ......   <servlet>        <servlet-name>ServletName</servlet-name>        <servlet-class>com. ...
<security-constraint> 的子元素 <http-method> 是可选的,如果没有 <http-method> 元素,这表示将禁止所有 HTTP 方法访问相应的资源。 子元素 <auth-constraint> 需要和 <login-config> 相配合使用,但可以被单独使用。如果没有 <auth-constraint> 子元素,这表明任何身份的用户都可以访问相应的资源。也就是说,如果 <security-constraint> 中没有 <auth-constraint> 子元素 ...
setMaxInactiveInterval和session-config的优先级: 1、setMaxInactiveInterval的优先级高,如果setMaxInactiveInterval没有设置,则默认是session-config中设置的时间。 2、setMaxInactiveInterval设置的是当前会话的失效时间,不是整个web服务的。 3、setMaxInactiveInterval的参数是秒,session-config当中配置的session-timeout是分钟。
因为jasper支持cmd mode,Jasper中有一个class,org.apache.jasper.JspC,就是entry point 首先设置classpath,大概需要把tomcat/bin/*.jar和tomcat/lib/*.jar都加到classpath里边 就ok了 java org.apache.jasper.JspC 这里需要注意的一点是,JspC依赖于ant的library,需要加入ant的classpath,这个确实是一个很ft的错误
commons-pool提供了一套很好用的对象池组件。使用也很简单,不过对一些简单的对象使用对象池就没必要了。 ObjectPool定义了一个简单的池化接口,有三个对应实现  GenericObjectPool:实现了可配置的后进先出或先进先出(LIFO/FIFO)行为,默认是作为一个后进先出队列,这意味当对象池中有可用的空闲对象时,borrowObject 将返回最近的对象实例,如果将lifo 属性设置为false,则按FIFO行为返回对象实例。 StackObjectPool :实现了后进先出(LIFO)行为。 SoftReferenceObjectPool: 实现了后进先出(LI ...

java对象池技术

java中的对象池技术,是为了方便快捷地创建某些对象而出现的,当需要一个对象时,就可以从池中取一个出来(如果池中没有则创建一个),则在需要重复重复创建相等变量时节省了很多时间。对象池其实也就是一个内存空间,不同于使用new关键字创建的对象所在的堆空间。本文只从java使用者的角度来探讨java对象池技术,并不涉及对象池的原理及实现方法。个人认为,如果是真的专注java,就必须对这些细节方面有一定的了解。但知道它的原理和具体的实现方法则不是必须的。 1,对象池中对象和堆中的对象public class Test{Integer i1=new Integer(1);    Integer i2=n ...
1、Socket读取       String strServer=http://www.google.cn;//这里同样可以用ip来访问:203.208.35.100       String strPage="/language_tools?hl=zh-CN";       try {            String hostname = strServer;            int port = 80;            InetAddress addr = InetAddress.getByName(hostname);            S ...
Global site tag (gtag.js) - Google Analytics