Java开发-Mybatis
文章平均质量分 67
WALL-SQ
Something we got, something we lost
展开
-
Mybatis学习笔记12 嵌套查询
之前我们学习过,在关联查询中,我们的处理办法是在表连接之后,查出数据,分别做出映射。 <resultMap id="Department_Employee" type="Department"> <id column="id" property="id"></id> <result column="name" property="name"></result> <result col原创 2021-01-07 14:52:09 · 319 阅读 · 0 评论 -
Mybatis学习笔记-11 取值符号$、#以及SQL注入问题
区别1: 当有@Parm("xx")指明参数名称时,对于数值型数据,#和$不存在实质性的区别,对于字符型数据,$取出的值是不会自带引号''的。 数值型实验: 1. 在DAO中添加方法 User queryUserById(@Param("id") Integer id); 2. 编写Mapper.xml A. 采用#取值 <sql id="user_field"> select id,username,password,gender,regist_ti.原创 2021-01-07 13:37:47 · 719 阅读 · 0 评论 -
Mybatis学习笔记10 注解
Mybatis提供了注解开发方式,用于替代Mapper.xml文件,我们可以直接用注解完成SQL的定义与绑定。 注解开发具体步骤: 1. 在DAO接口的方法上添加注解 @Select("select id,username,password,gender,regist_time as registerTime from t_user") List<User> queryUsers(); 2. 在主配置文件中修改注册方式 <mapper class="com.z原创 2021-01-07 10:36:58 · 73 阅读 · 0 评论 -
Mybatis学习笔记-09 分页
由于现代数据库查询的数据量很多,我们往往采用分页的办法,这样既可以更好的展示数据,又可以不用因为一次查询太多数据导致响应过慢。Mybatis提供了PageHelper插件用于分页查询。 基础使用 1. 导入依赖 <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactI原创 2021-01-06 20:59:47 · 111 阅读 · 0 评论 -
Mybatis学习笔记-08 连接池
我们知道,JDBC操作数据库,创建Connection的开销是十分大的,而Mybatis实际上是对JDBC的封装,还是避免不了创建链接带来的大开销,不过Mybatis内部其实还是集成了自带的连接池。对于频繁创建导致的高消耗,我们的处理办法就是引入连接池机制,所谓连接池,就是我们预先创建一些连接,在使用时只需要从池子中取,而不需要自行创建,用完后归还池子即可。 我们将使用阿里开发的Druid连接池,各主流连接池的时间消耗如下(测试量为一百万次的申请归还操作): 具体步骤: 1. 导入依赖原创 2021-01-06 20:25:04 · 66 阅读 · 0 评论 -
Mybatis学习笔记-07 缓存
数据库是持久存储在磁盘上的,当我们要从磁盘上查询数据的时候,需要进行磁盘I/O,而且在现实的业务场景中,查询是最频繁使用的,且查询一般会涉及到很多数据,这需要进行大量的磁盘I/O操作,是相当消耗性能的,因此我们如果能提高查询的性能,就能提高整个系统的性能。 我们以现实场景为例,在客户端与服务器之间交互。 事实上,我们没办法期望缓存可以存下所有的数据,缓存存储的数据需要有如下特点:1.频繁查询 2.很少修改(减少缓存和磁盘之间的数据同步开销)。 Mybatis中分为一级缓存和二级缓存。 还记得原创 2021-01-06 17:40:01 · 100 阅读 · 0 评论 -
Mybatis学习笔记-06 动态SQL
Mybatis的映射文件中支持在基础SQL上添加一些逻辑操作,动态拼接成完整的SQL后再执行,以复用SQL、简化编程。 1. 抽取重复部分 直接引用 <sql> <include> 1)建立表 use study_mybatis; create table t_user( id int primary key auto_increment, username varchar(50), password varchar(20), gender v原创 2021-01-06 14:33:14 · 138 阅读 · 0 评论 -
Mybatis学习笔记-05 多表查询
1. Mybatis处理关联关系-多表连接 在一个系统中,我们往往会存在有多表,且多张表之间还存在关系: A. 一对一关系 例如学生和公民,一位学生只对应一个公民,一个公民只对应一位学生。 B. 一对多关系 例如班级和学生,一个学生对应一个班级,但是一个班级对应有多个学生。 C. 多对多关系 例如学生与课程,一个学生可以选修多门课程,一个课程可以被多名学生选修。 主从表:在一对关联关系中,关联的属性为主键的表为主表,关联的属性为外键的表为从表。例如,员工和民众,员工的主键是职工号,外键是身份原创 2021-01-06 00:53:34 · 132 阅读 · 0 评论 -
Java开发之三层架构
这是一套软件开发规范,用于程序模块之间的解耦,对于系统的排错、更新维护都大有脾益。原创 2021-01-02 19:57:33 · 132 阅读 · 0 评论 -
Mybatis学习笔记-04
1.主键回填 上回说到,在使用Mybatis插入新数据的时候,由于我们的表本身设置了主键自增,所以我们不需要显式地给出主键值,而是使用NULL占位。但是实际上,很多时候我们会有需要返回主键值的需求,例如给出订单编号之类,Mybatis也给出了相应的操作方式。 <insert id="insertUser" parameterType="User"> <selectKey order="AFTER" resultType="int" keyProperty="i原创 2020-12-30 15:54:32 · 80 阅读 · 1 评论 -
Mybatis学习笔记-03 CRUD
1.多条件查询 实际上就是SQL语句中的 wher xx = xx and xx = xx A. 在DAO接口中增加方法 User queryUserByIdAndUsername(Integer id,String username); B. 在对应Mapper.xml中增加select语句 1)使用arg做参数占位符,从0开始 <select id="queryUserByIdAndUsername" resultType="User"> sele.原创 2020-12-29 19:58:59 · 96 阅读 · 0 评论 -
Mybatis学习笔记-02
关于笔记01的细节 1.Maven的默认规则 Maven默认Java文件夹下的所有文件都是.java文件,对于不是.java文件的文件,会自动做略过处理,也就是不会添加到编译生成的target/classes文件夹下。Mybatis是不强求一定要将mapper文件放置在resources文件夹里的,我们可以选择将mapper.xml与其对应的DAO接口放在一起,但是由于编译时mapper.xml不会被加入target/classes中DAO所在包下,因此即便我们修改了主配置文件的路径,也是无法查询到ma原创 2020-12-29 12:51:13 · 253 阅读 · 0 评论 -
Mybatis学习笔记-01
1.在Maven工程中配置Mybatis <?xml version="1.0" encoding="UTF-8"?> <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://m原创 2020-12-28 19:45:21 · 108 阅读 · 0 评论