随笔分类 - 编程语言-[Java]
摘要:前提: 1、新建Article表和增加模拟数据,脚本如下: 实现步骤,也是多对一的实现: 1、新建Article的类,也就是POJOs,与上面新建的article表一一对应,代码如下: 注意:文章的用户是怎么定义的,是直接定义的一个User对象,而不是int类型。 2、配置User.xml,这里要引
阅读全文
摘要:继续前一篇文章http://www.cnblogs.com/EasonJim/p/7050710.html所示的例子,返回的是单个实体,而接下来将进行列表的返回等操作: 一、查询列表 查询出列表,也就是返回List, 在这个例子中也就是List<User>,这种方式返回数据,需要在User.xml里
阅读全文
摘要:以下内容引用自http://www.yihaomen.com/article/java/304.htm,不过内容有修改: 继前一篇文章http://www.cnblogs.com/EasonJim/p/7049248.html,已经配置好MyBatis的环境,并且实现了一个简单的查询。请注意,这种方
阅读全文
MyBatis3错误:Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/log4j/Priority的问题解决
摘要:在使用Maven新建QuitStart类型项目时,引入了MyBatis3.2.0版本的JAR包之后,出现如下错误: 这个错误的意思是没有引入log4j的JAR包,解决方法是加入log4j的JAR包依赖,POM配置如下: 加入之后,再配置log4j的配置文件,这里命名为:log4j.propertie
阅读全文
摘要:一、准备工作: 0、新建QuitStart类型POM项目(即Application),Java Build Path为JDK1.8,Java Compiler为1.8,MySQL为5.5.38,数据库使用Test。MySQL驱动为5.1.38,MyBatis版本为3.4.4。由于不是Spring项目
阅读全文
摘要:MyBatis3教程: http://www.yihaomen.com/article/java/302.htm http://www.mybatis.org/mybatis-3/zh/index.html(官方标准配置文档) http://www.mybatis.org/spring/zh/ind
阅读全文
摘要:前提: 我的Eclipse版本如下: 比这个版本新或者旧都可以实现如下效果。 实现步骤: 在代码上显示虚线设置有如下方法: 1、如果不使用插件,Eclipse是不支持虚线的,只能是横条的点状,效果如下: 配置如下: 【Window】->【Preferences】->【General】->【Edito
阅读全文
摘要:一、背景 连接池简介: 连接池初始化时创建一定数量的连接,然后从连接池中重用连接,而不是每次创建一个新的。 数据库连接是一种关键的、有限的、昂贵的资源,这一点在多用户的网页应用程序中体现得尤为突出。对数据库连接的管理能显著影响到整个应用程序的伸缩性和健壮性,影响到程序的性能指标。数据库连接池正是针对
阅读全文
摘要:使用GtiHub的项目目录搭建第三方远程仓库,能免除使用服务器搭建Nexus私服,而且空间也是免费的。但是这种方式只适合小规模发布,毕竟搜索和版本控制是一个问题,如果需要更复杂的功能就只能转向Nexus这样的私服。 搭建步骤如下: 1、配置POM发布到本地目录,配置如下: 提示:url节点中,Lin
阅读全文
摘要:Maven配置项目使用本地仓库有以下方式实现: 1、类似本地仓库,但是属于本地依赖,比如某个JAR包是引用第三方的,直接放在了项目的lib文件夹,那么此时可以如下配置项目的POM: 说明:红色部分为项目的JAR包所在位置。 2、配置Maven的setting.xml文件的本地仓库地址,但是这个方式的
阅读全文
摘要:以下内容转自http://ifeve.com/amdahls-law/: 阿姆达尔定律可以用来计算处理器平行运算之后效率提升的能力。阿姆达尔定律因Gene Amdal 在1967年提出这个定律而得名。绝大多数使用并行或并发系统的开发者有一种并发或并行可能会带来提速的感觉,甚至不知道阿姆达尔定律。不管
阅读全文
摘要:以下内容转自http://ifeve.com/non-blocking-algorithms/: 在并发上下文中,非阻塞算法是一种允许线程在阻塞其他线程的情况下访问共享状态的算法。在绝大多数项目中,在算法中如果一个线程的挂起没有导致其它的线程挂起,我们就说这个算法是非阻塞的。 为了更好的理解阻塞算法
阅读全文
摘要:以下内容转自http://ifeve.com/anatomy-of-a-synchronizer/: 虽然许多同步器(如锁,信号量,阻塞队列等)功能上各不相同,但它们的内部设计上却差别不大。换句话说,它们内部的的基础部分是相同(或相似)的。了解这些基础部件能在设计同步器的时候给我们大大的帮助。这就是
阅读全文
摘要:以下内容转自http://ifeve.com/compare-and-swap/: CAS(Compare and swap)比较和替换是设计并发算法时用到的一种技术。简单来说,比较和替换是使用一个期望值和一个变量的当前值进行比较,如果当前变量的值与我们期望的值相等,就使用一个新值替换当前变量的值。
阅读全文
摘要:以下内容转自http://ifeve.com/thread-pools/: 线程池(Thread Pool)对于限制应用程序中同一时刻运行的线程数很有用。因为每启动一个新线程都会有相应的性能开销,每个线程都需要给栈分配一些内存等等。 我们可以把并发执行的任务传递给一个线程池,来替代为每个并发执行的任
阅读全文
摘要:以下内容转自http://ifeve.com/blocking-queues/: 阻塞队列与普通队列的区别在于,当队列是空的时,从队列中获取元素的操作将会被阻塞,或者当队列是满时,往队列里添加元素的操作会被阻塞。试图从空的阻塞队列中获取元素的线程将会被阻塞,直到其他的线程往空的队列插入新的元素。同样
阅读全文
摘要:以下内容转自http://ifeve.com/semaphore/: Semaphore(信号量) 是一个线程同步结构,用于在线程间传递信号,以避免出现信号丢失(译者注:下文会具体介绍),或者像锁一样用于保护一个关键区域。自从5.0开始,jdk在java.util.concurrent包里提供了Se
阅读全文
摘要:以下内容转自http://ifeve.com/reentrance-lockout/: 重入锁死与死锁和嵌套管程锁死非常相似。锁和读写锁两篇文章中都有涉及到重入锁死的问题。 当一个线程重新获取锁,读写锁或其他不可重入的同步器时,就可能发生重入锁死。可重入的意思是线程可以重复获得它已经持有的锁。Jav
阅读全文
摘要:以下内容转自http://ifeve.com/read-write-locks/: 相比Java中的锁(Locks in Java)里Lock实现,读写锁更复杂一些。假设你的程序中涉及到对一些共享资源的读和写操作,且写操作没有读操作那么频繁。在没有写操作的时候,两个线程同时读一个资源没有任何问题,所
阅读全文
摘要:一、以下是具体分析: 以下内容转自http://fgh2011.iteye.com/blog/1771649: 使用过LINUX的人都应该知道,在大多数LINUX发行版本里,内置或者通过软件源安装JDK的话,都是安装的OpenJDK,那么到底什么是OpenJDK,它与Sun JDK有什么关系和区别呢
阅读全文