自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

makerule的博客

码农天地

  • 博客(39)
  • 资源 (1)
  • 收藏
  • 关注

原创 oracle简单分页

增加十几条数据就能用select * from   (select a.*,rownum row_num from      (select * from custom t order by t.id desc) a   ) b where b.row_num between 1 and 10

2017-05-08 23:01:29 522

原创 高并发解决方案

说到高并发,首先,要明白什么是高并发。高并发就是项目在某个时段有很多用户访问,而造成的系统负载很大。如何解决高并发的问题呢?首先,要优化JDBC的连接问题,就需要使用连接池。使用了连接池之后,项目的性能会有很大的提高。接着,就需要使用缓存技术,将一些不重要的信息,比如论坛访问量等作为缓存放到内存里。这样的话,用户可以不通过数据库就可以访问到缓存里的信息,极大的节省开销,可以大量减少与数据库的交互,

2017-04-17 00:40:16 629

原创 Mybatis <foreach>标签用法

标签有循环的功能,可以用来生成有规律的SQL语句,主要属性有:item:表示集合每一个元素进行迭代时的别名index:表示在迭代过程中,每次迭代到的位置open:表示该语句已什么开始separator:表示每次迭代之间以什么符号作为分隔close:表示该语句已什么结束collection:需要迭代的变量  SELECT *  FROM POST P  WHE

2017-03-27 22:29:28 649

原创 mybatis中#与$的区别

MyBatis/Ibatis中#和$的区别1. #将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号。如:order by #user_id#,如果传入的值是111,那么解析成sql时的值为order by "111", 如果传入的值是id,则解析成的sql为order by "id".2. $将传入的数据直接显示生成在sql中。如:order by $user_id

2017-03-27 22:26:34 274

转载 ArrayList、Vector、HashMap、HashSet的默认初始容量、加载因子、扩容增量

这里要讨论这些常用的默认初始容量和扩容的原因是:当底层实现涉及到扩容时,容器或重新分配一段更大的连续内存(如果是离散分配则不需要重新分配,离散分配都是插入新元素时动态分配内存),要将容器原来的数据全部复制到新的内存上,这无疑使效率大大降低。加载因子的系数小于等于1,意指  即当 元素个数 超过 容量长度*加载因子的系数 时,进行扩容。另外,扩容也是有默认的倍数的,不同的容器扩容情况不同

2017-03-27 22:22:00 343

原创 ArrayList详细描述

ArrayList和Vector都是使用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,它们都允许直接按序号索引元素,但是插入元素要涉及数组元素移动等内存操作,所以索引数据快而插入数据慢,Vector由于使用了synchronized方法(线程安全),通常性能上较ArrayList差,而LinkedList使用双向链表实现存储,按序号索引数据需要进行前向或后向遍历,但是插入数据

2017-03-27 22:18:15 431

原创 JavaScript和jQuery遍历元素

for(){}遍历数组 var arr = new Array(13.5,3,4,5,6);for(var i=0;i arr[i] = arr[i]/2.0;}alert(arr); //--> for in循环遍历数组var xvar mycars = new Array()mycars[0] = "Saab"myca

2017-03-27 22:06:06 271

原创 HTTP协议原理

HTTP(HyperText Transfer Protocol)是一套计算机通过网络进行通信的规则,HTTP客户能够从HTTP服务器(Web服务器)请求信息和服务,HTTP目前协议的版本是1.1,是一种无状态的协议,无状态是指Web浏览器和Web服务器之间不需要建立持久的连接,这意味着当一个客户端向服务器端发出请求,然后Web服务器返回响应(response),连接就被关闭了,在服务器端不保留连

2017-03-27 21:46:25 257

原创 Spring AOP编程简单介绍

AOP面向项目中的共性,比如事物映射、日志管理、针对共性处理。

2017-03-26 20:55:14 297

原创 Spring的注解方式

@Controller:标注一个控制器组件类。@Service:标注一个业务逻辑组件类。@Repository:标注一个DAO组件类。@RequestMapping:是一个用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。@Resource:可以用来装配bean. 都可以写在字段上,或写在setter方法上。默认按照名称进行

2017-03-26 20:11:12 389

原创 Struts和Spring MVC对比

1、实现机制struts2框架是类级别的拦截,每次来了请求就创建一个controller中对应的Action,然后调用setter getter方法把request中的数据注入 。struts2实际上是通过setter getter方法与request打交道的。struts2中,一个Action对象对应一个request上下文。spring mvc不同,spring mvc是方法级别的拦截,拦

2017-03-26 20:02:27 470

原创 intellij idea使用心得

最近项目使用了IntelliJ IDEA和Git组合,老实说,习惯了MyEclipse和SVN的人很不习惯。但是,经过了一段时间的使用,还是觉得这个工具也有很多好处。别的先不说了,就说说我一点心得体会吧。项目下的xml 将所有JAR包打到项目运行的lib里。项目下的iml 运行IDEA所需要加载的JAR包。项目的构建一般是通过Maven。项目的代码通过Git来管理。

2017-03-26 19:32:58 366

原创 MYSQL中LIMIT用法

limit是mysql的语法select * from table limit m,n其中m是指记录开始的index,从0开始,表示第一条记录n是指从第m+1条开始,取n条。select * from tablename limit 2,4即取出第3条至第6条,4条记录

2017-03-26 19:31:05 369

原创 Git使用方法

最近项目用到了Git,开始,觉得非常难用,后来,也就习惯了。现在,简单概括下Git的常用操作吧,后续的话我会继续补充的。1、clone:代码的检出,使用Git克隆,可以使用图形化界面,也可以使用命令。2、pull:使用这个命令,可能用SVN的人不太习惯,但可以放心,你选择单个文件,或者这个项目来Pull都是没有关系的,如果有冲突,会提示合并代码,你可以从对比框中看到两边的代码情况,是将代码

2017-03-26 19:27:36 448

转载 Java的应用缓存cache如何入门

Java的应用缓存cache入门:java常用的缓存有:ehcache, oscache,jcache,这些cache都是单机的,即存在本机的内存中,另外分布式的cache我用过memcache,它被独立部署在一台服务器上,可以实现多个客户端共用缓存。一般用到缓存的场景:在处理并发请求,需要及时响应的。加快系统响应速度。举个例子:比如购物网站有  售卖物品的排行榜,这种数据都是由数据库中N多表

2016-08-28 00:41:13 738

转载 Java如何处理高并发

你指的高并发量大概有多少?几点需要注意:尽量使用缓存,包括用户缓存,信息缓存等,多花点内存来做缓存,可以大量减少与数据库的交互,提高性能。用jprofiler等工具找出性能瓶颈,减少额外的开销。优化数据库查询语句,减少直接使用hibernate等工具的直接生成语句(仅耗时较长的查询做优化)。优化数据库结构,多做索引,提高查询效率。统计的功能尽量做缓存,或按每天一统计或定时统

2016-08-28 00:40:26 521

转载 什么是死锁?如何分析和避免死锁?

死锁是指两个以上的线程永远阻塞的情况,这种情况产生至少需要两个以上的线程和两个以上的资源。分析死锁,我们需要查看Java应用程序的线程转储。我们需要找出那些状态为BLOCKED的线程和他们等待的资源。每个资源都有一个唯一的id,用这个id我们可以找出哪些线程已经拥有了它的对象锁。避免嵌套锁,只在需要的地方使用锁和避免无限期等待是避免死锁的通常办法。

2016-08-28 00:36:19 1090

原创 Java常用面试题

1、面向对象的特征有哪些方面   1.抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。2.继承:继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类继承

2016-08-27 23:41:27 1172

转载 struts2获取request、session、application的方式

struts2获取request、session、application的方式//获取map类型的request、session、applicationpublic class LoginAction1 extendsActionSupport{private Map request;private Map session;private Map application

2016-03-04 11:36:32 261

转载 struts2怎么获取request

获得request对象有三种方式:  方式一:aware接口注入,即实现ServletRequestAware接口(此方式最为麻烦)  public class Demo2ServletAction extends ActionSupport implements ServletRequestAware{    private HttpServletRequest request;

2016-03-04 11:34:28 207

原创 常用的jquery语句

var test = $("input[name=test]").val();

2016-01-22 16:55:59 303

转载 线程安全与线程不安全的区别

线程安全就是多线程访问时,采用了加锁机制,当一个线程访问该类的某个数据时,进行保护,其他线程不能进行访问直到该线程读取完,其他线程才可使用。不会出现数据不一致或者数据污染。线程不安全就是不提供数据访问保护,有可能出现多个线程先后更改数据造成所得到的数据是脏数据。

2016-01-22 16:48:02 266

转载 Spring事务配置的五种方式

前段时间对Spring的事务配置做了比较深入的研究,在此之间对Spring的事务配置虽说也配置过,但是一直没有一个清楚的认识。通过这次的学习发觉Spring的事务配置只要把思路理清,还是比较好掌握的。总结如下:Spring配置文件中关于事务配置总是由三个组成部分,分别是DataSource、TransactionManager和代理机制这三部分,无论哪种配置方式,一般变化的只是代理

2016-01-22 16:46:28 249

转载 java事务处理

Java的事务处理,如果对数据库进行多次操作,每一次的执行或步骤都是一个事务.如果数据库操作在某一步没有执行或出现异常而导致事务失败,这样有的事务被执行有的就没有被执行,从而就有了事务的回滚,取消先前的操作.....Java中使用事务处理,首先要求数据库支持事务。如使用MySQL的事务功能,就要求MySQL的表类型为Innodb才支持事务。否则,在Java程序中做了commit或rollbac

2016-01-22 16:43:25 236

转载 JAVA事务的概念

一、什么是事务   事务是访问数据库的一个操作序列,数据库应用系统通过事务集来完成对数据库的存取。事务的正确执行使得数据库从一种状态转换成另一种状态。  事务必须服从ISO/IEC所制定的ACID原则。ACID是原子性(atomicity)、一致性(consistency)、隔离性(isolation)和持久性(durability)的缩写事务必须服从ISO/IEC所制定的ACID原则

2016-01-22 16:41:45 222

转载 Java中的事务处理

介绍在Java中进行事务处理的方法,通过实例分别讲述了如何采用JavaBean、Ejb组件实现J2EE应用服务器支持的JDBC事务、JTA(Java Transaction API)事务Java中的事务处理  一般情况下,J2EE应用服务器支持JDBC事务、JTA(Java Transaction API)事务、容器管理事务。一般情况下,最好不要在程序中同时使用上述三种事务类型,比如在

2016-01-22 16:38:39 253

转载 MYSQL 表级锁 行级锁 页面锁区别

myisam存储引擎默认是表级锁innodb存储引擎默认是行级锁DBD存储引擎默认是页面锁 表级锁:开销小,加锁快;不会出现死锁;锁定粒度大,发出锁冲突的概率最高,并发度最低。行级锁:开锁大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最低,并发度也最高。页面锁:开销和加锁时间界于表锁和行锁之间;会出现死锁;锁定粒度界于表锁和行锁之间,并发度一般。 从上述

2016-01-22 16:36:02 1356

转载 实现线程同步的方法

同步的实现方面有两种,分别是synchronized,wait与notify wait():使一个线程处于等待状态,并且释放所持有的对象的lock。sleep():使一个正在运行的线程处于睡眠状态,是一个静态方法,调用此方法要捕捉InterruptedException异常。notify():唤醒一个处于等待状态的线程,注意的是在调用此方法的时候,并不能确切的唤醒某一个等待状态的线程,而是

2016-01-22 16:28:02 272

转载 hibernate缓存

Hibernate的缓存包括Session的缓存和SessionFactory的缓存,其中SessionFactory的缓存又可以分为两类:内置缓存和外置缓存。Session的缓存是内置的,不能被卸载,也被称为Hibernate的第一级缓存。SessionFactory的内置缓存和Session的缓存在实现方式上比较相似,前者是SessionFactory对象的一些集合属性包含的数

2016-01-22 16:25:43 302

转载 hibernate懒加载

什么是hibernate懒加载?所谓懒加载(lazy)就是延时加载,延迟加载。什么时候用懒加载呢?只能回答要用懒加载的时候就用懒加载。为什么要用懒加载呢?就是当我们要访问的数据量过大时,明显用缓存不太合适,因为内存容量有限,为了减少并发量,减少系统资源的消耗,我们让数据在需要的时候才进行加载,这时我们就用到了懒加载。首先说下子什么是延迟加载:延迟加载是一种机制,主要是解决不必要的查

2016-01-22 16:19:52 607

转载 面向对象的特征有哪些方面

抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。继承:继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类继承。新类继承了原始类的特性,新类称为原始类的派生

2015-11-25 16:14:15 278

转载 什么是控制反转/依赖注入?

控制反转(IoC=Inversion of Control)IoC,用白话来讲,就是由容器控制程序之间的(依赖)关系,而非传统实现中,由程序代码直接操控。这也就是所谓“控制反转”的概念所在:(依赖)控制权由应用代码中转到了外部容器,控制权的转移,是所谓反转。    IoC也称为好莱坞原则(Hollywood Principle):“Don’t call us, we’ll call y

2015-11-25 16:13:34 2263

转载 spring依赖注入的3种实现方式

在讲解依赖注入的3种实现方式之前,这里先澄清一下依赖注入的意义:让组件依赖于抽象,当组件要与其他实际对象发生依赖关系时,通过抽象来注入依赖的实际对象。依赖注入的3种实现方式分别是:接口注入(interface injection)、Set注入(setter injection)和构造注入(constructor injection)。接下来笔者还将主要通过举例的方式,把依赖注入的3种实现方

2015-11-25 16:12:40 576

转载 Struts1与Struts2的区别

1) 在Action实现类方面的对比:Struts 1要求Action类继承一个抽象基类;Struts 1的一个具体问题是使用抽象类编程而不是接口。Struts 2 Action类可以实现一个Action接口,也可以实现其他接口,使可选和定制的服务成为可能。Struts 2提供一个ActionSupport基类去实现常用的接口。即使Action接口不是必须实现的,只有一个包含execute方法的P

2015-11-25 16:11:41 210

转载 什么是MVC

MVC(Model/View/Controller)模式是国外用得比较多的一种设计模式,好象最早是在Smaltalk中出现。MVC包括三类对象。Model是应用对象,View是它在屏幕上的表示,Controller定义用户界面对用户输入的响应方式。模型-视图-控制器(MVC)是80年代Smalltalk-80出现的一种软件设计模式,现在已经被广泛的使用。 1、模型(Model)

2015-11-25 16:10:53 282

转载 重写和重载的区别

重写是子类的方法覆盖父类的方法,要求方法名和参数都相同。重载是在同一个类中的两个或两个以上的方法,拥有相同的方法名,但是参数却不相同,方法体也不相同,最常见的重载的例子就是类的构造函数,可以参考API帮助文档看看类的构造方法。

2015-11-25 16:09:38 246

转载 封装、继承、多态

一、封装:  封装是实现面向对象程序设计的第一步,封装就是将数据或函数等集合在一个个的单元中(我们称之为类)。被封装的对象通常被称为抽象数据类型。封装的意义:  封装的意义在于保护或者防止代码(数据)被我们无意中破坏。在面向对象程序设计中数据被看作是一个中心的元素并且和使用它的函数结合的很密切,从而保护它不被其它的函数意外的修改。  封装提供了一个有效的途径来保护数

2015-11-25 16:08:49 270

转载 Java容器类List、ArrayList、Vector及map、HashTable、HashMap的区别与用法

ArrayList 和Vector是采用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,都允许直接序号索引元素,但是插入数据要设计到数组元素移动等内存操作,所以索引数据快插入数据慢,Vector由于使用了synchronized方法(线程安全)所以性能上比ArrayList要差,LinkedList使用双向链表实现存储,按序号索引数据需要进行向前或向后遍历,但是插入数据时只需要

2015-11-25 16:07:33 310

原创 个人觉得 还是想在这里写博客

写吧,那就专业一点,从现在开始。

2015-11-23 23:07:10 213

《jQuery EasyUI开发指南》书籍源码

一个基于jQuery EasyUI的权限系统 后台管理系统

2016-04-29

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除