乐趣区

关于java:项目发布mybatisplus

我的项目打包


点击 install 打包 打完会在 target 目录下动静生成 和本地仓库
本地仓库的包作用? 就是被其余我的项目依赖
clean 革除 target 目录

我的项目的公布

勾销组合键 ctrl+c
控制台:java -jar demo.jar

环境的切换

个别开发是应用的都是测试环境, 当我的项目上线须要生产环境部署我的项目
在测试环境的配置与生产环境下配置可能不统一, 常常批改 ip 地址
策略: 指定多个运行环境 测试环境时 让配置文件指向测试
编辑 yml 办法

# 测试环境 /jt 端口号 8090    生产环境 :/  端口号 80 配置必须残缺
#设定分割线 ---
#设置环境的名字 active: 是谁的名字就执行谁
spring:
  profiles:
    active: test
---
spring:
  profiles: prod

server:
  servlet:
    context-path: / #设置公布的地址门路
  port: 8095
---
#设置环境的名字
spring:
    profiles: test

server:
  servlet:
    context-path: / jt  #设置公布的地址门路
  port: 8090

#配置图片上传的门路
#image:
#  localDir: D:/chrome  download file
面试题

我的项目在 Linux 公布的 LomBok 的应用都须要装置插件
如果在 Linux 中公布我的项目, 是否须要装置 LomBok 创立
答: 不须要 LomBok 是编译期无效 重写了 get set toString

编译期代码有.java 编译成.class 文件, 而你公布之后运行
的是 jar 包 jar 包是 class 文件

快捷键(生成 get set 办法 + 构造方法)alt+insert

ORM 概念

对象映射关系映射 通过应用形容对和数据库之间映射的元数据

利用对象的形式操作数据库
1.resultType 应用场景:

字段名称与对象属性名统一
2.resultMap 应用场景
字段名称与对象属性名不统一
resultmap 应用办法

 #开启驼峰映射  简化 mybatis 映射的过程 规定 表字段 user_id(字段) 先去除下划线 之后首字母大写(UserId)
  configuration:
    map-underscore-to-camel-case: true

面试点 如果开启了驼峰规定映射
问字段 User_id 与对象 User_id 能不能映射?
不能
注意事项: 满足表字段带下划线 +pojo 中的属性命名为驼峰名

MybatisPlus(MP)

业务场景 (疾速纯熟的做增删改查(CURD))
MP 工作原理阐明:

对象与数据库任何映射?
1. 利用注解实现对象与表绑定 属性与字段绑定

如何解决泛滥接口编辑雷同的 CRUD 操作?
定义一个公共的 Mapper 接口, 定义公共的 curd 利用泛型辨别对象

数据库只对 sql 感兴趣, 对对象没趣味(如何将对象转化成 sql)?
依照特定的语法转化成 sql 语句
例子: 将对象插入数据库

对象与表绑定 属性与字段绑定
@Data
@Accessors(chain = true) // 链式
@TableName("user") // 实现表与对象的关联 user 与 user 对应
public class User implements Serializable {@TableId(type = IdType.AUTO)
 private Integer id;  // 主键 主键自增
 @TableField(value = "name") // 可省不写
 private String name;
 private Integer age;
 private  String sex;
 //alt+insert 生成 get() set() 办法
}
公共的 Mapper 接口
//@Mapper
// 留神泛型的援用 不增加泛型无奈实现
public interface UserMapper  extends BaseMapper<User> {

    // 查问全副数据库记录
    @Select("select * from user")
   public  List<User> findAll();}

yml 文件 加 -plus


mybatis-plus:
  type-aliases-package: com.jt.pojo #定义别名包  resultType="User" 会在 resultTyp 本人拼接包门路
  mapper-locations: classpath:/mybatis/mappers/*.xml
  #开启驼峰映射  简化 mybatis 映射的过程 规定 表字段 user_id(字段) 先去除下划线 之后首字母大写(UserId)
  configuration:
    map-underscore-to-camel-case: true

快捷键 ctrl+ o 查看所有办法

 url: jdbc:mysql:///jtdb?
 时区
serverTimezone=GMT%2B8
编码
&useUnicode=true&characterEncoding=utf8&
 
 mybatis 断开连接 主动连贯
 autoReconnect=true
 容许批量的操作
 &allowMultiQueries=true

MP API 介绍

// 测试查问  ID=21 的用户
@Test
public void select(){User user = userMapper.selectById(21);
    System.out.println(user);
    // 查问总记录数
    Integer integer = userMapper.selectCount(null);
    System.out.println(integer);
}
/*
测试查问  性别 = 女 年龄 >
  条件结构器: 动静拼接 where 条件的
  多条件中默认的连接符为 and
  eq(=)  gt(>) lt(<)
  ge(>=) le(<=)
 */
@Test
public void select02(){QueryWrapper<User> queryWrapper =new QueryWrapper<>();
    queryWrapper.eq("sex","男").gt("age",100);
    List<User> list = userMapper.selectList(queryWrapper);
    System.out.println(list);
}
// 查问 sex= 女 之后依照 age 顺叙排列 如果年龄雷同依照 id 降序排序
@Test
public void select03(){QueryWrapper<User> queryWrapper =new QueryWrapper<>();
    queryWrapper.eq("sex","女")
            .orderByDesc("age","id");
    List<User> list = userMapper.selectList(queryWrapper);
    System.out.println(list);
}
// 查问 id 为 1,3,4,7,9 的数据  关键字 in or(在关联查问慎用)
@Test
public void select04(){
   /*
   办法一
   List<Integer> idList=new ArrayList<>();
    idList.add(1);
    idList.add(3);
    idList.add(5);
    idList.add(7);*/
    // 办法 2
    Integer[] ids ={1,3,5,7};
    // 数组转汇合
    List<Integer> idList = Arrays.asList(ids);
    List<User> list = userMapper.selectBatchIds(idList);
    System.out.println(list);
}

/**
 * 需要 1 查问名称中蕴含 '精' 子的男性 "% 精 %"
 *      查问以精结尾的
 *      查问以精结尾
 */
@Test
public void select05() {QueryWrapper<User> queryWrapper = new QueryWrapper<>();
    queryWrapper.likeLeft("name","精").eq("sex","男");
    List<User> list = userMapper.selectList(queryWrapper);
    System.out.println(list);
}


// 测试入库操作 将用户信息 (王大锤 20) 存入
@Test
public void insert(){User user= new User();
    user.setName("王大翠").setAge(20).setSex("男");
    int rows= userMapper.insert(user);
    System.out.println(rows);
}
退出移动版