mybatis 快速开发

  在应用开发过程中,单表操作永远占据我们工作的一部分,初略估计我觉得大概应该占到40%或者更多,这些操作千篇一律,简单而且繁琐,DB增删字段,对于mapper.xml要做大量的修改,稍微不慎,bug百出。解决了这个问题我觉得工作效率会提升很多,因为以前我很厌烦数据库增删字段,然而现在这个问题已经不复存在,因为增删字段只需要修改同步增删实体类字段而已。

  项目业务功能大概分Controller,service,serviceImpl,dao,mapper,entity,model这些层来处理,一般情况下通过mybatis generator生成dao,mapper,entity其中mapper已经写好了大量的配置文件,这些东西增删一个字段要修改好多地方,也就是说不动则已一动则很麻烦。而且不同工程师创建的service名不能知其意,往往同一功能被多人开发。

  现在通过生成Controller之外的所有层,且生成的文件够干净,dao通过集成通用BaseDao<T>来扩展dao功能,service通过继承通用IService<T>来扩展service功能,让生成的类天生带有常用的功能,其他的和以前一样。

  这样针对所有单表操作的功能实现都能得到封装,当我们使用的时候不用写Service层及以下层相关代码。但是事务问题不好处理,不过我们可以事务上移到controller层,这样做我不觉得有啥缺点,同时能够满足所有的要求。

  相对mybatis依赖较少

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.young4j</groupId>
  <artifactId>my_mybatis</artifactId>
  <version>1.0.0-SNAPSHOT</version>
  <packaging>war</packaging>
  <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <spring.version>4.2.5.RELEASE</spring.version>
        <junit.version>4.12</junit.version>
        <druid.version>1.1.0</druid.version>
        <fastjson.version>1.2.8</fastjson.version>
        <mybaitsplus.version>2.1-gamma</mybaitsplus.version>
        <mysql.version>5.1.38</mysql.version>
        <log4j.version>1.2.17</log4j.version>
        <slf4j.version>1.7.19</slf4j.version>
        <aspectjweaver.version>1.8.8</aspectjweaver.version>
        <fileupload.version>1.3.1</fileupload.version>
        <velocity.version>1.7</velocity.version>
        <jstl.version>1.2</jstl.version>
    </properties>
  <dependencies>
        <!-- JUnit -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>${junit.version}</version>
            <scope>test</scope>
        </dependency>

        <!-- Spring -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>${spring.version}</version>
            <type>jar</type>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>${spring.version}</version>
            <type>jar</type>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context-support</artifactId>
            <version>${spring.version}</version>
            <type>jar</type>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-tx</artifactId>
            <version>${spring.version}</version>
            <type>jar</type>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-aop</artifactId>
            <version>${spring.version}</version>
            <type>jar</type>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
            <version>${spring.version}</version>
            <type>jar</type>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>${spring.version}</version>
            <type>jar</type>
            <scope>compile</scope>
        </dependency>

        <!-- Spring MVC -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
            <version>${spring.version}</version>
            <type>jar</type>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>${spring.version}</version>
            <type>jar</type>
            <scope>compile</scope>
        </dependency>

        <!-- AOP -->
        <dependency>
            <groupId>org.aspectj</groupId>
            <artifactId>aspectjweaver</artifactId>
            <version>${aspectjweaver.version}</version>
        </dependency>

        <!-- FileUpload -->
        <dependency>
            <groupId>commons-fileupload</groupId>
            <artifactId>commons-fileupload</artifactId>
            <version>${fileupload.version}</version>
        </dependency>

        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
            <version>${jstl.version}</version>
        </dependency>

        <!-- Mybatis-Plus -->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus</artifactId>
            <version>${mybaitsplus.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.velocity</groupId>
            <artifactId>velocity</artifactId>
            <version>${velocity.version}</version>
        </dependency>
        <!-- Mysql -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>${mysql.version}</version>
        </dependency>

        <!-- Druid -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>${druid.version}</version>
        </dependency>

        <!-- FastJson -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>${fastjson.version}</version>
        </dependency>

        <!-- Log -->
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>${log4j.version}</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>${slf4j.version}</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
            <version>${slf4j.version}</version>
        </dependency>
    </dependencies>

    <build>
        <finalName>my_mybatis</finalName>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

分页就是如此简单

@RequestMapping("/testDb")
    public Object testDb(Integer id){
        StringBuffer sb = new StringBuffer();

        Lables lable = lablesService.selectById(id);
        log.info("selectById" + lable.toString());
        sb.append(lable.toString());

        List<Lables> lables =lablesService.selectList(new EntityWrapper<Lables>());
        log.info("selectBatchIds" + lables.toString());
        sb.append(lables);

        Page<Lables> page = lablesService.selectPage(new Page<Lables>(1,10),new EntityWrapper<Lables>());
        List<Lables> records = page.getRecords();
        int pageCount = lablesService.selectCount(new EntityWrapper<Lables>());
        log.info("records" + records.toString());
        log.info("selectPage" + page.toString());
        log.info("selectCount" + pageCount);
        sb.append(page).append(pageCount).append(records);
        return sb.toString();
    }
import com.young4j.entity.Area;
import com.baomidou.mybatisplus.mapper.BaseMapper;

/**
 * <p>
  * 区 Mapper 接口
 * </p>
 *
 * @author yangfei
 * @since 2017-09-08
 */
public interface AreaDao extends BaseMapper<Area> {

}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.young4j.dao.AreaDao">

</mapper>
package com.young4j.service;

import com.young4j.entity.Area;
import com.baomidou.mybatisplus.service.IService;

/**
 * <p>
 * 区 服务类
 * </p>
 *
 * @author yangfei
 * @since 2017-09-08
 */
public interface AreaService extends IService<Area> {

}
package com.young4j.service.impl;

import com.young4j.entity.Area;
import com.young4j.dao.AreaDao;
import com.young4j.service.AreaService;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;

/**
 * <p>
 * 区 服务实现类
 * </p>
 *
 * @author yangfei
 * @since 2017-09-08
 */
@Service
public class AreaServiceImpl extends ServiceImpl<AreaDao, Area> implements AreaService {

}
时间: 2024-10-03 08:35:47

mybatis 快速开发的相关文章

xlauch 1.0 基于springboot + mybatis + beetls 快速开发脚手架

xlauch xlauch 是基于springboot + mybatis + beetls 快速开发脚手架, 包含了用户管理,组织机构管理,角色管理,功能点管理,菜单管理,权限分配,数据权限分配,代码生成,二次开发等功能 系统基于Spring Boot 1.5技术,前端采用了easyUI.数据库以MySQL为实例 . QQ 交流群(224708661) gitee下载地址:[email protected]:huangxy3/xlauch.git 1 使用说明 1.1 安装说明 1.1.1 导

基于SpringBoot+Mybatis+AntDesign快速开发平台,Jeecg-Boot 1.1 版本发布

Jeecg-Boot 1.1 版本发布,初成长稳定版本 导读     平台首页UI升级,精美的首页支持多模式 提供4套代码生成器模板(支持单表.一对多) 集成Excel简易工具类,支持单表.一对多导入导出 代码生成器,生成代码自带Excel导入导出,表单提供弹出风格和抽屉表单选择 系统权限大升级,支持按钮权限,数据权限(可控制不同人看不同数据) 数据日志记录功能,可记录数据变更日志,对比版本功能 查询过滤器开发完成,根据页面配置自动生成查询条件,支持多种匹配规则 Online在线报表配置功能完成

MyBatis学习总结(一)——MyBatis快速入门

MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装.MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录. 二.mybatis快速入门 2.1.准备开发环境 1.创建测试项目,普通java项目或者是JavaWeb项目均可,如下图所示: 2.添加相应的jar包 [mybat

Atitit 快速开发的推荐技术标准化 规范 大原则

1. 如何评估什么样的技术适合快速开发??1 1.1. (重要)判断语言层次..层次越高开发效率越高  4gl  dsl> 3.5gl >3gl1 1.2. 免编译(重要)2 1.3. 热部署(重要)2 1.4. (重要)简化架构与层次..工程架构与学院派理论架构层次相差很大往往..2 1.5. 概念少2 1.6. 上手难度要低.容易理解2 1.7. 零配置或注解2 2. 非技术方面 优先级 备用计划2 2.1. 朝四暮三 vs 朝三暮四   二八原则2 2.2. 遇到麻烦的节点,先略过3 2

MyBatis学习总结(一)——MyBatis快速入门(转载)

孤傲苍狼 只为成功找方法,不为失败找借口! MyBatis学习总结(一)--MyBatis快速入门 一.Mybatis介绍 MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装.MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录. 二.mybatis快速入门 2.1.准备

JAVA快速开发平台 - 开源 免费 - JEECG

JEECG 微云快速开发平台 当前最新版本: 3.6.2(发布日期:20160315) 下载地址:http://git.oschina.net/jeecg/jeecg 前言: 随着 WEB UI 框架 ( EasyUI/Jquery UI/Ext/DWZ) 等的逐渐成熟,系统界面逐渐实现统一化,代码生成器也可以生成统一规范的界面! 代码生成+手工MERGE半智能开发将是新的趋势,单表数据模型和一对多数据模型的增删改查功能直接生成使用,可节省60%工作量,快速提高开发效率!!! 简介 JEECG(

【转】MyBatis学习总结(一)——MyBatis快速入门

[转]MyBatis学习总结(一)——MyBatis快速入门 一.Mybatis介绍 MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装.MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录. 二.mybatis快速入门 2.1.准备开发环境 1.创建测试项目,普通jav

MyBatis学习笔记(一)——MyBatis快速入门

一.Mybatis介绍 MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装.MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录. 二.mybatis快速入门 2.1.准备开发环境 1.创建测试项目,普通java项目或者是JavaWeb项目均可,如下图所示: 2.添加相应

Mybatis快速学习(一)

这两天学习mybatis,写一下主要的知识点和流程吧,懒得再分类了,暂且把它放在ssh类里面吧.首先,它是一个ORM框架,性能介于原生JDBC和hibernate之间,需要自己写sql语句,开发效率比hibernate慢一些,比jdbc快一些,但是对于运行效率比hibernate快一些,比jdbc慢一些,反正也差不多. mybatis快速入门步骤: 第一:引入包:mybatis包和mysql的包. 第二:写配置文件:只要是关于jdbc的配置: <?xml version="1.0"