`
禹爸爸
  • 浏览: 86420 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

Mybatis系列之实战篇(下)

阅读更多

Mybatis系列之实战篇(下)

实战总结

  • 将Mybatis和Spring配置文件独立开
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
	<property name="dataSource" ref="dataSource" />
	<!-- 自动扫描mapping.xml文件 -->
	<property name="mapperLocations" value="classpath:com/emerson/etao/mapping/**/*.xml"></property>
	<property name="configLocation" value="classpath:mybatis-config.xml"></property>
</bean>
  • 数据库连接信息单独存放,方便在多个配置文件中引用
  • 使用Mybatis接口式编程,只需要定义接口,不需要自己动手编写实现类
  • 在编写映射文件时,根元素名称空间一定要使用定义的接口的全限定名
  • 映射文件中的元素的id值,要和接口中定义的方法名称一一对应
  • 对数据的增、删、改、查操作,统一方法名称,不仅可以提取出超类,也可以统一映射文件中元素的命名规则,便于理解和维护
<select id="getById" parameterType="int" resultType=""></select>

<select id="getAll" resultType=""></select>

<insert id="insert" parameterType="" useGeneratedKeys="true" keyProperty=""></insert>

<update id="update" parameterType=""></update>

<delete id="delete" parameterType="int"></delete>
  • 在映射文件的select元素中,不要使用select *,尽可能将每个字段写出来,如果有些字段会出现在多个select元素中,可以将其提取出来
<sql id="selectColumns"></sql>

<sql id="insertColumns"></sql>

<select id="getById" parameterType="int" resultType="">
        SELECT
        <include refid="selectColumns"></include>
        FROM TABLENAME WHERE KEY_FIELD = #{id}
</select>
  • 能自动映射的,就不要动手编写resultMap
  • 在定义resultMap时,尽量不要使用嵌套查询,这样会带来“N+1”问题;使用嵌套结果代替嵌套查询
  • 映射文件中定义的resultMap,尽可能的复用,不要在多个映射文件中定义相同的resultMap,这样会给日后的调试和维护带来不必要的麻烦
  • 映射文件中每增加一个元素,都要对代码进行测元测试,发现问题及时修复;
  • 避免一次编写过多尤其是复杂的映射语句,因为这样一旦出现问题,会消耗很多时间来查找问题原因,而这些问题往往是由很低级的错误造成的

以上是个人拙见,供参考。

分享到:
评论

相关推荐

    springmybatis

    mybatis实战教程mybatis in action之一开发环境搭建 mybatis实战教程mybatis in action之二以接口的方式编程 mybatis实战教程mybatis in action之三实现数据的增删改查 mybatis实战教程mybatis in action之四实现...

    互联网轻量级SSM框架解密:Spring、Spring MVC、MyBatis源码深度剖析

    突破Java Web 研发瓶颈的束缚,选取Spring、SpringMVC 和MyBatis 框架中易于理解的版本,深入剖析了其中各个模块的实现,从代码中挖掘常用的设计模式,为读者理解Spring 系列框架的可扩展设计艺术提供了方法论和优秀...

    Spring3MVC+MyBatis+ExtJs3整合开发系列之四:角色管理模块

    在本篇博文中,我们将深入探讨“Spring3MVC+MyBatis+ExtJs3整合开发系列之四:角色管理模块”。这个主题涉及到三个关键的技术栈:Spring MVC作为后端MVC框架,MyBatis作为持久层解决方案,以及Ext Js 3作为前端UI库...

    Mybatis由浅入深 - 02基础CRUD

    这是Mybatis系列的第2篇,重实战,说人话,讲干活,全部原创,不抄袭,博文地址:https://blog.csdn.net/scm_2008/article/details/126574504 欢迎各位下载学习

    java,Javaweb开发,spring+springmvc+mybatis整合视频及maven使用及实战视频

    本篇将详细介绍 Java Web 开发的基础知识,包括 Java Web 的概念、常用框架(Spring、Spring MVC 和 MyBatis)以及构建工具 Maven 的使用。 ### Java Web 概念 Java Web 主要指通过 Java 技术来实现的 Web 应用...

    jee、spring、spring mvc、mybatis 学习(五)

    在本篇【jee、spring、spring mvc、mybatis 学习(五)】中,我们将深入探讨四个关键的Java企业级开发技术:Java EE(Java Enterprise Edition)、Spring框架、Spring MVC以及MyBatis。这些技术是现代Java Web应用...

    jee、spring、spring mvc、mybatis 学习(十)

    在本篇博客“JEE、Spring、Spring MVC、MyBatis 学习(十)”中,作者深入探讨了这四个关键的Java企业级开发技术,它们是构建现代Web应用程序的基础。下面将对这些技术进行详细阐述。 1. JEE(Java Enterprise ...

    【疯狂软件】Spring+mybaits企业实战

    在本篇关于《疯狂软件》系列图书的内容介绍中,我们关注的是以Spring框架和MyBatis持久层框架为核心的Java企业级应用实战。Spring框架是一个开源的Java平台,主要负责简化企业级应用开发,它能够提供企业服务的抽象...

    javaweb开发实战1200例第二卷源码

    在实战1200例中,读者可以找到各种场景下的应用实例,如用户认证与授权、数据库操作、文件上传下载、邮件发送、WebSocket通信、AJAX异步请求等。这些实例将帮助读者巩固理论知识,提升实际操作能力。 此外,书中还...

    JAVAWEB开发实战经典(李兴华)配套视频下载地址

    它包括了一系列的技术标准,如Servlet、JSP等,以及相关的API,用于构建动态网站或Web应用程序。 - **发展历程:** JavaWeb技术自1990年代末期开始发展,随着互联网技术的发展,经历了多个版本的更新和完善。 **2. ...

    基于Java的大众点评项目实战设计源码

    本篇文章将对基于Java的大众点评项目实战设计源码进行深度剖析,帮助读者理解并掌握相关技术要点。 首先,项目采用Java作为主要开发语言,体现了Java在大型复杂系统中的应用能力。Java的面向对象特性使得代码结构...

    Android代码-java-bible

    java-bible 这里记录了一些技术摘要,部分文章来自网络,本项目的目的力求分享精品技术干货,以Java为主。 如果你喜欢,star 便是,持续...MyBatis中文指南 Apache Shiro 用户指南 Spring Boot参考指南 Netty4 用户指南

    J2EE高级框架实战

    本篇内容将深入探讨J2EE高级框架的实战应用。 1. **Spring框架**:作为J2EE最广泛使用的框架之一,Spring提供了一个全面的应用开发框架,包括依赖注入、AOP(面向切面编程)、MVC(模型-视图-控制器)和数据访问。...

    SpringBoot与Shiro整合-权限管理实战视频+源码

    4. **自动配置Spring**:Spring Boot基于Spring框架进行了一定程度的封装,提供了一系列约定优于配置的设置,让Spring应用变得更加简单易用。 5. **应用监控**:提供了对应用状态的实时监控功能。 #### 二、Apache ...

    一个很有用的sturts实战项目

    通过这个实战项目,开发者可以学习到如何将 Struts 与 JDBC、Hibernate 或 MyBatis 等持久层框架集成,处理表单数据,实现动态导航,以及使用 AJAX 进行异步通信等。同时,也可以提升对 MVC 设计模式的理解,增强...

    [轻量级Java_EE企业应用实战

    根据提供的标题、描述和标签,我们可以推断出这篇文章主要探讨的是“轻量级Java EE企业应用实战”的相关内容。虽然给出的部分内容仅为一个重复的链接,我们依然可以从标题和描述出发,构建一系列与轻量级Java EE企业...

    24.1 SpringCloud电商实战2

    在本篇中,我们将深入探讨"24.1 SpringCloud电商实战2"的主题,这是对SpringCloud电商项目系列的延续,旨在提供一个基于Spring Cloud的实际应用案例。在上一部分"24.1 SpringCloud电商实战1"中,我们可能已经构建了...

    GameStore.zip

    本篇文章将深入探讨如何利用Spring、SpringMVC、MyBatis三大主流Java框架,结合MySQL数据库,构建一个名为“GameStore”的游戏商店系统。该系统涵盖了游戏的上架、下架、价格调整、图片管理以及客户端的预览、购买和...

    从0开始-大数据技术学习思路.docx

    推荐阅读《Spring 实战(第 4 版)》、《精通 SpringMVC(第四版)》、《MyBatis 从入门到精通》和《Spring Boot 编程思想(核心篇)》。 6. **分布式服务**:了解 Linux 基础,Maven 构建工具,以及 Apache Dubbo ...

    java版商城源码下载-tech_demo:技术演示

    《JUnit5学习》系列旨在通过实战提升SpringBoot环境下的单元测试技能,一共八篇文章,链接如下: MyBatis学习(初级版) Spring领域 Spring基础 Spring扩展实战专题 畅游Spring源码世界 SpringBoot基础 SpringBoot...

Global site tag (gtag.js) - Google Analytics