12-如何使用Genarator逆向工程

Posted on 2021-06-05 23:11  萌栈师  阅读(79)  评论(0编辑  收藏  举报

使用逆向工程,帮我们更快的建立pojo类、mapper接口及xml映射文件等,无需手写,替代了一部分的mybatis功能。

一、导入MyGenarator逆向工程项目

二、修改xml配置文件


三、执行代码

生成与自己项目结构相同的文件

四、将文件拷贝至自己项目下

五、使用

1.查询

1.1 无条件查询

/**
* 1.查询所有学生信息
*/
@Test
public void getStudent(){
    //查询所有,查询条件
    List<Student> studentList = studentMapper.selectByExample(null);
    System.out.println(studentList);
}

执行结果:

1.2 单条件查询

/**
* 2.根据姓名查学生信息
*/
@Test
public void getStuByName(){
    //添加条件
    StudentExample exp = new StudentExample();
    exp.createCriteria().andSnameEqualTo("静静");
    List<Student> studentList = studentMapper.selectByExample(exp);
    System.out.println(studentList);
}

执行结果:

1.3 多条件查询

/**
* 3.根据姓名,sid查学生信息
*/
@Test
public void getStuByNameSid(){
    //添加条件
    StudentExample exp = new StudentExample();
    exp.createCriteria().andSnameEqualTo("大林子").andSidEqualTo(3);
    List<Student> studentList = studentMapper.selectByExample(exp);
    System.out.println(studentList);
}

执行结果:

2. 删除

2.1 根据主键删除

/**
* 根据主键删除
*/
@Test
public void deleteByKey(){
    int i = studentMapper.deleteByPrimaryKey(10);
    System.out.println(i);
    sqlSession.commit();
    sqlSession.close();
}

执行结果:

2.2 根据自定义条件删除

/**
* 根据自定义条件删除
*/
@Test
public void delete(){
    StudentExample exp = new StudentExample();
    //添加姓名条件
    exp.createCriteria().andSnameEqualTo("阿飞");
    int i = studentMapper.deleteByExample(exp);
    System.out.println(i);
    sqlSession.commit();
    sqlSession.close();
}

执行结果:

3. 新增

3.1 新增一条数据(所有列)

/**
* 增加学生信息
*/
@Test
public void add(){
    Student student = new Student();
    //sid是主键,自增,可以不写
    student.setSname("章子");
    student.setAge(20);
    student.setCid(3);
    int i = studentMapper.insert(student);
    System.out.println(i);
    sqlSession.commit();
    sqlSession.close();
}

执行结果:

3.2 根据列名新增一条数据(其余默认)

@Test
public void add2(){
    Student student = new Student();
    student.setSname("关晓彤");
    student.setAge(18);
    int i = studentMapper.insertSelective(student);
    System.out.println(i);
    sqlSession.commit();
    sqlSession.close();
}

执行结果:

  • 以上两者区别在于sql语句不同

4. 修改

4.1 根据条件修改信息(所有属性信息)

/**
* 根据条件修改
*/
@Test
public void update(){
    Student student = new Student();
    //主键不可省略(不可以修改为null)
    student.setSid(15);
    student.setAge(22);
    StudentExample exp = new StudentExample();
    exp.createCriteria().andSnameEqualTo("章子");
    //将姓名为"章子"的信息修改为student
    int i = studentMapper.updateByExample(student,exp);
    System.out.println(i);
    sqlSession.commit();
    sqlSession.close();
}

执行结果:

  • 主键不可省略
  • 根据pojo类中所有的属性进行修改,没有定义的即修改为null

4.2 根据条件修改某列(修改固定列)

/**
* 根据条件修改某列
*/
@Test
public void update2(){
    Student student = new Student();
    student.setAge(22);
    StudentExample exp = new StudentExample();
    exp.createCriteria().andSnameEqualTo("老王");
    //将姓名为"老王"的信息修改:修改年龄列
    int i = studentMapper.updateByExampleSelective(student,exp);
    System.out.println(i);
    sqlSession.commit();
    sqlSession.close();
}

执行结果:

4.3 根据主键修改信息(除主键外的所有属性信息)

/**
* 根据主键修改
*/
@Test
public void update3(){
    Student student = new Student();
    student.setSid(4);
    student.setSname("岳岳");
    //根据主键sid,修改这一条所有数据
    int i = studentMapper.updateByPrimaryKey(student);
    sqlSession.commit();
    sqlSession.close();
}

执行结果:

4.4 根据主键修改某列(修改固定列)

/**
* 根据主键修改固定列
*/
@Test
public void update4(){
    Student student = new Student();
    student.setSid(8);
    student.setCid(1);
    //根据主键sid,修改固定列cid的值
    int i = studentMapper.updateByPrimaryKeySelective(student);
    System.out.println(i);
    sqlSession.commit();
    sqlSession.close();
}

执行结果:

Copyright © 2024 萌栈师
Powered by .NET 9.0 on Kubernetes