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:
本文地址:https://blog.csdn.net/appleyuchi/article/details/108976801