基于MyBatis与Java的药箱管理系统

学完mybatis的增删改查顺便做一下java课程大作业
仅是一个适合mybatis的初学者的项目代码

meaven总名:Mybatis-study
meaven子名:testwork
数据库名称:workplace
表名称:drugs
工具:idea

项目框架
在这里插入图片描述

标题最外层pom.xml文件代码

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>org.example</groupId>
    <artifactId>Mybatis-study</artifactId>
    <packaging>pom</packaging>
    <version>1.0-SNAPSHOT</version>
    <modules>
        <module>testwork</module>
    </modules>
    <dependencies>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.46</version>
        </dependency>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.2</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
<!--            <scope>test</scope>-->
        </dependency>
    </dependencies>

    <build>
        <resources>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.properties</include>
                    <include>**/*.xml</include>
                </includes>
                <filtering>true</filtering>
            </resource>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.properties</include>
                    <include>**/*.xml</include>
                </includes>
                <filtering>true</filtering>
            </resource>
        </resources>
    </build>
</project>

标题内层pom.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <parent>
        <artifactId>Mybatis-study</artifactId>
        <groupId>org.example</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>testwork</artifactId>
    <build>
        <resources>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.properties</include>
                    <include>**/*.xml</include>
                </includes>
                <filtering>true</filtering>
            </resource>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.properties</include>
                    <include>**/*.xml</include>
                </includes>
                <filtering>true</filtering>
            </resource>
        </resources>
    </build>

</project>

mapper类接口代码(DrugMapper内)

package com.mie.dao;

import com.mie.pojo.Drugs;

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

public interface DrugMapper {
    //添加药品数量
    int addDrug(Map<String, Object> map);

    //减少药品数量
    int reduceDrug(Map<String, Object> map);

    //增加信息
    int insertDrugs(Map<String, Object> map);

    //删除信息
    int deleteDrugById(int id);

    //查询所有数据
    List<Drugs> getAllDrug();

    //通过名称查询药品
    List<Drugs> getDrugByName(String Name);

    //通过id查询药品
    Drugs getDrugById(int id);
}

dao文件中xml文件代码

<?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">
<mapper namespace="com.mie.dao.DrugMapper">
    <update id="addDrug" parameterType="map">
        update workplace.drugs set Drug_Sum = #{Drug_Sum} where id = #{id}
    </update>

    <update id="reduceDrug" parameterType="map">
        update workplace.drugs set Drug_Sum = #{Drug_Sum} where id = #{id}
    </update>

    <insert id="insertDrugs" parameterType="map">
        insert into workplace.drugs(id, Drug_Name, Drug_Sum,Drug_Condition) values(#{id},#{drugName},#{drugSum},#{drugCon})
    </insert>

    <delete id="deleteDrugById" parameterType="int">
        delete from drugs where id = #{id}
    </delete>

    <select id="getAllDrug" resultType="com.mie.pojo.Drugs">
        select * from workplace.drugs
    </select>

    <select id="getDrugByName" parameterType="String" resultType="com.mie.pojo.Drugs">
        select * from workplace.drugs where Drug_Name like #{Drug_Name};
    </select>

    <select id="getDrugById" parameterType="int" resultType="com.mie.pojo.Drugs">
        select * from workplace.drugs where id = #{id}
    </select>
</mapper>

pojo文件内Drugs类代码

package com.mie.pojo;

public class Drugs {
    private int id;
    private String Drug_Name;
    private int Drug_Sum;
    private String Drug_Condition;

    public Drugs(){

    }
    public Drugs(int id, String name, int sum, String drug_Condition) {
        this.id = id;
        this.Drug_Name = name;
        this.Drug_Sum = sum;
        this.Drug_Condition = drug_Condition;
    }

    public void setDrug_Id(int id) {
        id = id;
    }

    public int getDrug_Id() {
        return id;
    }

    public void setDrug_Name(String drug_Name) {
        Drug_Name = drug_Name;
    }

    public String getDrug_Name() {
        return Drug_Name;
    }

    public void setDrug_Sum(int drug_Sum) {
        Drug_Sum = drug_Sum;
    }

    public int getDrug_Sum() {
        return Drug_Sum;
    }

    public void setDrug_Condition(String drug_Condition) {
        Drug_Condition = drug_Condition;
    }

    public String getDrug_Condition() {
        return Drug_Condition;
    }

    @Override
    public String toString() {
        return "Drugs{" +
                "Drug_Id=" + id +
                ", Drug_Name='" + Drug_Name + '\'' +
                ", Drug_Sum=" + Drug_Sum +
                ", Drug_Condition='" + Drug_Condition + '\'' +
                '}';
    }
}

工具类代码(MybatisUtils)

package com.mie.utils;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import java.io.IOException;
import java.io.InputStream;

public class MybatisUtils {
    private static SqlSessionFactory sqlSessionFactory;
    static {
        try{
            String resource = "mybatis-config.xml";
            InputStream inputStream = Resources.getResourceAsStream(resource);
            sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public static SqlSession getSqlSession() {
        return sqlSessionFactory.openSession();
    }
}

resouers文件内xml代码

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/workplace?useUnicode=true&amp;characterEncoding=utf8&amp;useSSL=true"/>
                <property name="username" value="root"/>
                <property name="password" value="123456"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <mapper resource="com/mie/dao/DrugMapper.xml"/>
    </mappers>
</configuration>

最终运行代码(test内dao文件代码)

package com.mie.dao;

import com.mie.pojo.Drugs;
import com.mie.utils.MybatisUtils;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;

import java.util.HashMap;
import java.util.List;
import java.util.Scanner;
//方法
public class DrugsDaoTest {
    @Test
    public void addDrugById(int sum, int id) {
        SqlSession sqlSession = MybatisUtils.getSqlSession();

        try{
            DrugMapper drugMapper = sqlSession.getMapper(DrugMapper.class);
            HashMap<String, Object> map = new HashMap<String, Object>();
            Drugs drugs = drugMapper.getDrugById(id);
            sum += drugs.getDrug_Sum();


            map.put("Drug_Sum", sum);
            map.put("id", id);
            int res = drugMapper.addDrug(map);
            if(res > 0) {
                System.out.println("添加成功");
            }

//            提交事务
            sqlSession.commit();
        }
        catch (Exception e) {
            e.fillInStackTrace();
        }
        finally {
            sqlSession.close();
        }
    }

    @Test
    public void reduceDrugById(int sum, int id) {
        SqlSession sqlSession = MybatisUtils.getSqlSession();

        try{
            DrugMapper drugMapper = sqlSession.getMapper(DrugMapper.class);
            HashMap<String, Object> map = new HashMap<String, Object>();
            Drugs drugs = drugMapper.getDrugById(id);
            sum = drugs.getDrug_Sum() - sum;

            if(sum < 0) {
                System.out.println("减少后药品数量小于0,减少失败");
                return;
            }

            map.put("Drug_Sum", sum);
            map.put("id", id);
            int res = drugMapper.reduceDrug(map);
            if(res > 0) {
                System.out.println("减少成功");
            }

//            提交事务
            sqlSession.commit();
        }
        catch (Exception e) {
            e.fillInStackTrace();
        }
        finally {
            sqlSession.close();
        }
    }

    @Test
    public void getAllDrug() {
        SqlSession sqlSession = MybatisUtils.getSqlSession();

        try{
            DrugMapper drugMapper = sqlSession.getMapper(DrugMapper.class);
            List<Drugs> drugsList = drugMapper.getAllDrug();

            for(Drugs drugs:drugsList) {
                System.out.println(drugs);
            }
        }
        catch (Exception e) {
            e.fillInStackTrace();
        }
        finally {
            sqlSession.close();
        }
    }

    @Test
    public void getDrugByName(String name) {
        SqlSession sqlSession = MybatisUtils.getSqlSession();

        try{
            DrugMapper drugMapper = sqlSession.getMapper(DrugMapper.class);
            List<Drugs> drugsList = drugMapper.getDrugByName(name);

            int i = 0;
            for(Drugs drugs:drugsList) {
                i++;
                System.out.println(drugs);
            }
            if(i == 0) {
                System.out.println("查无此药!!");
            }
        }
        catch (Exception e) {
            e.fillInStackTrace();
        }
        finally {
            sqlSession.close();
        }
    }

    @Test
    public void getDrugById(int id) {
        SqlSession sqlSession = MybatisUtils.getSqlSession();

        try{
            DrugMapper drugMapper = sqlSession.getMapper(DrugMapper.class);
            Drugs drug = drugMapper.getDrugById(id);

            System.out.println(drug.toString());
        }
        catch (Exception e) {
            e.fillInStackTrace();
        }
        finally {
            sqlSession.close();
        }
    }

    @Test
    public void insertDrugs(String name, int sum, String con) {
        SqlSession sqlSession = MybatisUtils.getSqlSession();
        try{
            DrugMapper drugMapper = sqlSession.getMapper(DrugMapper.class);
            List<Drugs> drugsList = drugMapper.getAllDrug();
            HashMap<String, Object> map = new HashMap<String, Object>();
            int id = 0,flag = 0;

            map.put("id", id);
            map.put("drugName", name);
            map.put("drugSum", sum);
            map.put("drugCon", con);

            for(int i = 0; i < drugsList.size(); i++) {
                if((i+1) != drugsList.get(i).getDrug_Id() && flag == 0) {
                    id = i+1;
                    flag = 1;
                }
                if(name.equals(drugsList.get(i).getDrug_Name())) {
                    System.out.println("插入药品信息失败,已有相同药品");
                }
            }
            if(flag == 0) id = drugsList.size() + 1;

            int res = drugMapper.insertDrugs(map);
            if(res > 0) {
                System.out.println("插入成功");
            }

//            提交事务
            sqlSession.commit();
        }
        catch (Exception e) {
            e.fillInStackTrace();
        }
        finally {
            sqlSession.close();
        }
    }

    @Test
    public void deleteDrugById(int id) {
        SqlSession sqlSession = MybatisUtils.getSqlSession();

        try{
            DrugMapper drugMapper = sqlSession.getMapper(DrugMapper.class);
            int res = drugMapper.deleteDrugById(id);

            if(res > 0) {
                System.out.println("删除成功");
            }

            sqlSession.commit();
        }
        catch (Exception e) {
            e.fillInStackTrace();
        }
        finally {
            sqlSession.close();
        }
    }
}
//主函数
class Main{
    public static Scanner in = new Scanner(System.in);
    public static DrugsDaoTest d = new DrugsDaoTest();
    public static int key;

    public static int welcome()//初始欢迎界面
    {
        System.out.println("        欢迎来到药箱管理程序\n");
        System.out.println("    【1】打开药箱     【2】离开");
        System.out.print("请输入指令:");
        key = in.nextInt();
        switch (key) {
            case 1:{
                for(int i = 0; i <= 7; i++) {
                    try {
                        Thread.currentThread().sleep(500);
                    }catch (Exception e){
                        e.fillInStackTrace();
                    }
                    System.out.println("               |");
                }
                System.out.println("==============================");
                System.out.println("            我的药箱");
                return 1;
            }
            case 2:return 0;
        }
        return 0;
    }
    public static void utils()//功能表输出
    {
        System.out.println("==============================");
        System.out.println(" 1,增加药品          2,减少药品");
        System.out.println(" 3,添加信息          4,删除信息");
        System.out.println(" 5,查询药品          6,退出");
    }

    public static void addDrug()//1,添加药品
    {
        System.out.print("请输入要添加药品的id:");
        int id = in.nextInt();
        System.out.print("请输入要添加药品的数量:");
        int sum = in.nextInt();
        d.addDrugById(sum, id);

    }

    public static void reduceDrug()//2,减少药品
    {
        System.out.print("请输入要减少药品的id:");
        int id = in.nextInt();
        d.getDrugById(id);
        System.out.print("请输入要减少药品的数量:");
        int sum = in.nextInt();
        d.reduceDrugById(sum, id);

    }

    public static void insert()//3,添加信息
    {
        String Name, Con;
        String[] str = {"capsule","table","other"};
        int sum;
        System.out.print("请输入所添加药品名称:");
        Name = in.next();
        System.out.print("请输入所添加药品数量:");
        sum = in.nextInt();
        System.out.print("请选择所添加药品类型:");
        System.out.println("【1】capsule 【2】tablet 【3】other");
        System.out.print("请选择:");
        Con = str[in.nextInt() - 1];
        d.insertDrugs(Name, sum, Con);
    }

    public static void delect()//4,删除信息
    {
        System.out.print("请输入所删除药品的id:");
        d.deleteDrugById(in.nextInt());
    }

    public static void search()//5,查询药品
    {
        String name = "";
        System.out.println("  【1】查询所有药品信息  【2】通过药品名称查询 【3】通过药品id查询");
        System.out.print("请输入指令:");
        key = in.nextInt();
        System.out.println("==============================");
        switch (key) {
            case 1:{
                System.out.println("      【1】查询所有药品信息");
                d.getAllDrug();
                break;
            }
            case 2:{
                System.out.println("      【2】通过药品名称查询 ");
                name = in.next();
                if(name.length() == 0) return;
                name = "%" + name + "%";
                d.getDrugByName(name);
                break;
            }
            case 3:{
                System.out.println("       【3】通过药品id查询");
                System.out.print("请输入药品id:");
                key = in.nextInt();
                d.getDrugById(key);
                break;
            }
        }
    }
    public static void open()//打开药箱
    {

        while(true) {
            utils();
            System.out.print("请输入指令:");
            key = in.nextInt();
            System.out.println("==============================");
            switch (key) {
                case 1:{
                    addDrug();
                    break;
                }
                case 2:{
                    reduceDrug();
                    break;
                }
                case 3:{
                    insert();
                    break;
                }
                case 4:{
                    delect();
                    break;
                }
                case 5:{
                    search();
                    break;
                }
                case 6:{
                    return;
                }
            }
        }
    }

    public static void main(String[] args) {
        if(welcome() == 0) return;
        open();
    }
}

运行结果

请添加图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值