`
文章列表
ibatis实战之使用内联参数--用$做占位符 ----------     使用内联参数的另一种方式就是使用替代($)语法,它可以用来把值直接插入到SQL语句之中(在SQL语句被转变为参数化语句之前)。但是使用这种方式时要非常小心,因为它可能使你暴露给SQL注入,另外过度使用还可能造成性能问题。 以下是一种在ibatis中处理LIKE运算符的方法示例:   <select id="getByLikeCity" resultClass="Account"> select accountId, username, p ...
ibatis实战之使用内联参数--用#做占位符 ----------   内联参数就是一种在已映射语句中添加查询条件的简单方式,你可以使用两个不同的方法来设置内联参数。 第一个方法是使用散列(#)符号。以下的例子就使用#符号传递进一个 ...
利于ThreadLocal模式管理Session ----------   如果我们想在service层控制事务,那么我们在service层,dao层都需要访问session,那我们如何才能让service与dao访问同一个session呢?如果不用传参的形式传递session。我们以hibernate为例,其实hibernate已经为我们提供了支持,我们只需要在hibernate.cfg.xml中配置一项即可,如:   <!-- session通过线程局部传播 --> <property name="hibernate.current_sessio ...
maven3实战之坐标和依赖(最佳实践之优化依赖) ----------     在软件开发过程中,程序员会通过重构等方式不断地优化自己的代码,使其变得更简洁、更灵活。同理,程序员也应该能够对maven项目的依赖了然于胸,并对其进行优 ...
hibernate和ibatis的区别(转载) ---------- 相对Hibernate和“一站式”ORM解决方案而言,ibatis是一种“半自动化”的ORM实现。所谓“半自动”,可能理解上有点生涩。纵观目前主流的ORM,无论Hibernate还是Apache OJB,都对数据库结构提供了较为完整的封装,提供了从POJO到数据库表的全套映射机制。程序员往往只需定义好了POJO到数据库表的映射关系,即可通过Hibernate或者OJB提供的方法完成持久层操作。程序员甚至不需要对SQL的熟练掌握,Hibernate/OJB会根据制定的存储逻辑,自动生成对应的SQL并调用JDBC接口加以执 ...
maven3实战之坐标和依赖(最佳实践之归类依赖) ----------   假如有个项目有很多关于SpringFramework的依赖,它们分别是org.springframework:spring-core:2.5.6、org.springframework:spring-bean:2.5.6、org.springframework:spring-context:2.5.6,它们是来自同一项目的不同模块。因此,所有这些依赖的版本会一起升级。因为它们版本是相同的,所以应该在一个唯一的地方定义版本,并且在dependency声明中引用这一版本。这样,在升级时只需要修改一处即可,例: ...
maven3实战之坐标和依赖(最佳实践之排除依赖) ----------   传递性依赖会给项目隐式地引入很多依赖,这极大地简化了项目依赖的管理。但是有些时候这种特性也会带来问题。例如,当前项目有一个第三方依赖,而这个第三方依 ...
maven3实战之坐标和依赖(可选依赖) ---------- 假设有这样一个依赖关系,项目A依赖于项目B,项目B依赖于项目X和Y,B对于X和Y的依赖都是可选依赖:A-->B,B-->X(可选),B-->Y(可选)。根据传递性依赖的定义,如果所有这三个依赖的范围都是compile,那么X,Y就是A的compile范围传递性依赖。然而,由于这里X,Y是可选依赖,依赖将不会得以传递。换句话说,X,Y将不会对A有任何影响。 为什么要使用可选依赖这一特性呢?可能项目B实现了两个特性,其中的特性一依赖于X,特性二依赖于Y,而且这两个特性是互斥的,用户不可能同时使用两个特性。比 ...
maven3实战之坐标和依赖(依赖调解) ----------- maven引入的传递性依赖机制,一方面大大简化和方便了依赖声明,另一方面,大部分情况下我们只需要关心项目的直接依赖是什么,而不用考虑这些直接依赖会引入什么传递性依赖。但有时候,当传递性依赖造成问题的时候,我们就需要清楚地知道该传递性依赖是从哪条依赖路径引入的。   例如,项目A有这样的依赖关系 : A-->B-->C-->X(1.0)、A-->D-->X(2.0),X是A的传递性依赖,但是两条依赖路径上有两个版本的X,那么哪个X会被maven解析使用呢?两个版本都被解析显然是不对的,因为 ...
maven3实战之坐标和依赖(传递性依赖) ----------   1.何为传递性依赖 假如有一个account-email项目,该项目有一个org.springframework:spring-core:2.5.6的依赖,而实际上spring-core也有它自己的依赖,我们可以直接访问位于中央仓库的该构件的POM: http://repo1.maven.org/maven2/org/springframework/spring-core/2.5.6/spring-core-2.5.6.pom。该文件包含了一个commons-logging依赖。该依赖没有声明依赖范围,那么其依赖范围就 ...
maven3实战之坐标和依赖(依赖范围) ---------- maven在编译项目主代码的时候需要使用一套classpath。假如,在编译项目主代码的时候需要用到spring-core,该文件以依赖的方式被引入到classpath中。其次,maven在编译和执行测试代码的时候会使用另外一套classpath。如:JUnit就是一个很好的例子,该文件也以依赖的方式引入到测试使用的classpath中,不同的是这里的依赖范围是test。最后,实际运行maven项目的时候,又会使用一套classpath。 依赖范围就是用来控制依赖与这三种classpath(编译classpath,测试c ...
maven3实战之坐标和依赖(依赖的配置) ---------- 依赖会有基本的groupId,artifactId和version等元素组成。其实一个依赖声明可以包含如下的一些元素:   <project> ... <dependencies> <dependency> <groupId>...</groupId> <artifactId>...</artifactId> ...
maven3实战之坐标和依赖(坐标详解) ---------- maven坐标为各种构件引入了秩序,任何一个构件都必须明确定义自己的坐标,而一组maven坐标是通过一些元素定义的,它们是groupId,artifactId,version,packaging,chassifier。先看一组坐标定义,如下:   <groupId>org.sonatype.nexus</groupId> <artifactId>nexus-indexer</artifactId> <version>2.0.0</versi ...
maven3实战之坐标和依赖(何为maven坐标) ----------   maven的世界中拥有数量非常巨大的构件,也就是平时用的一些jar,war等文件。在maven为这些构件引入坐标概念之前,我们无法使用任何一种方式来唯一标识所有这些构件。 maven定义了这样一组规则:世界上任何一个构件都可以使用maven坐标唯一标识,maven坐标的元素包括groupId,artifactId,version,packaging,classifier。现在,只要我们提供正确的坐标元素,maven就能找到对应的构件。比如说,当需要使用java5平台上TestNG的5.8版本时,就告诉maven ...
maven3实战之maven使用入门(使用archetype生成项目骨架) ----------   maven提供了archetype以帮助我们快速勾勒出项目骨架。以Hello World为例,我们使用maven archetype来创建该项目的骨架。   如果是maven3,简单地运行: mvn archetype:generate 如果是maven2,最好运行如下命令: mvn org.apache.maven.plugins:maven-archetype-plugin:2.0-alpha-5:generate   很多资料会让你直接使用更为简单的mvn archet ...
Global site tag (gtag.js) - Google Analytics