1

项目打包

image.png
点击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使用方法
image.png

 #开启驼峰映射  简化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);
}

泽诺熙
25 声望2 粉丝

下一篇 »
Dubbo