springboot工程中各个层次的作用+springboot连接数据库的工具汇总+Mybatis的开发方式/语法
下面这个是hibernate的相关工程
下面这个是Mybatis的相关工程
\
可以看出无论使用哪一种,方式都是一致的.
------------------------------------------------
文件夹 | 作用 |
App | 类似于Django的manage.py,启动入口 |
Controller | 路由和业务逻辑 |
Service | 写一些被Controller调用的逻辑 |
Repository(DAO/Mapper层) |
Hibernate在这个层写一些类似SQL的语句,被Service层调用 Mybatis在这个层写SQL |
bean(Model/Entity层) | 代码中的表格映射到mysql表格 |
------------------------------------------------
Mybatis一般有两种写法[1],
①原始的dao开发
②mapper代理的开发方式
------------------------------------------------
常用语法 | 作用 |
@Param("参数名") |
对传入的参数进行重命名, 重命名后的数据被使用在SQL中 |
@ResultMap |
<resultMap type="com.clark.model.Goods" id="t_good"> 映射用 |
@Result |
下面这种select语句的应用[2]: @Result(column="login_name",property="loginName") 表格列名是column property表示private 变量是loginName |
@Results |
@Select(value = "select * from user") @Results(id = "userMap",value = { @Result(id = true,column ="id" ,property ="userId" ), @Result(column = "username" ,property = "userName"), @Result(column = "sex",property = "userSex"), @Result(column = "address",property = "userAddress"), @Result(column = "birthday",property = "userBirthday") }) |
@Update | 更新语句 |
@Select | 查询语句 |
@Delete | 删除语句 |
@Insert | 插入语句 |
@Options | 设置缓存/映射关系等(如下图解释) |
Gendar表有一个gendarId自增长主键,如何在插入数据后自动获取到该主键值呢?可以使用@Options注解:
含义 | 读应的变量 |
实例对象中主键的属性名 | keyProperty |
数据库中的字段名 | keyColumn |
设置@Options属性userGeneratedKeys的值为true,
这样在gendar插入数据后,gendarId属性会被自动赋值。(因为插入数据的时候,我们是不带有主键的)
------------------------------------------------
常用springboot与数据库的连接工具
Mybatis
Hibernate
JPA
Spring Data JPA(JPA的简化工具)
JdbcTemplate
Mybatis(现在逐渐流行)
------------------------------------------------
Reference:
[1]MyBatis--xml方式
[2]mybatis column 和property
[3]注解开发中的@Results注解使用
springboot工程中各个层次的作用+springboot连接数据库的工具汇总+Mybatis的开发方式/语法相关推荐
- springboot工程中maven插件浅析
springboot工程中都会配置插件进行编译.打包等操作,下面对常用的maven插件进行简单分析. 一.spring-boot-maven-plugin spring-boot-maven-plug ...
- application terminated怎么解决_优雅解决 SpringBoot 工程中多环境下 application.properties 的维护问题...
个人微信号:geekoftaste, 期待与大家一起探讨! 背景 我们知道 SpringBoot 有一个全局的配置文件 application.properties, 可以把工程里用到的占位符,第三方 ...
- springboot工程中使用spring.version导致无法启动
今天弄了一个netty的服务端工程,结果一直启动不了,debug报错如图: 经过查找,发现是因为pom.xml文件中,有spring.version导致 [解决办法] 将spring.version注 ...
- springboot工程中限流方式
限流,是防止用户恶意刷新接口.常见的限流方式有阿里开源的sentinel.redis等. 1.google的guava,令牌桶算法实现限流 Guava的 RateLimiter提供了令牌桶算法实现:平 ...
- springboot项目中@WebServlet不起作用
话不多说 直接上代码 首先是自己创建的一个servlet package com.gm.servlet;import org.springframework.context.annotation.Co ...
- node工程中package.json文件作用是什么?里面的^尖括号和~波浪号是什么意思?
1.package.json文件的作用是什么? package.json是包的说明文件,主要有以下3个作用: (1)相当于你本地项目的一个文档说明. (2)允许你指定你项目中所使用的node包的版本. ...
- 实践Jenkins集成Cobertura自动化构建SpringBoot工程
在每个系统上线正式发布之前,开发同事对其中功能点进行自测,测试同事根据前期设计的测试用例进行功能测试的都是保障系统可靠稳定运行的重要前提.但是,系统上线后故障还偶有发生,那么如何才能将系统代码质量提高 ...
- 热部署在java中的包名_09-springboot工程中的热部署实现。
热部署简介 Spring Boot 开发者为Spring Boot项目中提供了一个热部署(spring-boot-devtools)模块,支持项目的热部署(修改了某些资源以后无需重启服务),以提高开发 ...
- 02-SpringBoot工程中JDBC应用实践
文章目录 HikariCP应用实践 背景分析 池化思想分析 连接池原理分析 Java中的连接池 HikariCP入门实践 数据初始化 创建项目模块 添加项目依赖 配置HikariCP连接池 创建项目启 ...
最新文章
- 一封会笑死人的校园情书
- 关于android ksoap获取失败的问题
- 【转】iOS-Core-Animation-Advanced-Techniques(六)
- python DataFrame join()
- 要素图层范围查询属性arcgis api for js
- 【Java例题】5.3	线性表的使用
- ue4 无限地图_UE4大地图(流关卡、无缝地图)
- 40 FI配置-财务会计-固定资产-组织结构-创建屏幕格式规则
- 联想笔记本键盘亮屏幕不亮_联想笔记本电脑开机键亮但是黑屏?键盘没反应?
- 软件技术专业-就业提示(一、实施工程师)
- win10安装solidworks 注册机闪退的问题,转自知乎
- 求到达必败态的方法数 ZOJ 3067 Nim
- gsoap 的好网站 http://www.cs.fsu.edu/~engelen/soapexamples.html
- Web前端全栈开发_node源码笔记【爱创课堂】
- 刷脸支付在流量金贵时代把控千万用户
- 文档整体缩进html,CSS样式中实现文本缩进的属性是
- uni-app安心打包ios失败
- 工业智能网关BL110应用之59:如何实现智能楼宇控制BACnet 接入MQTT Client One云平台
- Shopee上新,真的很重要吗?
- 前馈神经网络之神经元及激活函数简介