学完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&characterEncoding=utf8&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();
}
}
运行结果