自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

白兔白又白

轻极客,技术控

  • 博客(46)
  • 收藏
  • 关注

原创 N皇后算法的思路是什么?

在Java中,由于对象在方法参数传递时是按引用传递的,所以可以使用传引用的方式进行回溯算法的实现。回溯算法的实现可以利用传值或传引用的方式,具体取决于编程语言和问题的要求。在实现中,可以使用一个一维数组来表示棋盘,数组的索引表示行数,数组的值表示该行皇后所在的列数。N皇后问题是经典的回溯算法问题,其目标是在一个NxN的棋盘上放置N个皇后,使得它们彼此之间不能互相攻击,即任意两个皇后都不在同一行、同一列或同一斜线上。回溯算法的本质是通过深度优先搜索来穷举所有可能的解空间,并通过剪枝等技巧来减少无效的搜索。

2023-08-11 11:12:58 119

原创 谈谈Spring与字节码生成技术

在面向切面编程中,Spring利用字节码生成技术创建代理对象,以在目标方法的前后添加额外的逻辑,实现日志记录、事务管理等横切关注点的统一处理。CGLIB(Code Generation Library)是一个基于ASM(Java字节码操控框架)的字节码生成库,它可以在运行时动态地生成目标类的子类作为代理类。CGLIB可以代理没有实现接口的类,它通过继承的方式来实现代理,并覆盖需要增强的方法。动态代理是指在运行时动态生成代理类的技术,它可以在不修改原始类的情况下,为其添加额外的行为。

2023-08-11 11:11:51 168

原创 SAP

•用于SAP云解决方案的SAP Cloud Application Studio(“Studio”)使SAP合作伙伴、经销商和客户能够适应和增强SAP云解决方案的解决能力。•所提供的开发工具是在基于Microsoft Visual Studio的集成开发环境(IDE)中提供的。使用studio,您可以开发、部署和测试特定的附加功能。此外,您还可以创建和集成新的业务内容、服务和用户界面,以提供完...

2019-01-14 15:27:58 183

原创 mybatis与hibernate不同

Mybatis和hibernate不同,它不完全是一个ORM框架,因为MyBatis需要程序员自己编写Sql语句,不过mybatis可以通过XML或注解方式灵活配置要运行的sql语句,并将java对象和sql语句映射生成最终执行的sql,最后将sql执行的结果再映射生成java对象。 Mybatis学习门槛低,简单易学,程序员直接编写原生态sql,可严格控制sql执行性能,灵活度高,非常适

2017-12-23 17:54:40 224

原创 mybaitsz中的主键返回

主键返回通过修改sql映射文件,可以将mysql自增主键返回:insertid="insertUser"parameterType="cn.me.mybatis.po.User">       将主键返回,需要再返回 -->       selectKeykeyProperty="id"order="AFTER"resultType="java.lang.Integer">

2017-12-23 17:46:16 202

原创 MyBatis小介绍与ibatis

MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis。 MyBatis是一个优秀的持久层框架,它对jdbc的操作数据库的过程进行封装,使开发者只需要关注 SQL 本身,而不需要花费精力去处理例如注册驱动、创建connection、创建statement

2017-12-22 23:14:45 368

原创 MQ消息队列的好处

它的优势是什么?异步有两个优势:1)对用户来说,比同步时更加快捷,用户体验非常好。(让用户以为自己抢到了,欺骗ing   )2)对系统访问压力来说,异步因为没有没有真正执行,不会造成某时刻对系统的访问压力剧增。而是放入队列,不一定慢啊,不会慢。然后慢慢的队列一条一条执行。可以顺利执行代码的耦合度是很强的,依赖性。代码耦合度,紧耦合,httpClient方式很强。依赖性。两个

2017-10-27 22:38:48 7760 1

原创 jQuery的事件

$().ready(function(){for(var i=0;i/*** 这样的一个事件的写法是可以叠加的*/// $("div").click(function(){// alert("aaaaa");// });/*** 利用unbind和bind技术声明事件可以阻止事件的叠加*/$("div").unbind("click");$("div

2017-10-20 23:54:16 142

原创 Redis与MemCache

主流缓存框架1,EHcache(二级缓存默认就是它 框架默认demo配置二级缓存就是它,但是单机版。)但是我们是用大型项目分布式集群的环境。2,MemCache分布式(统治缓存10年 非常之多的企业还在使用 缺点:1.支持只有string 没有数据类型 ) 2.完全基于内存。 (缓存为什么快呢?是因为基于内存,而不用去查询数据库 所以才快。内存特性: 服务器

2017-10-09 18:41:34 186

原创 常用前台系统获取后台系统数据方案

1)     直接查询数据库。(不使用)2)  js访问,jsonp跨域3)     前端系统的后台(java)调用后台接口(类似httpclient直接访问,模拟一个http请求)。4)     WebService方式访问 Apache CXF 它的特点是异构平台互相访问,但是封装过多,性能最低。Json替代webservice5)     RabbitMQ消息队列(两个系统之

2017-10-07 15:46:38 3554

原创 nginx高负载均衡服务器

1.1.1   简介Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP代理服务器。 Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,第一个公开版本0.1.0发布于2004年10月4日。其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资

2017-10-04 20:21:31 543

原创 图片上传的jsp-项目可借鉴-可基于自身调整样式

jQuery File Upload Demo<meta name="description" content="File Upload widget with multiple file selection, drag&drop support, progress bars, validation and preview images, audio and video for jQu

2017-10-02 15:00:25 548

原创 常见的分布式文件系统

常见的分布式文件系统有,GFS、HDFS、Lustre 、Ceph 、GridFS 、mogileFS、TFS、FastDFS等。各自适用于不同的领域。它们都不是系统级的分布式文件系统,而是应用级的分布式文件存储服务。Google学术论文,这是众多分布式文件系统的起源==================================Google File System

2017-10-01 23:00:46 361

原创 分页-应用第三方实现mybatis拦截器PageHelper

在对象声明后面的第一条的查询的sql语句进行拦截,拦截后实现对应方言的查询的分页语句。如果还要返回记录总数。(这里可以理解执行了两条sql语句。)还要执行一条的sql语句。总数sql结果封装pageInfo.total(这里总数 pageInfo是辅助类)。记录封装pageInfo.rows。在把pageInfo对象封装到PageHelper对象中。(内部将执行sql 封装到一个对象,

2017-09-30 16:59:52 1339

原创 VIM文本编辑器

lvi / vim是Unix / Linux上最常用的文本编辑器而且功能非常强大。l只有命令,没有菜单。插入命令定位命令删除命令

2017-09-22 23:18:57 146

原创 Linux的好习惯

善于查看manpage(manual)等帮助文档利用好Tab键掌握好一些快捷键•ctrl + c(停止当前进程)•history(查看命令历史)•ctrl + l(清屏,与clear命令作用相同)

2017-09-22 23:17:31 156

原创 关机/重启命令

shutdown系统关机 •-r 关机后立即重启•-h 关机后不重新启动halt 关机后关闭电源 reboot 重新启动

2017-09-22 23:16:10 184

原创 备份压缩命令

gzip 压缩(解压)文件或目录,压缩文件后缀为gz bzip2 压缩(解压)文件或目录,压缩文件后缀为bz2 tar 文件、目录打(解)包l命令格式:gzip[选项] 压缩(解压缩)的文件名•-d将压缩文件解压(decompress)•-l显示压缩文件的大小,未压缩文件的大小,压缩比(list)•-v显示文件名和压缩比(verbose)

2017-09-22 18:07:43 166

原创 linux查看进程常用命令

top 显示当前系统中耗费资源最多的进程ps 显示瞬间的进程状态 ps-ef进程的一个快照•-e /-A 显示所有进程,环境变量•-f 全格式•-a 显示所有用户的所有进程(包括其它用户)•-u 按用户名和启动时间的顺序来显示进程•-x 显示无控制终端的进程kill 杀死一个进程•kill -9 piddf 显示文件系统磁盘空

2017-09-22 18:06:31 347

原创 Linux目录结构

/ bin  (binaries)存放二进制可执行文件(bin在任何安装包c。)  sbin  (super user binaries)存放二进制可执行文件,超级用户才能访问。  etc (etcetera)存放系统配置文件   例如:环境变量,主机名。  usr  (unix shared resources)用于存放共享的系统资源   我们装软件都是装在usr目录

2017-09-22 00:49:20 131

原创 liunx基础操作

1.进入到用户根目录cd ~ 或 cd2.查看当前所在目录pwd3.进入到it 用户根目录cd ~it 4.返回到原来目录cd -5.返回到上一级目录cd ..6.查看it 用户根目录下的所有文件ls -la7.在根目录下创建一个it 的文件夹mkdir /it 8.在/it 目录下创建

2017-09-22 00:47:50 198

原创 什么是线程?

线程是进程内的执行单元。更小调度单元。广泛运用。分配进程给cpu内核运行。java线程可用的状态:*new(还没有开始工作,属于静态的。调用实例start启动方法后才正常被使用了)->线程进入*runnable状态(表示已准备好了,待执行状态。)->terminated(结束了。)->#申请锁,申请监听器。比如synchrsnized 拿锁有可能会被阻塞住。

2017-08-02 23:19:13 230

原创 函数

1.1.1. 普通方法定义函数function  函数名(形式参数...){    执行语句;    return 返回值;}函数是多条执行语句的封装体,只有被调用才会被运行。注意:调用有参数的函数,但没有给其传值,函数一样可以运行,或者调用没有参数的函数,给其传值,该函数也一样运行。说的简单点:只要写了函数名后面跟了一对小括号,该函数就会运行。那么传递的参数呢?

2017-06-18 18:58:28 170

原创 js数据类型转换规则

数值类型:转字符串, 直接转成对应值的字符串转布尔, 0 和 NaN转成false, 其他值转成true在需要时会自动的转成对应值的包装对象字符串:空字符串(""): 转数字为 0, 转布尔为 false 非空纯数字字符串("123"): 转数字为对应值的数值, 转布尔 true非空非数字字符串("abc"): 转数字为NaN, 转布尔是true在需要时会自

2017-06-18 18:28:10 285

转载 mapper写法

PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">select * from factory_cwhere 1=1 and STATE=#{state}

2017-05-29 22:00:20 357

原创 mybatis-jdbcType=VARCHAR

新增  oracle jdbc驱动 当这个值为null时,必须告诉它当前字段默认值的类型jdbcType=VARCHAR (VARCHAR是mybatis定义 固定写法,可以去查api。),无效的列类型: 1111; nested exception is java.sql.SQLException mysql不用写.告知为null时,让驱动知道是什么类型。有值不为null,就不用写。

2017-05-29 16:27:40 4566

原创 代码的开发规范

l  将静态资源之间放在webapps下;将动态资源需要验证权限放在WEB-INF/pages(安全)l  类文件放在src/main/java下;资源文件src/main/resources;web文件放在src/main/webapp下domain 存放所有实体文件POdao 存放所有dao的接口和实现类,业务接口必须继承BaseDao接口,业务的实现类必须继承BaseDaoImp

2017-05-29 15:59:08 200

原创 数据库设计的规范

l  数据库表和字段都大写l  表都要加业务后缀,例如_C客户表 _B基础表 _P权限表l  必须有主键,主键是表名去掉业务后缀,加_ID,大多表的主键使用UUIDl  字段多个单词时,全大写,用下划线隔开l  类型INT/LONG/DOUBLE/TIMESTAMP/CHAR/VARCHAR2尽量化在这几个类型中,这样数据库设计相当简单l  排序号定死名称ORDER_NOl

2017-05-29 15:58:18 193

原创 数据库设计基础原则

1)  表必须有主键2)  字段内容不能是其他的字段加工而成3)  行数据不能相同  现今业界主流数据库设计原则:反三范式1)  表不是必须有主键2)  字段存一些加工后的中间的结果,冗余设计3)  记录冗余 三范式追求的目标存储空间尽量小;反三范式追求的目标是查询速度。创建数据库设计时首先按三范式设计,然后局部优化。

2017-05-29 15:56:02 281

原创 实现批量删除(物理删除)

item-list.jsp中js代码text:'删除',iconCls:'icon-cancel',handler:function(){    var ids =getSelectionsIds();    if(ids.length== 0){        $.messager.alert('提示','未选中商品!');        return ;      

2017-05-25 01:09:03 1603

转载 XML

XML在不同的语言里解析方式都是一样的,只不过实现的语法不同而已。基本的解析方式有两种,一种叫SAX,另一种叫DOM。SAX是基于事件流的解析,DOM是基于XML文档树结构的解析。XML是一种数据格式,每一种数据格式都需要一个解析器将其中的信息解析出来为你所用,XML当然也不会例外。你可以用SAX或者DOM来构建这种解析器,当然首先要先确定你需要的数据在文档的什么位置。 验证器

2017-05-23 15:03:30 188

转载 hasNext与next方法

迭代器用于遍历集合的两个主要方法:boolean hasNext():判断集合是否还有元素可以遍历。E next():返回迭代的下一个元素遍历集合应遵循“先问后取”的方式,也就是说,应当在确定hasNext()方法的返回值为true的情况下再通过next()方法取元素。由此可以看出,使用迭代器遍历集合是通过boolean值驱动的,所以它更适合使用while循环来遍历。

2017-05-22 23:07:37 8106 1

转载 强制转型

. 强制转型在实际应用中,还可以通过强制转换将父类型变量转换为子类型变量,前提是该变量指向的对象确实是该子类类型。也可通过强制转换将变量转换为某种接口类型,前提是该变量指向的对象确实实现了该接口。如果在强制转换过程中出现违背上述两个前提,将会抛出ClassCastException。看如下代码所示:主管 emp = new 总经理();老师 teacher = (老师)

2017-05-21 21:18:15 293

转载 instanceof关键字

在强制转型中,为了避免出现ClassCastException,可以通过instanceof关键字判断某个引用指向的对象是否为指定类型。看如下代码所示:学校学生 e = new 学校校长();System.out.println(e instanceof 学校老师); // trueSystem.out.println(e instanceof 学校保安); // trueSy

2017-05-21 21:11:45 197

原创 Oracle创建用户与导入导出

// 创建表空间// ?1 表空间名称// ?2 表空间文件存放路径create tablespace ?1 datafile '?2' size 500m reuse autoextend on next 10m maxsize unlimited;// 创建用户// ?1 用户名// ?2 密码// ?3 表空间create user ?1 identi

2017-05-18 09:48:39 185

原创 navicat of mysql导入数据时 USING BTREE 错误解决办法

在导入mysql数据时报了这个错误。You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '今天在Navicat中运行SQL文件,想导入一些数据,结果爆了这个错误,导致某些表没有生成

2017-05-18 09:44:58 364

原创 经典sql语句大全

一、基础1、说明:创建数据库CREATE DATABASE database-name2、说明:删除数据库drop database dbname3、说明:备份sqlserver--- 创建 备份数据的 deviceUSE masterEXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_

2017-05-18 09:38:13 177

转载 集合框架总结2

Top1.1. Collectionjava提供了一种可以存数一组数据的数据结构,其提供了丰富的方法,在实际开发中往往比数组使用的广泛。这种数据结构成为集合:Collection。Collection是一个接口,其定义了集合的相关功能方法。1.1.1. addAll与containsAll方法集合也提供了批处理操作:addAll方法用于将给定

2017-05-15 01:26:45 236

转载 集合框架总结1

2 集合框架2.1. Collectionjava提供了一种可以存数一组数据的数据结构,其提供了丰富的方法,在实际开发中往往比数组使用的广泛。这种数据结构成为集合:Collection。Collection是一个接口,其定义了集合的相关功能方法。2.1.1. List和SetCollection派生出了两个子接口,一个是List另一个则是Set。

2017-05-15 01:06:41 263

转载 JAVA常用API小知识

Top API文档 字符串基本操作 1. API文档1.1. JDK API 1.1.1. 什么是 JDK APIAPI文档是我们用来了解JDK中提供的类库,我们可以先通过索引输入并找到我们需要了解的类,而后我们就可以方便的了解该类的作用,常量的作用,以及该类提供的所有方法的作用,以及方法的参数及返回值的含义。 1.1.2. JDK包结构JDK包是由sun开发的一组已经实现的类库,里面有非

2017-05-14 23:39:14 271

空空如也

空空如也

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

TA关注的人

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