- 博客(96)
- 资源 (4)
- 收藏
- 关注
转载 Mybatis的<where><foreach><set>等标签详解
sql语句where条件中,需要一些安全判断,例如按性别检索,如果传入的参数是空的,此时查询出的结果很可能是空的,也许我们需要参数为空 时,是查出全部的信息。这是我们可以使用动态sql,增加一个判断,当参数不符合要求的时候,我们可以不去判断此查询条件。 下文均采用mysql语法和函数(例如字符串链接函数CONCAT3.1 if标签 一个很普通的查询:Xml代码
2014-09-24 17:31:03 484
原创 PL/SQL记住登陆密码
PL/SQL Developer记住登陆密码 在使用PL/SQL Developer时,为了工作方便希望PL/SQL Developer记住登录Oracle的用户名和密码; 设置方法:PL/SQL Developer 7.1.2 ->tools->Preferences->Oracle->Logon History , “Store history”是默认勾选的,勾上“Sto
2014-09-24 16:43:25 1029
转载 Oracle将字符串(例:69.05%)转换为数字
最近用到了将Oracle数据库中某个字符类型的字段值转换为数字并保存至另一个新字段,Oracle自带有ToNumber函数,但需要说明的是这个函数只能转换字符串格式是正确数字的情况,也就是一旦字符串为空,或者有特殊字符,或者有空格等等,都会抛错,以下提供一种方式成功解决以上问题:TO_NUMBER(decode(decode(lower(nvl(replace(translate(strT
2014-09-24 16:42:10 7039
转载 Spring@Autowired注解与自动装配
1 配置文件的方法 我们编写spring 框架的代码时候。一直遵循是这样一个规则:所有在spring中注入的bean 都建议定义成私有的域变量。并且要配套写上 get 和 set方法。 Boss 拥有 Office 和 Car 类型的两个属性: 清单 3. Boss.java [java] vi
2014-09-24 10:53:20 555
转载 Spring中 @Autowired标签与 @Resource标签 的区别
Spring不但支持自己定义的@Autowired注解,还支持由JSR-250规范定义的几个注解,如:@Resource、 @PostConstruct及@PreDestroy。1. @Autowired @Autowired是Spring 提供的,需导入 Package:org.springframework.beans.factory.annotation.Autowi
2014-09-24 10:50:55 617
原创 java 二叉树概念
以根节点为顺序基础前序遍历: 1.访问根节点 2.前序遍历左子树 3.前序遍历右子树 中序遍历: 1.中序遍历左子树 2.访问根节点 3.中序遍历右子树 后序遍历: 1.后序遍历左子树 2.后序遍历右子树 3.访问根节点
2014-09-23 17:55:06 828
原创 代理模式
代理设计模式定义:为其他对象提供一种代理以控制对这个对象的访问。代理模式的结构如下图所示。动态代理使用java动态代理机制以巧妙的方式实现了代理模式的设计理念。代理模式示例代码public interface Subject { public void doSomething(); } public class R
2014-09-23 17:54:13 430
转载 Servlet 是否线程安全 看完便知
摘 要:介绍了Servlet多线程机制,通过一个实例并结合Java 的内存模型说明引起Servlet线程不安全的原因,给出了保证Servlet线程安全的三种解决方案,并说明三种方案在实际开发中的取舍。 关键字:Servlet 线程安全 同步 Java内存模型 实例变量 Servlet/JSP技术和ASP、PHP等相比,由于其多线程运行而具有很高的执行效率。由于Servl
2014-09-23 17:50:41 495
原创 MySQL基础----动态SQL语句
动态sql语句基本语法 1 :普通SQL语句可以用Exec执行 eg: Select * from tableName Exec('select * from tableName') Exec sp_executesql N'select * from tableName' -- 请注意字符串前一定要加N 2:字段名,表名,
2014-09-23 17:49:48 25178
原创 struts2如何跟spring整合的,原来是:struts2-spring-plugin.jar
在我们集成struts2+spring+hibernate,也就是所谓的S2SH,不可避免的要引入struts2-spring-plugin.jar插件。当引入这个插件后,原先所struts创建的action类,交给了spring创建。在struts2-spring-plugin.jar中有一个struts-plugin.xml,里面声明了action类由spring工厂创建。在struts2插件
2014-09-23 17:49:17 7307
转载 Java NIO原理和使用
Java NIO非堵塞应用通常适用用在I/O读写等方面,我们知道,系统运行的性能瓶颈通常在I/O读写,包括对端口和文件的操作上,过去,在打开一个I/O通道后,read()将一直等待在端口一边读取字节内容,如果没有内容进来,read()也是傻傻的等,这会影响我们程序继续做其他事情,那么改进做法就是开设线程,让线程去等待,但是这样做也是相当耗费资源的。Java NIO非堵塞技术实际是采取Rea
2014-09-23 17:48:19 555
原创 NIO简介
传统的解决方法通常在Java中处理阻塞I/O要用到线程(大量的线程)。一般是实现一个线程池用来处理请求,如图二图二线程使得服务器可以处理多个连接,但是它们也同样引发了许多问题。每个线程拥有自己的栈空间并且占用一些CPU时间,耗费很大,而且很多时间是浪费在阻塞的I/O操作上,没有有效的利用CPU。3. nio 简介 nio 是 java New IO
2014-09-23 17:47:47 1144
原创 泛型方法和可变参数方法
1)泛型方法 他可以动态的设置返回的参数类型.方法名字要用 +空格+T 来修饰,参数中,必须带Class类型的参数.如果设置了Integer类型,则会返回Integer类型的值. public T getTemp(String temp, Class clazz) { T obj = null; obj = (T)getObject(); return obj; }
2014-09-23 17:47:00 2261
原创 Hibernate get和load区别
get和load方式是根据id取得一个记录下边详细说一下get和load的不同,因为有些时候为了对比也会把find加进来。 1.从返回结果上对比:load方式检索不到的话会抛出org.hibernate.ObjectNotFoundException异常get方法检索不到的话会返回null 2.从检索执行机制上对比: get方法和find方法都是直接从数
2014-09-23 17:46:35 457
原创 hibernate缓存:一级缓存和二级缓存
1.什么是缓存? 缓存是介于物理数据源与应用程序之间,是对数据库中的数据复制一份临时放在内存中的容器,其作用是为了减少应用程序对物理数据源访问的次数,从而提高了应用程序的运行性能。Hibernate在进行读取数据的时候,根据缓存机制在相应的缓存中查询,如果在缓存中找到了需要的数据(我们把这称做“缓存命 中"),则就直接把命中的数据作为结果加以利用,避免了大量发送SQL语句到数据库查询的性能损耗。
2014-09-23 17:46:05 2259
原创 hibernate save,update,saveorupdate方法有什么区别
save()方法很显然是执行保存操作的,如果是对一个新的刚new出来的对象进行保存,自然要使用这个方法了,数据库中没有这个对象。update()如果是对一个已经存在的托管对象进行更新那么肯定是要使用update()方法了,数据中有这个对象。saveOrUpdate()这个方法是更新或者插入,有主键就执行更新,如果没有主键就执行插入。
2014-09-23 17:45:25 880
转载 hibernate简介(Session,几种状态,方法······等)概括全面,经典
2.Hibernate跟jdbc的关系 Hibernate封装JDBC,持久化内存中的对象,同步到数据库 . 1.关于封装,我得强调两点:(1).把尽可能多的东西藏起来.对外提供简捷的接口.(2)把所有的属性藏起来 当然我们,我们如果能够做到单一原则就更好了 2.关于持久化的概
2014-09-23 17:44:58 673
原创 在JAVA中,如何跳出当前的多重嵌套循环?
在Java中,要想跳出多重循环,可以在外面的循环语句前定义一个标号,然后在里层循环体的代码中使用带有标号的break 语句,即可跳出外层循环。例如,ok:for(int i=0;i{for(int j=0;j{System.out.println(“i=” + i + “,j=” + j);if(j == 5) break ok;}
2014-09-23 17:44:26 557
原创 final修饰符
使用final关键字修饰一个变量时,是指引用变量不能变,引用变量所指向的对象中的内容还是可以改变的。例如,对于如下语句: final StringBuffer a=new StringBuffer("immutable");执行如下语句将报告编译期错误:a=new StringBuffer("");但是,执行如下语句则可以通过编译:a.append(" broken
2014-09-23 17:43:56 432
原创 String 和StringBuffer的区别,性能吧
AVA平台提供了两个类:String和StringBuffer,它们可以储存和操作字符串,即包含多个字符的字符数据。这个String类提供了数值不可改变的字符串。而这个StringBuffer类提供的字符串进行修改。当你知道字符数据要改变的时候你就可以使用StringBuffer。典型地,你可以使用StringBuffers来动态构造字符数据。另外,String实现了equals方法,new St
2014-09-23 17:42:10 610
原创 hashcode
hashcode方法一般用户不会去调用,比如在hashmap中,由于key是不可以重复的,他在判断key是不是重复的时候就判断了hashcode这个方法,而且也用到了equals方法。这里不可以重复是说equals和hashcode只要有一个不等就可以了!所以简单来讲,hashcode相当于是一个对象的编码,就好像文件中的md5,他和equals不同就在于他返回的是int型的,比较起来不直观。
2014-09-23 17:41:38 474
原创 forward() 与redirect()的区别
a) forward 请求转发只能将请求转发给同一个WEB应用中的组件,而sendRedirect还可以重定向到同一个站点的其他应用程序的资源。甚至是使用绝对URL重定向到其他站点的资源b) 调用forward 方法浏览器保持初始的URL地址,而sendRedirect方法重定向访问结束时,浏览器的地址则会由初始地址转变为目标URLc) forward方法的调用者及被调用者之间共享
2014-09-23 17:39:53 546
原创 Java内存泄露的一个小例子
Java内存泄露 一般来说内存泄漏有两种情况。一种情况如在C/C++语言中的,在堆中的分配的内存,在没有将其释放掉的时候,就将所有能访问这块内存的方式都删掉(如指针重新赋值);另一种情况则是在内存对象明明已经不需要的时候,还仍然保留着这块内存和它的访问方式(引用)。第一种情况,在Java中已经由于垃圾回收机制的引入,得到了很好的解决。所以,Java中的内存泄漏,主要指的是第二
2014-09-23 17:39:00 5618
原创 JAVA 实现Runnable接口
/* 需求: 实现一个售票程序 创建线程的第二种方式:实现Runnable接口 步骤: 1,定义类实现Runnable接口 2,覆盖Runnable接口中的run方法 将线程要运行的代码存放在该run方法中 3,通过Thread 类建立线程对象 4,将Runnable接口的
2014-09-23 17:38:36 11442
原创 Spring AOP 的简单例子
Spring AOP 实现了AOP联盟(Alliance)的制定的接口规范,它基于java的代理机制实现。AOP作为Spring的核心技术之一. 更多关于Spring AOP介绍 可参考:http://oss.org.cn/ossdocs/framework/spring/zh-cn/aop.html 下面给出一个例子来简单介绍Spring AOP具体实现过程 现假设用户通过l
2014-09-23 17:37:42 545
原创 Spring事务管理(较全)
Spring提供了一流的事务管理。在Spring中可以支持声明式事务和编程式事务。 本章主要目标如下: 1,Spring事务 2,事务属性 3,事务管理器 4,声明式事务 1.1Spring的事务 事务管理在应用程序中起着至关重要的作用:它是一系列任务的组成工作单元,在这个工作单元中,所有的任务
2014-09-23 17:36:33 621
转载 MQ消息中间件
消息队列技术是分布式应用间交换信息的一种技术。消息队列可驻留在内存或磁盘上,队列存储消息直到它们被应用程序读走。通过消息队列,应用程序可独立地执行--它们不需要知道彼此的位置、或在继续执行前不需要等待接收程序接收此消息。消息中间件概述消息队列技术是分布式应用间交换信息的一种技术。消息队列可驻留在内存或磁盘上,队列存储消息直到它们被应用程序读走。通过消息队列,应用程序可独立地执行--它们不需
2014-09-23 17:35:27 2262
转载 学习:java设计模式—工厂模式
一、工厂模式主要是为创建对象提供过渡接口,以便将创建对象的具体过程屏蔽隔离起来,达到提高灵活性的目的。 工厂模式在《Java与模式》中分为三类:1)简单工厂模式(Simple Factory):不利于产生系列产品;2)工厂方法模式(Factory Method):又称为多形性工厂;3)抽象工厂模式(Abstract Factory):又称为工具箱,产生产品族,但
2014-09-23 17:34:43 378
原创 Java防止SQL注入
Java防止SQL注入SQL 注入简介: SQL注入是最常见的攻击方式之一,它不是利用操作系统或其它系统的漏洞来实现攻击的,而是程序员因为没有做好判断,被不法用户钻了SQL的空子,下面我们先来看下什么是SQL注入: 比如在一个登陆界面,要求用户输入用户名和密码: 用户名: ' or 1=1
2014-09-23 17:32:56 4093
原创 PreparedStatement和Statement的用法区别
Preparedstatement的预编译结果会被缓存,下次执行相同的sql语句是,数据库端不会再进行编译了。而直接用数据库的缓冲区,提高数据访问率。1、 PreparedStatement接口继承Statement, PreparedStatement 实例包含已编译的 SQL 语句,所以其执行速度要快于 Statement 对象。2、作为 Statement 的子类,Pre
2014-09-23 17:31:52 409
原创 NOSQL-Memcached
memcached是高性能的分布式内存缓存服务器。一般的使用目的是,通过缓存数据库查询结果,减少数据库访问次数,以提高动态Web应用的速度、提高可扩展性。memcached作为高速运行的分布式缓存服务器,具有以下的特点。· 协议简单· 基于libevent的事件处理· 内置内存存储方式· memcached不互相通信的分布式通信分布式
2014-09-23 17:30:44 638
原创 NOSQL-Mongodb
MongoDB使用了BSON这种结构来存储数据和网络数据交换。把这种格式转化成一文档这个概念(Document),因为BSON是schema-free的,所以在MongoDB中所对应的文档也有这个特征,这里的一个Document也可以理解成关系数据库中的一条记录(Record),只是这里的Document的变化更丰富一些,如Document可以嵌套。
2014-09-23 17:28:27 530
原创 Serializable的本质
java.io.Serializable的本质就是将内存的对象,以文本的形式保存到磁盘上,使用的时候再读出来,以减少应用程序的压力.有点类似与虚拟内存.在openJPA里,entity的时候,一般需要使用. 序列化的时候有以下几点需要注意. 1)先序列化,先读取(FIFO); 2)反序列化的时候,返回的都是Object,要自动转换类型; 3)用关键字transient标记的
2014-09-23 17:24:36 1472
原创 接口与抽象类的区别(待更新....)
根据本人的工作经验来讲,最重要的区别有3点: 1)概念的不同 接口更倾向与设计的使用;抽象类则倾向于实现 2)最明显的区别 抽象类可以提供部分方法的具体实现;接口只能声明方法,不能实现 3)最重要的区别 接口可以多继承(实现);抽象类只能单继承(实现) 接口概念 一个没有声明任何方法的接口叫做标识接口.
2014-09-23 17:22:53 418
转载 Iterator循环的用法
一般遍历list的时候,我们习惯下面的写法,但这种写法有缺陷,不能及时释放iterator的内存(?).Java代码 Iterator iterator = list.iterator(); while (iterator.hasNext()) { String str = iterator.next(); System.out.printl
2014-09-23 17:21:57 3810
原创 tomcat6.0下解决struts2.2中文乱码
本人的环境为 Eclipse3.6_javaee(helios) jdk6.0.21 网上有好多关于乱码的说明,其实从根本上解决这个问题,就是页面编码和容器编码的相关配置. 1)配置JSP头文件编码(总共3处) pageEncoding="UTF-8"%> 2)tomcat的编码,在节点加上下面属性 URIEncoding="UTF-
2014-09-23 17:21:51 606
原创 简单工厂模式
一 介绍 工厂模式有3种,1:简单工厂模式;2:工厂方法模式;3:抽象工厂模式 简单工厂(Simple Factory)模式,又叫做静态工厂方法(Static Factory Method)模式,简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例. 工厂模式里,一般分3个部分: 1)制造器(具体工厂):FruitGardener 2)抽象产品:Fr
2014-09-23 17:20:55 434
原创 Oracle --- 事务隔离级别(简介概述)
事务隔离程度越高,并发性越差、性能越低;事务隔离程度越低,并发性越强、性能越高。read uncommited:读未提交,允许脏读read commited:读提交,允许不可重复读,幻读repeatable read:可重复读,一个事务读取的数据不允许被其他事务读取。允许幻读(新增数据)serializable:序列化,最高隔离级别。系统中所有的事务都是一个接一个执行的。因此也就不
2014-09-23 17:19:29 745 2
转载 JDBC对事务的支持
JDBC对事务的支持 并不是所有的数据库都支持事务,即使支持事务的数据库也并非支持所有的事务隔离级别,你可以通过Connection# getMetaData()方法获取DatabaseMetaData对象,并通过该对象的supportsTransactions()、supportsTransactionIsolationLevel(int level)方法查看底层数据库的事务支持
2014-09-23 17:16:57 663
转载 理解ThreadLocal
ThreadLocal是什么 早在JDK 1.2的版本中就提供java.lang.ThreadLocal,ThreadLocal为解决多线程程序的并发问题提供了一种新的思路。使用这个工具类可以很简洁地编写出优美的多线程程序。 当使用ThreadLocal维护变量时,ThreadLocal为每个使用该变量的线程提供独立的变量副本,所以每一个线程都可以独立地改变自己的副本,而不会影
2014-09-23 17:16:13 424
arm课后习题答案
2011-12-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人