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

1.idea中配置数据库

2.mybatis——查询,删除,修改,新增操作

UserMapper——接口中定义查询,删除,修改,新增操作

@Mapper//运行时自动生成代理实现类(会实现sql的方法)并创建对象,然后将对象交给IOC容器管理
public interface UserMapper {
    //查询所有数据
    @Select("select * from user" )
    public List<User> list();

    //删除id是某个值的数据
    @Select("delete from user where id=#{id}")//#{id}用于参数绑定
    public void delete(int id);

    //插入一条用户信息
    @Select("insert into user(name, age, gender, phone) values (#{name},#{age},#{gender},#{phone})")
    public void insert(User user);

    //修改id为**的用户名
    @Select("update user set name=#{name} where id=#{id}")
    public void update(User user);

    //查询id为#的用户信息
    @Select("select * from user where id= #{id} ")
    public User get(int id);

}

SpringbootMybatisQuickstartApplicationTest——test测试语句

package edu.wust.springbootmybatisquickstart;

import edu.wust.springbootmybatisquickstart.mapper.UserMapper;
import edu.wust.springbootmybatisquickstart.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
class SpringbootMybatisQuickstartApplicationTests {

    @Autowired
    private UserMapper usermapper;

    //stream查询所有数据
    @Test
    public void testListUser(){
        List<User> l = usermapper.list();
        //stream可用来处理list集合将其转化为一个流,forEach方法处理流中的每个元素(命名为user)
        l.stream().forEach(user -> {
            System.out.println(user.getId()+","+user.getName()+","+user.getAge()+","+user.getGender()+","+user.getPhone());
        });
    }

    //for循环查询所有数据
    @Test
    public void listAll(){
        List<User> l=usermapper.list();
        for(User user :l){
            System.out.print(user.getId()+",");
            System.out.print(user.getName()+",");
            System.out.print(user.getAge()+",");
            System.out.print(user.getGender()+",");
            System.out.println(user.getPhone());
        }
    }

    //修改id为8的user的姓名
    @Test
    public void update(){
        List<User> l=usermapper.list();
        User C=l.get(2);//通过索引获取list集合中第3个元素(index索引是2)
        C.setName("lion");
        usermapper.update(C);

        listAll();
    }

    //获取id为8的元素
    @Test
    public void get(){
        usermapper.get(8);
        listAll();
    }

    //删除id为8的元素
    @Test
    public void delete(){
        usermapper.delete(8);
        listAll();
    }

    //插入元素
    @Test
    public void insert(){
        User c=new User(7,"tony",(short)55,(short)2,"123334");//有参构造
        usermapper.insert(c);

        //无参构造
        User b=new User();
        b.setName("Jone");
        b.setAge((short)24);
        b.setGender((short)1);
        b.setPhone("92819839");
        usermapper.insert(b);

        listAll();
    }
}

3.idea的sql 控制台,测试sql语句

?代替参数

select id,name,gender,age,phone from user;

insert into user(name, age, gender, phone) values (?,?,?,?);

delete from user where id=?;

update user set name=? where  id=?;

4、lombok库的使用,尝试将实体类采用注解的方式来实现。

User类

package edu.wust.springbootmybatisquickstart.pojo;

import lombok.*;
/*
@Getter
@Setter
@ToString
@EqualsAndHashCode
 */
@Data//包含以上四个注解
@NoArgsConstructor//无参构造
@AllArgsConstructor//全参构造

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

5.学习idea的调试技巧

行断点

方法断点

字段断点

条件断点

异常断点

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

step1:sql创建表

create table writer(
                     id int unsigned primary key auto_increment comment 'ID',
                     name varchar(3) comment '姓名',
                     gender char comment '性别',
                     dynasty varchar(10) comment '朝代',
                     title varchar(15) comment '头衔',
                     style varchar(20) comment '风格'
) comment '诗人信息';

step2:添加信息

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,'苏轼','男','北宋','文学家、书画家,诗神','清新豪健的诗风和独特的艺术表现力');

step3:mybatis实现对表信息的添加,删除,修改更新

实体类Writer.java

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

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

WriterMapper接口

package edu.wust.springbootmybatisquickstart.mapper;

import edu.wust.springbootmybatisquickstart.pojo.User;
import edu.wust.springbootmybatisquickstart.pojo.Writer;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;

import java.util.List;

@Mapper
public interface WriterMapper {
    //查询id为#诗人信息
    @Select("select * from user where id= #{id} ")
    public User get(int id);

    //查询所有数据
    @Select("select * from writer")
    public List<Writer> list();

    //删除id是某个值的数据
    @Select("delete from user where id=#{id}")
    public void delete(int id);

    //插入一条诗人信息
    @Select("insert into writer(name,gender,dynasty,title,style) values (#{name},#{gender},#{dynasty},#{title},#{style})")
    public void insert(Writer writer);

    //修改id为**的诗人姓名
    @Select("update Writer set name=#{name} where id=#{id}")
    public void update(Writer writer);
}

mybatis实现操作

@SpringBootTest
class SpringbootMybatisQuickstartApplicationTests {

    @Autowired
    private WriterMapper writerMapper;

    @Test
    public void listAll(){
        List<Writer> l=writerMapper.list();
        for(Writer writer :l){
            System.out.print(writer.getId()+",");
            System.out.print(writer.getName()+",");
            System.out.print(writer.getGender()+",");
            System.out.print(writer.getDynasty()+",");
            System.out.print(writer.getTitle()+",");
            System.out.println(writer.getStyle());
        }
    }

    @Test
    public void insert() {
        Writer c = new Writer(8,"骆宾王", '男', "唐代", "初唐四杰之一", "以五言律诗见长");//有参构造
        writerMapper.insert(c);
        listAll();
    }

    //修改id为8的user的姓名
    @Test
    public void update(){
        List<Writer> l=writerMapper.list();
        Writer C=l.get(7);
        C.setName("luo");
        writerMapper.update(C);

        listAll();
    }

    //删除id为10的元素
    @Test
    public void delete(){
        writerMapper.delete(10);
        listAll();
    }


}

实现结果

插入

修改

删除

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值