《web应用技术》第5次课后作业

1、在idea中配置好数据源

  • 准备工作(创建springboot工程、数据库表user、实体类User)
  • 引入相关依赖,配置数据库连接信息
  • 编写SQL语句(注解/XML)

创建数据表user

创建实体类 User

package com.caz.pojo;

public class User {
    private Integer id;
    private String name;
    private short age;
    private short gender;
    private String phone;

    public User() {
    }

    public User(Integer id, String name, short age, short gender, String phone) {
        this.id = id;
        this.name = name;
        this.age = age;
        this.gender = gender;
        this.phone = phone;
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public short getAge() {
        return age;
    }

    public void setAge(short age) {
        this.age = age;
    }

    public short getGender() {
        return gender;
    }

    public void setGender(short gender) {
        this.gender = gender;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", age=" + age +
                ", gender=" + gender +
                ", phone='" + phone + '\'' +
                '}';
    }
}

配置数据库连接信息

编写SQL语句

package com.caz;

import com.caz.mapper.UserMapper;
import com.caz.pojo.User;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

import java.util.List;

@SpringBootTest//springboot整合单元测试的注解
class MybatisApplicationTests {
    @Autowired//依赖注入
    private UserMapper userMapper;

    @Test
    public void testListUser(){
        List<User> userList = userMapper.list();//调用接口中的list方法来查询
        userList.stream().forEach(user ->{
            System.out.println(user);
        });
    }
}

测试程序运行结果

2、视频案例中只给出了查询所有结果的示例,在这个基础上完成添加、删除、修改操作的代码。

插入信息

//插入信息
    @Insert("insert into user(name, age, gender, phone) values (#{name}, #{age}, #{gender}, #{phone})")
    public void insert(User user);
 @Test
    public void testInsert(){
        //构造对象
        User user=new User();
        user.setName("陈安志");
        user.setAge((short) 20);
        user.setGender((short)1);
        user.setPhone("15671629190");
        userMapper.insert(user);
    }

 

删除信息

//删除指定id的信息
    @Delete("delete from user where id=#{id}")
    public void delete(Integer id);
@Test
    public void testDelete() {
        userMapper.delete(3);
        testListUser();
    }

修改信息 

@Update("update user set name=#{name} where id=#{id} ")
    public void update(User user);
@Test
    public void testUpdate(){
        List<User> userList = userMapper.list();
        User user=userList.get(2);
        user.setName("222");
        userMapper.update(user);
        testListUser();
    }

3、idea的sql 控制台,可以测试sql语句是否正确。所以mapper接口中的sql语句可以先测试。对于有参数的情况,用?代替。

4、lombok库的使用。尝试将实体类采用注解的方式来实现。 (通过添加注解,使其自动为实体类中的属性生成相应的方法)

5、对以下案例使用mybatis进行添加、删除、修改、更新的操作。(不需要实现页面,test中控制台能输出结果就行。)

首先创建表writer,并插入信息

create table writer(
                       id int unsigned primary key auto_increment comment 'ID',
                       name varchar(5) comment '姓名',
                       gender char comment '性别',
                       dynasty varchar(10) comment '朝代',
                       title varchar(15) comment '头衔',
                       style varchar(20) comment '风格'
) comment '诗人信息';
insert into writer(id, name, gender, dynasty,title,style) VALUES (null,'陶渊明','男','东晋末至南朝宋初期','诗人和辞赋家','古今隐逸诗人之宗');
insert into writer(id, name, gender, dynasty,title,style) VALUES (null,'王维','男','唐代','诗佛','空灵、寂静');
insert into writer(id, name, gender, dynasty,title,style) VALUES (null,'李白','男','唐代','诗仙','豪放飘逸的诗风和丰富的想象力');
insert into writer(id, name, gender, dynasty,title,style) VALUES (null,'李商隐','女','唐代','诗坛鬼才','无');
insert into writer(id, name, gender, dynasty,title,style) VALUES (null,'李清照','女','宋代','女词人','婉约风格');
insert into writer(id, name, gender, dynasty,title,style) VALUES (null,'杜甫','男','唐代','诗圣','反映社会现实和人民疾苦');
insert into writer(id, name, gender, dynasty,title,style) VALUES (null,'苏轼','男','北宋','文学家、书画家,诗神','清新豪健的诗风和独特的艺术表现力');

创建实体类Writer 

package com.caz.pojo;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@AllArgsConstructor
@NoArgsConstructor
public class Writer {
    private Integer id;
    private String name;
    private char gender;
    private String dynasty;
    private String title;
    private String style;
}

查找

@Select("select * from writer")//查询注解,表明执行查询操作
    public List<Writer> list();
 @Test
    public void testListWriter(){
        List<Writer> writerList = writerMapper.list();//调用接口中的list方法来查询
        writerList.stream().forEach(writer ->{
            System.out.println(writer);
        });
    }

 

删除

//删除指定id的信息
    @Delete("delete from writer where id=#{id}")
    public void delete(Integer id);
@Test
    public void writerDelete() {
        writerMapper.delete(3);
        testListWriter();//列出结果
    }

 

插入

@Test
    public void writerInsert(){
        //构造对象
        Writer writer=new Writer();
        writer.setName("王安石");
        writer.setGender('男');
        writer.setDynasty("唐代");
        writer.setTitle("五柳先生");
        writer.setStyle("含蓄深婉");
        writerMapper.insert(writer);
        testListWriter();//列出结果
    }
//插入信息
    @Insert("insert into writer(name, gender, dynasty, title,style) values (#{name}, #{gender}, #{dynasty}, #{title},#{style})")
    public void insert(Writer writer);

 

更新 

//更新信息
    @Update("update writer set title=#{title} where id=#{id} ")
    public void update(Writer writer);
@Test
    public void writerUpdate(){
        Writer writer=new Writer();
        writer.setId(9);
        writer.setTitle("临川先生");
        writerMapper.update(writer);
        testListWriter();
    }

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值