网站首页 > 技术文章 正文
MyBatis还是JPA,不在本文章的讨论范围之内,本文假设你使用的是mybatis,这里只是提供一种思路。
常规使用 mybatis:
代码生成器,mybatis-generator
- 内容基本无法改动,会生成domain类、Example类、mapper映射文件,例如:张三新加了一个字段,然后重新生成了代码,如果合并代码的时候,稍微不留意,就会造成严重的问题。
- 生成内容过多,有些方法和返回值其实并不需要,不能每次都去修改代码生成器。
- 如果要使用,推荐只是第一次创建表结构的时候使用
xml内写sql
- sql 并不直观
- 如果项目内存在代码审查,DBA无法真正的进行查看
使用第三方的mybatis封装包
其实个人比较喜欢JPA,但是实践的机会不多,国内大多数的公司使用的还是mybatis
MyBatis FreeMarker
官方地址:http://mybatis.org/freemarker-scripting/
优点:
一个方法一个sql文件,方便DBA进行sql审核,简洁优雅。
缺点:
一个方法一个sql文件,如果数据库发生了更改,没有xml的方式更改起来方便。
其实这种方式的优点也是它的缺点。
POM依赖:
<!-- MyBatis的脚本语言配置功能 -->
<dependency>
<groupId>org.mybatis.scripting</groupId>
<artifactId>mybatis-freemarker</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
</dependency>
<!-- Mysql Connector -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
Mapper:
@Mapper
public interface DemoMapper {
@Insert("DemoMapper/insert.ftl")
@Options(useGeneratedKeys = true, keyProperty = "id")
void insert(@Param("demo") Demo demo);
}
insert into demo(
id,
a1
)values (
<@p name = "demo.id"/>,
<@p name = "demo.a1"/>
)
写多了mybatis,发现这种写法反而是解放了个人的生产力,有问题也比较好查找。
DEMO位置
https://gitee.com/lizhifu/tomato-cloud/tree/master/tomato-study/tomato-study-mybaits-script
猜你喜欢
- 2024-09-29 MybatisPlus—kotlin代码生成 mybatisplus 代码生成器
- 2024-09-29 Spring boot Mybatis 整合 springboot整合mybatis流程
- 2024-09-29 MyBatis自动生成Mapper插件 mybatis 生成mapper
- 2024-09-29 增强Mybatis常用方案 mybatis-plus扩展
- 2024-09-29 网易架构师吐血整理:2分钟看完Mybatis核心知识点
- 2024-09-29 Mybatis的XML映射文件的继承问题 mybatis映射文件的主要元素及作用
- 2024-09-29 Mybatis 自动生成bean mybatis 自动生成bo
- 2024-09-29 深入理解Python生成器(Generators)
- 2024-09-29 如何避免出现 SQL 注入漏洞 怎样避免sql注入
- 2024-09-29 代码生成插件支持eclipse,IntelliJ Idea
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)