文章目录 一、数据类型封装 二、作为 参数 或 返回值 代表无 三、void* 指针赋值与被赋值 四、void 类型变量不存在 一、数据类型封装 ---- 实现函数 的 底层函数开发者 , 不想将 底层的数据结构...中 , 拷贝 unsigned n 个字节的数据 , 到 void *destin 指针指向的内存空间中 ; 二、作为 参数 或 返回值 代表无 ---- void 数据类型 , 作为函数的 参数 或...返回值 , 代表无参数 , 或者无返回值 ; 如果函数没有参数 , 可以声明为 int fun(void) 其中 , 如果 函数的参数是 void , 则可以省略 ; int fun() 上述两种表示时等价的...; 三、void* 指针赋值与被赋值 ---- C 语言中 , 对指针赋值时 , 只有 相同类型的指针 , 才能相互赋值 ; void* 作为 左值 可以 被赋值 任意类型的 指针 ; void* 作为...右值 赋值给其它类型的指针类型变量时 , 必须将 该指针强转为其它类型 ; 最常见的是使用 malloc() 函数申请内存时 , 其返回一个 void * 类型的指针 ; void *malloc(unsigned
请使用行内参数映射和 parameterType 属性。 resultType 期望从这条语句中返回结果的类全限定名或别名。...注意,如果返回的是集合,那应该设置为集合包含的类型,而不是集合本身的类型。 resultType 和 resultMap 之间只能同时使用一个。...修改getEmployeeByIdAndName的映射SQL,使用#{tableName}获取表名,再次执行测试 出现报错,SQL语句中只有参数位置是支持预编译的 查询返回List EmployeeDao...Map 查询返回单条记录的情况下列名作为Key,值作为Value 新增方法 Map getEmployeeByIdWithMap(Integer id); 增加SQL映射语句...Key,值作为Value 查询返回多条记录情况下封装成Map 定义方法 Map getAllEmployeesWithMap(); employee.xml中增加SQL
= 比较对象地址值,是否相同,取反~ 不能使用 > 或 < 的 但是在开发场景中,我们需要对多个对象进行排序,言外之意,就需要比较对象的大小 以 JD 商城举例场景: 查询商品可以对商品进行...根据用户点击,从数据库中查询到一个商品对象/数组 进行排序,返回数据给前端进行排序展示~ 当然, 一个功能可以有很多种实现方式, 也有直接在数据库中根据传过来的类型, 动态sql 直接在数据库中查询返回排好序的数据...像String类、包装类等JDK内置类实现了Comparable接口默认是升序排序 如果要降序排序或指定其他排序规则只能使用Comparator接口。...八大基本数据类型都有对应的包装类,使基本数据类型也具有对象的操作… 并且内部定义了一些方法,方便使用… 结合: 自动装箱/拆箱 基本数据类型,使用起来更加的心用手~ Integer与int的区别 int...可以区分出未赋值和值为0的区别 **int则无法表达出未赋值的情况 判断一个人考试,0分 和 缺考 则只能使用Integer 在JSP开发中,Integer的默认为null 所以用el表达式在文本框中显示时
UPDATE:用于更新数据库中的数据,可以修改已有记录或新增记录,并返回被更新的记录数。...DELETE:用于删除数据库中的数据,可以根据指定的条件删除单条记录或多条记录,并返回被影响的记录数。 这些操作类型是 SQL 语言中最基础的操作,用于对数据库进行增删改查等操作。...在实际应用中,我们可以通过组合使用这些操作类型来完成更加复杂的操作,例如多表联合查询、批量更新等。掌握这些操作类型对于开发 SQL 数据库和进行数据处理非常重要。...以下是一些使用原则: 在方法只接受一个参数时,可以不使用 @Param 注解。此时,MyBatis 会将参数作为"param1"来处理。...如果不使用 @Param 注解,那么方法中只能有一个参数,并且这个参数必须是 JavaBean 类型。 总之,使用 @Param 注解可以提高代码的可读性和可维护性,特别是在方法接收多个参数的情况下。
// 注意:关于userId的判断,必须使用equals()方法 // 使用 == 或 !...= 来判断Integer类型的数据,前提必须是数值范围一定在 -128至127 之间 // 例如:Integer i1 = 128; Integer i2 = 128; // 使用 ==...; } // 返回查询结果 return comment; } (d)单元测试 @Test void delete() { try { Integer...* @param userType 当前登录的用户的类型 * @return 成功修改的评论数据 */ Comment update(Integer commentId, String content...如果开发较难的版本,可以添加规则“每个问题只能采纳1个答案,并且,一旦采纳,所有人将不允许添加答案或评论,也不允许对现有的答案或评论进行编辑、删除”。 83.
中添加一个接口方法 //根据id删除数据,返回受影响的行数,返回1,如果删除失败返回0 Integer deleteUserById(int id); 在UserMapper.xml中配置<delete...,让客户以为已经被删除了 Mybaits参数规则 mybatis默认支持一个参数,即是定义的接口方法中只能有一个参数 如果需要支持多个参数,那么需要使用@Param()注解 如果接口方法中的参数类型是基本类型的可以不用...parameterType指定类型,如果不是基本类型的,规范要求需要使用parameterType指定类型,但是可以不写 @Param() mybatis默认支持一个参数,即是定义的接口方法中只能有一个参数... 在修改数据的时候,mybatis自动返回受影响的行数,因此我们不需要定义返回类型,默认的返回数据就是受影响的行数 在UserMapper.java接口中定义根据id修改数据的方法 使用...增加,修改,删除,方法返回的永远是受影响的行数 在定义实体类属性的时候,尽量使用包装类,比如`Integer age` 只要是节点,那么必须写返回类型resultType,无论是基本型还是其他类型
此外,Arrays.asList()接受任意的序列或数组作为其参数,并将其转为List容器,但是在这种情况下,其底层表示的仍是数组,因此不能调整尺寸。...通过使用泛型,就可以在编译期防止将错误类型的对象放置到容器中,而且当我们指定了某个类型作为泛型参数时,并不仅限于只能将该确切类型的对象放置到容器中,向上转型也可以像作用于其他类型一样作用于泛型。...在创建容器的时候,我们习惯于使用接口的形式,例如: List list = new ArrayList(); 这样做的目的在于如果我们决定修改接口的实现,我们只需要在创建处修改它...; 使用hasNext()方法检查序列中是否还有元素,返回boolean值; 使用remove()方法将迭代器新返回的元素删除。...HashSet、TreeSet、LinkedHashSet都是Set的子类型,对于相同的对象,其只保存一次,其中HashSet使用相当复杂的方式来存储对象,以保障查询时的速度,因此其拥有最快的查询速度;
_parameter 2.1.5、集合类型 可以传递一个List或Array类型的对象作为参数,MyBatis会自动的将List或Array对象包装到一个Map对象中,List类型对象会使用list作为键名...集合类型通常用于构造IN条件,sql映射文件中使用foreach元素来遍历List或Array元素。...,在SQL映射文件中映射时,只能通过list或array来引用。...但是如果对象类型有属性的类型为List或Array,则在sql映射文件的foreach元素中,可以直接使用属性名字来引用。...id); 2.2.3、返回Map 假定要返回id作为key,name作为value的Map。
//exportSchema = true 生成数据库创建表或升级等操作及字段描述的json文件 //修改数据库版本直接通过version修改 //SkipQueryVerification注解是编译时候是否验证...需要注意的是:启用Fts的表必须使用Integer类型的主键,且列名为“rowid”。 如果表支持以多种语言显示内容,可以使用languageId指定用于存储每一行语言信息的列。...如果应用不支持使用全文搜索,可以将数据库的某些列编入索引,加快查询速度,通过@Entity注解添加indices,列出要在索引或符合索引中包含的列名称。...long rowID = StudentDatabase.getInstance().getCache().save(cache); //返回int,这是删除的行数,更新返回也是int,代表更新的行数...int lines = StudentDatabase.getInstance().getCache().delete(cache); 销毁与重建 如果需要对数据库中的字段类型进行修改,最好的方式就是销毁与重建
1 Lambda表达式 Lambda表达式 是用来替代匿名函数,可以将一个函数赋值给一个变量作为参数传入另一个函数,java的闭包 原则:可推导就是可省略,比如说参数类型,返回值。...接收2个int型整数,返回他们的和 (int x, int y) -> x + y // 5....1.2 Lambda表达式变量作用域 lambda 表达式只能引用final 类型的外层局部变量,就是说不能在 lambda 内部修改定义在域外的局部变量,否则会编译错误。...与匿名函数同理 lambda 表达式的局部变量可以不用声明为 final,但是必须不可被后面的代码修改(即隐性的具有 final 的语义) int num = 1; Converter<Integer...resize的过程,解决JDK7在resize在并发场景下死锁的隐患 (3)JDK1.7存储使用Entry数组,JDK8使用Node或者TreeNode数组存储 当链表长度大于8是链表的存储结构会被修改成红黑树的形式
泛型的设计背景 集合容器类“设计阶段/声明阶段”不能确定这个容器到底实际存的是什么类型的对象,所以在JDK1.5之前只能把元素类型设计为 Object,JDK1.5 之后使用泛型来解决。...这个类型参数将在使用时(例如,继承或实现这个接口,用这个类型声明变量、创建对象时)确定(即传入实际的类型参数,也称为类型实参)。...; } } 应用总结 1、集合接口或集合类在jdk5.0时都修改为带泛型的结构。...3、指明完以后,在集合类或接口中凡是定义类或接口时,内部结构(比如:方法、构造器、属性等)使用到类的泛型的位置,都指定为实例化的泛型类型。...return false; } //修改一条记录 public void update(int index,T t){ } //查询一条记录
,不会走索引,会全表扫描,性能低 功能弱:如果以”华为手机“作为条件,查询不出来数据 Es使用倒排索引,对title 进行分词 使用“手机”作为关键字查询 生成的倒排索引中,词条会排序,形成一颗树形结构...,提升词条的查询速度 使用“华为手机”作为关键字查询 华为:1,3 手机:1,2,3 ES概念详解 •ElasticSearch是一个基于Lucene的搜索服务器 •是一个分布式、高扩展...满足这些约束条件和原则的应用程序或设计就是RESTful。就是一种定义接口的规范。 2.基于HTTP。 3.使用XML格式定义或JSON格式定义。 4.每一个URI代表1种资源。...keyword:不会分词,将全部内容作为一个词条,支持聚合 数值 布尔:boolean 二进制:binary 范围类型 integer_range, float_range, long_range...、查询、删除文档 1.修改文档:添加文档时,如果id存在则修改,id不存在则添加 /** * 修改文档:添加文档时,如果id存在则修改,id不存在则添加 */ @Test
或 public; 注意事项 2:子类方法返回的类型只能变小,也就是说如果父类方法返回的是 Number 类型,那么子类方法只能返回 Number 类型或 Number 类的子类 Long 类型,而不能返回...String 参数类型的重载方法; 第 2 匹配原则:如果是基本数据类型,会自动转换成更大的基本数据类型进行匹配,比如调用的参数是 int 类型,那么会优先调用基本类型 long,而非包装类型 Integer...第 3 匹配原则:自动装箱和自动拆箱匹配,参数调用也会进行自动拆箱和自动装箱的方法匹配,比如调用参数传递的是 int 类型,那么它可以匹配到 Integer 类型的重载方法; 第 4 匹配原则:会按照继承路线依次向上匹配父类...除了以上匹配原则之外,还需要特殊注意一点,不同的返回类型不能作为方法重载的依据,也就是不同的返回值类型不算方法重载,关于这一点的详细介绍可参考:https://mp.weixin.qq.com/s/4pi1OZx8So6GjHD6yxjB3Q...@Override 关键字修饰 不需要 参数类型和参数个数 不能修改 必须修改 返回类型 只能变小或相同,不能变大 可修改 抛出异常 只能变小或删除,不能抛出新的或者更大的异常 可修改
10bit作为机器的ID(5个bit是数据中心,5个bit的机器ID,可以部署在1024个节点)。 12bit作为毫秒内的流水号(意味着每个节点在每毫秒可以产生 4096 个 ID)。 ?...(); queryWrapper.eq("name", "张旭"); User user = userMapper.selectOne(queryWrapper);//只能返回一条记录...、likeLeft、likeRight selectMaps()返回Map集合列表,通常配合select()使用 @Test public void testSelectMaps() {...or则默认为使用 and 连接 @Test public void testUpdate1() { //修改值 User user = new User(); user.setAge...set设置修改的字段 .setSql(" email = '123@qq.com'");//可以有子查询 int result = userMapper.update(user
Body中的Code来判断API状态即几乎所有API的HttpResponse Code=200,那么完全可以不使用ResponseEntity作为返回数据类型,只需要去返回Response Body...ResponseEntity(HttpStatus.NO_CONTENT); } //2 .查询有返回值 查询 //@GetMapping("/demoss") public ResponseEntity...ResponseEntity进行CRUD 这题是使用ResponseEntity进行返回值,不包含通用异常处理。...客户端应继续使用原有URI 303 See Other 查看其它地址。与301类似。使用GET和POST请求查看 304 Not Modified 未修改。...所请求的资源未修改,服务器返回此状态码时,不会返回任何资源。客户端通常会缓存访问过的资源,通过提供一个头信息指出客户端希望只返回在指定日期之后修改的资源 305 Use Proxy 使用代理。
泛型方法 泛型方法是一种在方法声明中使用泛型类型参数的特殊方法。它允许在方法中使用参数或返回值的类型参数化,从而实现方法在不同类型上的重用和类型安全性。...泛型边界的使用场景包括: 类型限定:当我们希望泛型类型参数只能是特定类型或特定类型的子类时,可以使用泛型边界。...super Integer>,你可以向这个 List 中添加 Integer 或其子类的对象,但不能从中读取具体类型的元素(只能读取为 Object),示例: public void doSomething...这意味着在运行时你不能查询一个泛型对象的真实类型 不能实例化泛型类型的类:你不能使用 new T(),new E()这样的语法来创建泛型类型的对象,还是因为类型被擦除 不能使用基本类型作为类型参数:因为是编译器的语法糖...,所以只能使用包装类型如 Integer,Double 等作为泛型类型参数 通配符的使用可能会导致代码复杂:如 ?
index):返回指定索引处的元素 public E set(int index,E element):修改指定索引处的元素,返回被修改的元素 public int size():返回集合中的元素的个数...(各种数组,集合不行) 返回该数组的全部内容的特定格式(遍历数组) 方法重载: 1.方法名相同 2.参数列表不同(数量、类型、顺序) 方法覆盖: 1.访问修饰符相同或更宽 2.返回值类型相同...使用 instanceof 只能得出某对象的实际乐行是不是某类型的子类 2....- Integer char -- Character 其他基本数据类型 -- 首字母大写 int Integer String 之间的相互转换: 1....使用数组实现 2. 增删慢,查询快 LinkedList 1. 使用链表实现 2. 增删快,查询慢 Vector 1.
-- 内置类型可以用简称int,也可以用全限定名java.lang.Integer,但自定义类型必须用全限定名 --> <select id="findById" parameterType="<em>int</em>"...#{}可以接收简单类型值或 pojo 属性值。 如果 parameterType 传输单个简单类型值,#{}括号中可以是 value 或其它任意名称。...resultMap sql语句中的查询返回列必须和resultType类型中的属性名对应,否则会赋值为null,如果仅大小写不同,仍可以赋值成功,因为mysql 在 windows 系统中不区分大小写!...如果连接处于自动提交模式下,则它的所有SQL语句将被执行并作为单个事务提交。否则,它的SQL语句将聚集到事务中,直到调用commit 方法或 rollback 方法为止。...需要装配的属性名one 需要使用的@One注解many 需要使用的@Many注解 @One 用来指定子查询返回单一对象,属性介绍:select 指定用来多表查询的 sqlmapperfetchType
list = Arrays.asList("A", "B", "C"); //非常方便 System.out.println(list); } List是只读的,不能进行修改操作,只能使用获取内容相关的方法...要生成正常使用的,我们可以将这个只读的列表作为参数传入: public static void main(String[] args) { List list = new ArrayList...,V就是值的类型,比如上面的学生信息,ID一般是int,那么键就是Integer类型的,而值就是学生信息,所以说值是学生对象类型的 public interface Map { //-...null作为结果: public static void main(String[] args) { Map map = new HashMap();...[] args) { //使用原始类型接收一个Integer类型的ArrayList List list = new ArrayList(Arrays.asList(1,2,3,4,5
基本的查询 1.6. 自定义查询@Query 1.6.1. 使用HQL语句查询 1.6.2. 使用sql语句查询 1.6.3. 删除和修改 1.7. 复杂条件查询 1.8. 分页查询 1.8.1....类似的,该策略一般与另外一个注解一起使用@SequenceGenerator,@SequenceGenerator注解指定了生成主键的序列.然后JPA会根据注解内容创建一个序列(或使用一个现有的序列)。...其中的变量类型可以数组、List、Set只要是Collection即可,泛型必须和查询条件的类型一致 */ List findByAgeIn(Integer[] ages); /...1 order by industry_id desc",nativeQuery=true) List findUserListByAge(Integer age); 删除和修改 使用自定义...sql的时候,如果涉及到删除和修改的sql需要满足两个条件才能执行,如下: 使用@Modifying标注 在事务中执行 /** * 删除和修改信息,必须同时使用@Modifying注解标注 */
领取专属 10元无门槛券
手把手带您无忧上云