Mybatis注解开发相关】的更多相关文章

一.项目构建 1.Java项目目录结构 2.在domain包下创建User实体类 package sun.domain; import java.io.Serializable; import java.util.Date; /** * @Classname User * @Description TODO * @Date 2020/9/13 14:07 * @Created by Administrator */ public class User implements Serializabl…
知识点梳理 课堂讲义 一.Mybatis注解开发单表操作 *** 1.1 MyBatis的常用注解 之前我们在Mapper映射文件中编写的sql语句已经各种配置,其实是比较麻烦的 而这几年来注解开发越来越流行,Mybatis也可以使用注解开发方式,这样我们就可以减少编写Mapper映射文件了 常用注解 @Select("查询的 SQL 语句"):执行查询操作注解 @Insert("查询的 SQL 语句"):执行新增操作注解 @Update("查询的 SQL…
Mybatis注解开发模糊查询 一般在使用mybatis时都是采用xml文件保存sql语句 这篇文章讲一下在使用mybatis的注解开发时,如何进行模糊查询 模糊查询语句写法(在@Select注解中): where field like CONCAT('%',#{keyWord},'%') 下面是一些错误写法: where title like #{keyword} 这样写不会报错,但无法做到模糊查询. where title like '%#{keyword}%' 这样写会报错…
笔记 2.使用Mybatis注解开发视频列表增删改查     讲解:使用Mybatis3.x注解方式 增删改查实操, 控制台打印sql语句              1.控制台打印sql语句                     #增加打印sql语句,一般用于本地开发测试             mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl 2.增加mapper代码             …
使用逆向工程是遇到的错误 错误描述 org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.fei.mapper.VideoMapper.selectByExample 解决办法 在application.properties中增加如下配置 #============================# #====== mybatis config ======# #=========…
Mybatis注解开发多表一对一,一对多 一对一 示例:帐户和用户的对应关系为,多个帐户对应一个用户,在实际开发中,查询一个帐户并同时查询该账户所属的用户信息,即立即加载且在mybatis中表现为一对一的关系.应为账户的实体类Account中添加User为一个属性. 实体类:User,Account User  package com.itheima.domain; ​ import java.io.Serializable; import java.util.Date; import java…
MyBatis 注解开发 文章源码 环境搭建 Mybatis 也可以使用注解开发方式,这样就可以减少编写 Mapper 映射文件. 常用注解说明: @Insert 实现新增 @Update 实现更新 @Delete 实现删除 @Select 实现查询 @Result 实现结果集封装 @Results 可以与 @Result 一起使用,封装多个结果集 @ResultMap 实现引用 @Results 定义的封装 @One 实现一对一结果集封装 @Many 实现一对多结果集封装 @SelectPro…
1.MyBatis注解开发 1.1.Lombok的基本使用 Lombok是SpringBoot2.1.X版本与IDEA官方支持的一个插件,它是为简化POJO类中繁杂重复代码:geter/setter/toString/hashcode/equals等,提供了一种 全注解的方式来简化我们日常项目中的代码,如今在SpringBoot与微服务项目中,Lombok是一款非常流行的插件,使用了解它可以提高我们日常的开发效率. Lombok的使用非常简单: ①首先需要在IDEA的Settings-Plugi…
其他代码访问:Mybatis注解开发基础操作 1.添加OrderMapper接口 public interface OrderMapper { // @Select("select *,o.id oid from orders o,user u where o.uid=u.id") // @Results({ // @Result(column = "oid",property = "id"), // @Result(column = "…
mybatis 的常用注解: @Insert:实现新增 @Update:实现更新 @Delete:实现删除 @Select:实现查询 @Result:实现结果集封装 @Results:可以与 @Result 一起使用,封装多个结果集 @ResultMap:实现引用 @Results 定义的封装 @One:实现一对一结果集封装 @Many:实现一对多结果集封装 @SelectProvider: 实现动态 SQL 映射 @CacheNamespace:实现注解二级缓存的使用 使用 Mybatis 注…
注解开发 最初设计时,MyBatis 是一个 XML 驱动的框架.配置信息是基于 XML 的,而且映射语句也是定义在 XML 中的.随着技术的更新发展,对于开发效率要求也原来越高,特别是一些小型项目;越来越多的框架开始支持注解, 到MyBatis3时,MyBatis对注解有了完善的支持,利用注解可以在一些情况下提高开发效率 但不幸的是,Java 注解的的表达力和灵活性十分有限.尽管很多时间都花在调查.设计和试验上, 最强大的 MyBatis 映射并不能用注解来构建 1. select 接口方法声…
在利用mybatis注解开始时,如果没有用到动态sql时,可以直接写 @Select("select * from order") List<XlSubOrder> getAllSubOrder(); 但是若果用到了动态sql就不能再像上面那样写了,应该写成 @Select("<script>" + "SELECT * FROM main_order left outer join sub_order on main_order.o…
代码示例可以参考个人GitHub项目kingboy-springboot-data 一.环境配置 1.引入mybatis依赖 compile( //SpringMVC 'org.springframework.boot:spring-boot-starter-web', "com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.9.3", //Mybatis依赖及分页插件 "org.mybatis.spring.boo…
新建测试类 这里使用了main方法进行测试 InputStream需要抛出异常 写完进行测试 测试结果 讲解 把第一天的IUserDao.xml文件复制到当前的工程里面 红色的取值要用的.黄色的是执行要用的 找到方法就可以找到dao,又找到全限定类名 现在由于我们刚才复制了xml文件过来. 既有注解也有xml文件 执行查询的测试方法,就会报错 如果把注解删了就可以解决问题了. 如果这里没有设置package的属性 而是换成了mapper标签配置为了dao的xml映射文件的地址.这里用了class…
注解开发是省了IUserDao.xml这个映射文件里面的配置 环境搭建 首先是packaging标签.输入jar 需要准备一个实体类.生成getter和setter还有toString方法 创建dao接口.先写一个查询所有的接口 按照原来的要求需要在resources下创建Directory也就是文件夹 创建了com.itheima.dao这三个文件夹.为了演示用. 配置主配置文件SqlMapConfig.xmls 复制给的资料里面的config的约束 先输入configuration标签.然互…
MyBatis中提供注解有: @Insert:实现新增 @Update:实现更新 @Delete:实现删除 @Select:实现查询 @Result:实现结果集封装 @Results:可以与@Result 一起使用,封装多个结果集 @One:实现一对一结果集封装 @Many:实现一对多结果集封装 @CacheNamespace:实现注解二级缓存的使用 下面就常用注解:@Insert .@Update.@Delete.@Select.@Result.@Results.@One.@Many示范 My…
新建Account实体类 生成getter和setter还有toString方法 先创建dao类 全局的配置,这里要改成package 创建多对一的关系 在查询的时候输出user这个对象的内容 建立查询的映射 account自己的数据封装完了. result的注解里面还有 one 和 many 点进去看One对象.select指向的就是如何查询用户的唯一标志 FetechType进去看源码 这里有一个lazy延迟加载.eager就是立即加载.实际开开发的时候,对一选择立即加载,对多选择延迟加载.…
创建新项目,一对多 复制刚才关闭的项目的文件 复制到们的新项目里面 复制包的依赖 删减相关代码.只保留这三个查询的方法 模糊查询改成传统的占位符的方式 之前是可以自定义实体类的属性字段,和数据库的字典不一致 增加测试方法 除了用户民 其他都是null值 @Results注解 这个注解包含了id和多个result 里面还有还有一个@Result注解 如果是主键把id设置为true,id默认为false 所有第一个id这里我们设置为true,表示id字段是主键 其他的字段可以不用因为id 默认为fa…
mybatis 的常用注解说明 @Insert:实现新增 @Update:实现更新 @Delete:实现删除 @Select:实现查询 @Result:实现结果集封装 @Results:可以与@Result 一起使用,封装多个结果集 @ResultMap:实现引用@Results 定义的封装 @One:实现一对一结果集封装 @Many:实现一对多结果集封装 @SelectProvider: 实现动态 SQL 映射 @CacheNamespace:实现注解二级缓存的使用 public class…
1.创建maven工程,配置pom.xml 文件. 2.创建实体类 3.创建dao接口 4.创建主配置文件SqlMapConfig.xml 5.在SqlMapConfig.xml中导入外部配置文件jdbcConfig.properties ,在resourecs中导入配置文件 log4j.properties 6.在SqlMapConfig.xml的dataSource标签下配置连接数据库 7.指定dao接口所在位置 8.配置实体类的别名 主配置文件SqlMapConfig.xml如下: 9.添…
@Insert和@InsertProvider都是用来在实体类的Mapper类里注解保存方法的SQL语句.不同的是,@Insert是直接配置SQL语句,而@InsertProvider则是通过SQL工厂类及对应的方法生产SQL语句,这种方法的好处在于,我们可以根据不同的需求生产出不同的SQL,适用性更好. 1.项目主要结构:(1)项目中的实体类(2)每个实体类对应的Mapper方法 (3)SQL工厂 2.下面以BlogMapper中的保存Blog实体方法为例:Blog实体类属性:为了方便说明,属…
注解的用法 直接创建一个新的项目 下一步直接next 然后finish即可 把之前项目01里面的代码直接复制过来 复制到我们02的注解的工程中 把01项目导入的依赖也都粘贴过来 再把测试类复制过去 复制到02的项目,test/java下 用注解的话,这个xml就没有任何意义了 主配置文件的内容不动 resources下的com文件夹直接删除 删除后的resources目录 在dao类里面加上注解 之前我们这里是这么配置的.里面是xml的配置.现在我们不用xml的配置 ,改用注解了.  改成cla…
@Insert和@InsertProvider都是用来在实体类的Mapper类里注解保存方法的SQL语句.不同的是,@Insert是直接配置SQL语句,而@InsertProvider则是通过SQL工厂类及对应的方法生产SQL语句,这种方法的好处在于,我们可以根据不同的需求生产出不同的SQL,适用性更好. 1.项目主要结构:(1)项目中的实体类(2)每个实体类对应的Mapper方法(3)SQL工厂 2.下面以BlogMapper中的保存Blog实体方法为例:Blog实体类属性:为了方便说明,属性…
@Insert和@InsertProvider都是用来在实体类的Mapper类里注解保存方法的SQL语句.不同的是,@Insert是直接配置SQL语句,而@InsertProvider则是通过SQL工厂类及对应的方法生产SQL语句,这种方法的好处在于,我们可以根据不同的需求生产出不同的SQL,适用性更好. 1.项目主要结构:(1)项目中的实体类(2)每个实体类对应的Mapper方法 (3)SQL工厂 2.下面以BlogMapper中的保存Blog实体方法为例:Blog实体类属性:为了方便说明,属…
https://blog.csdn.net/KingBoyWorld/article/details/78948304…
实体类以及表结构 在mybatis-config.xml中注册mapper接口 -------------------------- 动态查询@SelectProvider EmployeeMapper接口 package Intefaceproxy.Dyno; import java.util.List; import java.util.Map; import org.apache.ibatis.annotations.SelectProvider; import model.Employe…
执行两次都查询userId为57的数据.测试一级缓存 返回true 新建测试类 ,测试二级缓存 二级缓存的配置 首先是全局配置,不配置其实也是可以的.默认就是开启的.这里为了演示配置上 dao类里面进行配置 运行测试方法 只查询了一次…
一对多的配置,一个用户对应多个账户 需要在Accout里面增加根据用户的uid查询的方法 在user里面指定子一对多的查询配置 换行显示 测试 把这里注销掉.测试延迟加载,代码注释掉后,延迟加载就没有再执行.什么时候用才会去加载数据 测试只执行了 select *…
delete 51已经被删除掉了. 查询一个 findUserByName模糊查询 带百分号的情况 value这个参数是固定的 返回值为int类型的…
使用直接来实现CRUD操作 Insert方法 创建测试类 把变量都定义在外面 写测试方法 修改链接的数据库 update方法 再加上address 被更新的数据…