学习日记2022.11.01

1.学习mybatispuls

springboot+mybatispuls

1.导入mybatisplus依赖 druid数据源

2.使用druid数据源要在application.yml文件里配置type属性,其他数据源相关属性也要配置

3.使用lombok依赖加速domain类开发,注意@Data不包含无参构造器需要加上

4.使用MyBatis-Plus开发,dao层接口只需加Mapper注解,继承BaseMapper接口加上泛型就行

分页查询

条件查询

查询投影

@Test
    void testSelectPage() {
        /**
         *  分页查询selectPage
         *  IPage接口用Page类实现
         *  还要有MP拦截器配置类
         *  getRecords() 该页记录
         */
        IPage<Book> page = new Page<>(2,5);
        bookDao.selectPage(page,null);
        System.out.println("当页记录:" + page.getRecords());
        System.out.println("当前页数:" + page.getCurrent());
        System.out.println("每页的记录数:" + page.getSize());
        System.out.println("总页数:" + page.getPages());
        System.out.println("总记录数:" + page.getTotal());
        System.out.println("该page的全类名" + page.getClass());
    }

    @Test
    void testSelect() {
        /**
         *  条件查询
         */
        //方式一
        /*QueryWrapper<Book> wp = new QueryWrapper();
        wp.le("id",10);
        System.out.println(bookDao.selectList(wp));*/

        //方式二lambda表达式
        /*QueryWrapper<Book> wp = new QueryWrapper();
        wp.lambda().le(Book::getId,5);
        System.out.println(bookDao.selectList(wp));*/

        //方式三lambda表达式
        LambdaQueryWrapper<Book> qw = new LambdaQueryWrapper<>();
        //(3,4]
//        qw.le(Book::getId,4).gt(Book::getId,3);
        //(-无穷,3]&(4,+无穷)
        qw.gt(Book::getId,4).or().le(Book::getId,3);
        System.out.println(bookDao.selectList(qw));
    }

    @Test
    void testSelect2() {
        /**
         *  条件查询(有条件为null时处理)
         */

        //模拟用户传入条件查询参数
        QueryBook queryBook = new QueryBook();
        queryBook.setId(3);
        //queryBook.setId2(10);

        LambdaQueryWrapper<Book> qw = new LambdaQueryWrapper<>();
        qw.gt(null != queryBook.getId(),Book::getId,queryBook.getId());
        qw.le(null != queryBook.getId2(),Book::getId,queryBook.getId2());
        System.out.println(bookDao.selectList(qw));
    }

    @Test
    void testSelect3() {
        /**
         *  查询投影
         *  只查询部分字段
         */
        /*QueryWrapper<Book> qw = new QueryWrapper<>();
        qw.select("id","Description");*/
        LambdaQueryWrapper<Book> qw = new LambdaQueryWrapper<>();
        qw.select(Book::getName,Book::getDescription);
        System.out.println(bookDao.selectList(qw));
    }

复习SE

2.字符串常用API

• int compareTo(String other) 按照字典顺序,如果字符串位于 other 之前, 返回一个负数;如果字符串位于 other 之 后,返回一个正数;如果两个字符串相等,返回 0。

•boolean equalsIgnoreCase(String other ) 如果字符串与 other 相等 (忽略大小写) 。

•boolean startsWith(String prefix )

•boolean endsWith(String suffix ) 如果字符串以 suffix 开头或结尾, 则返回 true。

•int indexOf(String str)

•int indexOf(String str, int fromlndex )

返回与字符串 str 或代码点 cp 匹配的第一个子串的开始位置。这个位置从索引 0 或 fromlndex 开始计算。 如果在原始串中不存在 str, 返回 -1。

•int lastIndexOf(String str)

返回与字符串 str最后一个子串的开始位置。这个位置从原始串尾 端或 fromlndex 开始计算。

•int length( ) 返回字符串的长度。

• String substring(int beginlndex ) 參 String substring(int beginlndex, int endlndex ) 返回一个新字符串。这个字符串包含原始字符串中从 beginlndex 到串尾或 endlndex-l 的所有代码单元。

• String toLowerCase( ) 參 String toUpperCase( ) 返回一个新字符串。 这个字符串将原始字符串中的大写字母改为小写,或者将原始字 符串中的所有小写字母改成了大写字母。

• String trim( ) 返回一个新字符串。这个字符串将删除了原始字符串头部和尾部的空格。

3.StringBuilder

每次连接字符串, 都会构建一个新的 String 对象, 既耗时, 又浪费空间。使用 StringBuilder类就可以避免这个问题的发生。

这个类的前身是 StringBuffer, 其效率低,线程安全.

• StringBuilder append(String str) 追加一个字符串并返回 this。

• StringBuilder append(char c) 追加一个代码单元并返回 this。

• void setCharAt(int i ,char c) 将第 i 个代码单元设置为 c。

• StringBuilder insert(int offset,String str) 在 offset 位置插入一个字符串并返回 this。

• StringBuilder insert(int offset,Char c) 在 offset 位置插入一个代码单元并返回 this。

• StringBuilder delete(int startindex,int endlndex) 删除偏移量从 startindex 到 -endlndex-1 的代码单元并返回 this。

• String toString()

4.Array数组

Arrays类中的静态方法,Arrays.sort(array)对array数组进行排序(快排).

Array.binarySearch(array,4)二分查找算法查找元素所在索引

5.Date等日期类

Date date = new Date();

创建一个日期对象,输出得到Tue Nov 01 18:54:37 CST 2022

LocalDate.now();

LocalDate类的静态方法now()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值