Mybatis基础实现——增,删,改,查

创建了一个名为books的MySQL数据库表,用于实现增删改查操作,包含了书籍的相关信息。接着在JavaEE项目中创建了Information实体类,定义了对应的Mapper接口及实现类,实现了查询、插入、删除和更新数据的方法。最后进行了测试操作。
摘要由CSDN通过智能技术生成

1,准备数据库,创建供增,删,改,查实现操作的mysql数据表books

DROP TABLE IF EXISTS `books`;
CREATE TABLE `books`  (
  `bkId` int NOT NULL AUTO_INCREMENT COMMENT '用户ID',
  `bkCode` int NOT NULL,
  `bkName` varchar(30) NOT NULL,
  `bkWriter` varchar(30) NOT NULL,
  `bkIfSale` enum('是','否') NOT NULL DEFAULT '是',
  `bkPrice` float(30, 2) NOT NULL,
  `bkTime` date NOT NULL,
  `bkInformation` varchar(255) NOT NULL,
  PRIMARY KEY (`bkId`) USING BTREE
) ENGINE = InnoDB;
#插入数据:
INSERT INTO `books` VALUES (1, 2021001, '《三国演义》', '罗贯中', '是', 89.90, '2021-03-06', '中国四大名著之一');
INSERT INTO `books` VALUES (2, 2021002, '《水浒传》', '施耐庵', '是', 69.90, '2021-05-31', '中国四大名著之一');
INSERT INTO `books` VALUES (3, 2021003, '《红楼梦》', '曹雪芹', '是', 79.50, '2022-03-06', '中国四大名著之一');
INSERT INTO `books` VALUES (4, 2021002, '《西游记》', '吴晨恩', '是', 89.50, '2022-05-31', '中国四大名著之一');
INSERT INTO `books` VALUES (5, 2021007, '《繁星》', '冰心', '否', 66.50, '2022-11-30', '是冰心的第一部诗集,诗集收入诗人1919年冬至1921年秋所写小诗164首,最初发于北京的《晨报》');
INSERT INTO `books` VALUES (6, 2021002, '《春水》', '冰心', '否', 49.90, '2022-11-28', '这是一本高度赞颂了母爱,自然等事物的诗集');
INSERT INTO `books` VALUES (7, 2021004, '《寄小读者》', '冰心', '是', 59.90, '2022-11-23', '是作家冰心创作的散文集,首次出版于1926年5月');
INSERT INTO `books` VALUES (8, 2021008, '《背影》', '朱自清', '否', 79.90, '2022-12-01', '是现代作家朱自清(1898-1948)于1925年所写的一篇回忆性散文');
INSERT INTO `books` VALUES (9, 2021009, '《春》', '朱自清', '否', 68.50, '2022-11-17', '是现代散文家朱自清的作品。《春》是朱自清的散文名篇,最初发表于1933年7月,此后长期被中国中学语文教材选用');
INSERT INTO `books` VALUES (10, 2021010, '《假如给我三天光明》', '海伦—凯勒', '是', 85.90, '2022-11-19', '是美国当代作家海伦·凯勒的散文代表作。该文的前半部分主要写了海伦变成盲聋人后的生活,后半部分则介绍了海伦的求学生涯');
INSERT INTO `books` VALUES (11, 2021012, '《我的人生故事》', '海伦—凯勒', '是', 53.90, '2022-11-10', '是海伦·凯勒的散文代表作,她以一个身残志坚的柔弱女子的视角,告诫身体健全的人们应珍惜生命,珍惜造物丰赐予的一切');
INSERT INTO `books` VALUES (12, 2021011, '《面朝大海,春暖花开》', '海子', '是', 69.30, '2022-11-21', '是海子于1989年所写的一首抒情诗。全诗共三节,第一节表现了诗人对质朴、单纯而自由的人生境界的向往,对“永恒”、未知世界的探寻精神');
INSERT INTO `books` VALUES (13, 2021013, '《老人与海》', '海明威', '是', 49.90, '2022-10-20', '是美国作家海明威于1951年在古巴写的一篇中篇小说,于1952年出版');
INSERT INTO `books` VALUES (14, 2021015, '《简爱》', '夏洛蒂·勃朗特', '是', 59.90, '2023-03-08', '讲述了这样一个故事:简•爱自幼父母双亡,投靠冷酷的舅母,但舅母无情地抛弃了她。她在一所慈善学校做了六年的学生和两年的教师');
INSERT INTO `books` VALUES (15, 2021016, '《朝花夕拾》', '鲁迅', '是', 49.50, '2023-03-02', '原名《旧事重提》,是现代文学家鲁迅的散文集,收录鲁迅于1926年创作的10篇回忆性散文,1928年由北京未名社出版,现编入《鲁迅全集》第2卷');
INSERT INTO `books` VALUES (16, 2021014, '《再别康桥》', '徐志摩', '否', 29.90, '2023-02-09', '是现代诗人徐志摩的诗作,是新月派诗歌的代表作品。此诗以离别康桥时感情起伏为线索,抒发了对康桥依依惜别的深情');
INSERT INTO `books` VALUES (17, 2021017, '《生命中不能承受之轻》', '米兰·昆德拉', '是', 49.50, '2023-03-10', '是作家米兰·昆德拉创作的长篇小说,首次出版于1984年。该小说描写了托马斯与特丽莎、萨丽娜之间的感情生活');
INSERT INTO `books` VALUES (18, 2021019, '《麦田里的守望者》', '杰罗姆·大卫·塞林格', '是', 39.80, '2023-03-01', '是美国作家杰罗姆·大卫·塞林格创作的唯一一部长篇小说,首次出版于1951年');
INSERT INTO `books` VALUES (19, 2021018, '《我的精神家园》', '王小波', '是', 69.50, '2023-03-08', '是2008年上海文艺出版总社、上海锦秀文章出版社出版的图书,作者是王小波');
INSERT INTO `books` VALUES (20, 2021021, '《活着》', '余华', '是', 69.80, '2023-03-02', '是中国当代作家余华创作的长篇小说,首次发表于《收获》1992年第6期');
INSERT INTO `books` VALUES (21, 2021024, '《美的历程》', '李泽厚', '否', 39.50, '2023-03-28', '本书是中国美学的经典之作。凝聚了作者李泽厚先生多年研究,他把中国人古往今来对美的感觉玲珑剔透地展现在大家眼前,如斯感性,如斯亲切');
INSERT INTO `books` VALUES (22, 2021025, '《四世同堂》', '老舍', '是', 68.90, '2023-02-22', '是中国作家老舍创作的一部百万字的小说。这是一部表现抗战北平沦陷区普通民众生活与抗战的长篇小说,全书共三部');
INSERT INTO `books` VALUES (23, 21030, '《测试》', 'admin', '否', 100000.00, '2001-05-04', '贺星星,21岁,是我国知名作家');
INSERT INTO `books` VALUES (24, 20112, '《星若梦》', 'admin', '否', 39.32, '2021-09-08', '贺星星是一个作家');
SET FOREIGN_KEY_CHECKS = 1;

2,打开IDEA并创建项目JavaEE

#创建实体类Information封装书籍信息:

package com.first.pojo;

import java.sql.Date;

public class Information {
    private int bkId;
    private int bkCode;
    private String bkName;
    private String bkWriter;
    private String bkIfSale;
    private float bkPrice;
    private Date bkTime;
    private String bkInformation;

    @Override
    public String toString() {
        return "Information{" +
                "bkId=" + bkId +
                ", bkCode=" + bkCode +
                ", bkName='" + bkName + '\'' +
                ", bkWriter='" + bkWriter + '\'' +
                ", bkIfSale=" + bkIfSale +
                ", bkPrice=" + bkPrice +
                ", bkTime=" + bkTime +
                ", bkInformation='" + bkInformation + '\'' +
                '}';
    }

    public int getBkId() {
        return bkId;
    }

    public void setBkId(int bkId) {
        this.bkId = bkId;
    }

    public int getBkCode() {
        return bkCode;
    }

    public void setBkCode(int bkCode) {
        this.bkCode = bkCode;
    }

    public String getBkName() {
        return bkName;
    }

    public void setBkName(String bkName) {
        this.bkName = bkName;
    }

    public String getBkWriter() {
        return bkWriter;
    }

    public void setBkWriter(String bkWriter) {
        this.bkWriter = bkWriter;
    }

    public String getBkIfSale() {
        return bkIfSale;
    }

    public void setBkIfSale(String bkIfSale) {
        this.bkIfSale = bkIfSale;
    }

    public float getBkPrice() {
        return bkPrice;
    }

    public void setBkPrice(float bkPrice) {
        this.bkPrice = bkPrice;
    }

    public Date getBkTime() {
        return bkTime;
    }

    public void setBkTime(Date bkTime) {
        this.bkTime = bkTime;
    }

    public String getBkInformation() {
        return bkInformation;
    }

    public void setBkInformation(String bkInformation) {
        this.bkInformation = bkInformation;
    }

}

#创建接口InformationMapper,并定义操作方法

package com.first.dao;

import com.first.pojo.Information;
import com.two.pojo.Users;

import java.util.List;
import java.util.Map;

public interface InformationMapper {
    //查询列表:
    public List<Information> selectBooks();

    //增加一条数据:
    public int insertBooks(Information information);
    //删除数据:
    public int deleteBooks(Integer BkId);
    //修改一条数据:
    public int updateBooks(Information information);
    //根据ID查询信息:
    public Information selectBooksById(Integer BkId);


}

#创建实现类InformationMapperImpl,实现方法:

package com.first.dao.impl;

import com.first.dao.InformationMapper;
import com.first.pojo.Information;
import com.first.utils.Mybatis;
import org.apache.ibatis.session.SqlSession;

import java.util.List;
import java.util.Map;

public class InformationMapperImpl implements InformationMapper {
    @Override
    public List<Information> selectBooks() {
        SqlSession session= Mybatis.getSqlSession();
        return session.selectList("selectBooks");
    }

    @Override
    public int insertBooks(Information information) {
        SqlSession session=Mybatis.getSqlSession();
        return session.insert("insertBooks",information);
    }

    @Override
    public int deleteBooks(Integer BkId) {
        SqlSession session=Mybatis.getSqlSession();
        return session.delete("deleteBooks",BkId);
    }

    @Override
    public int updateBooks(Information information) {
        SqlSession session=Mybatis.getSqlSession();
        return session.update("updateBooks",information);
    }

    @Override
    public Information selectBooksById(Integer bkId) {
        SqlSession session=Mybatis.getSqlSession();
        return session.selectOne("selectBooksById",bkId);
    }

}

#创建Mappers映射文件(namespace路径不要错):

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<!--namespace的值通常为接口的全限定名-->
<mapper namespace="com.first.dao.InformationMapper">
<!--    根据列表查询信息:-->
    <select id="selectBooks" parameterType="Information" resultType="Information">
        select * from books
    </select>
<!--    增加信息:-->
    <insert id="insertBooks" parameterType="Information">
        insert into books (bkId,bkCode,bkName,bkWriter,bkIfSale,bkPrice,bkTime,bkInformation)
        values (#{bkId},#{bkCode},#{bkName},#{bkWriter},#{bkIfSale},#{bkPrice},#{bkTime},#{bkInformation})
    </insert>
<!--    删除信息:-->
    <delete id="deleteBooks" parameterType="Integer">
        delete from books where bkId=#{bkId}
    </delete>
<!--    修改信息:-->
    <update id="updateBooks" parameterType="Information">
        update books set bkCode=#{bkCode},bkName=#{bkName},bkWriter=#{bkWriter},bkIfSale=#{bkIfSale},bkPrice=#{bkPrice},bkTime=#{bkTime},bkInformation=#{bkInformation} where bkId=#{bkId}
    </update>
<!--    根据ID查询信息:-->
    <select id="selectBooksById" parameterType="Integer" resultType="Information">
        select * from books where bkId=#{bkId}
    </select>

</mapper>

#创建测试类:

import com.first.dao.InformationMapper;
import com.first.dao.impl.InformationMapperImpl;
import com.first.pojo.Information;
import com.first.utils.table.Table;
import org.junit.Test;

import java.sql.Date;
import java.text.SimpleDateFormat;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class First {

    public static void main(String[] args) {
        InformationMapper information=new InformationMapperImpl();
        List<Information> information1= information.selectBooks();
        for (Information o:information1){
            System.out.println(o);
        }
    }

    @Test
    public void TestInsertBooks(){
        Information information=new Information();
        information.setBkId(23);
        information.setBkCode(21030);
        information.setBkName("《测试》");
        information.setBkWriter("admin");
        information.setBkIfSale("否");
        information.setBkPrice(100000);
        information.setBkTime(Date.valueOf("2001-05-04"));
        information.setBkInformation("admin,21岁,是我国知名作家");
        InformationMapper informationMapper=new InformationMapperImpl();
        informationMapper.insertBooks(information);
    }

    @Test
    public void TestDeleteBooks(){
        InformationMapper information=new InformationMapperImpl();
        information.deleteBooks(23);
    }

    @Test
    public void TestUpdateBooks(){
        Information information=new Information();
        information.setBkId(40);
        information.setBkCode(21030);
        information.setBkName("《星辰大海》");
        information.setBkWriter("admin");
        information.setBkIfSale("是");
        information.setBkPrice(100000);
        information.setBkTime(Date.valueOf("2001-05-04"));
        information.setBkInformation("admin,21岁,是我国知名作家");
        InformationMapper informationMapper=new InformationMapperImpl();
        informationMapper.updateBooks(information);
    }

    @Test
    public void TestSelectBooksById(){
        InformationMapper information=new InformationMapperImpl();
        Information informations= information.selectBooksById(3);
        System.out.println(informations);
    }


}

#运行结果如下

--为了美观特意添加了Swing窗体,具体窗体代码在关联查询里有JFrame代码

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值