Java入门:用jdbc实现宠物商店管理系统

用jdbc实现宠物商店管理系统

1.开发语言:Java
2.开发工具:eclipse,MySql数据库
3.开发环境:jdk1.8
4.操作系统:win10

新这里是运行图片,代码在图片下面

在这里插入图片描述
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
在这里插入图片描述

这里是主程序测试类Test

// Main
package petStore1;

public class Test {

	public static void main(String[] args) {
		System.out.println("宠物商店启动");
		PetManage pm=new PetManage();
		pm.showAll();

	}
}

这里是工具类BaseDAO

用来对数据库进行增删改查的一个工具类

// BaseDAO
package petStore1;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class BaseDAO {

	public Connection conn = null;
	public PreparedStatement state = null;
	public ResultSet rs = null;
	
	
	

	public Connection getConnection() {
		try {
			Class.forName("com.mysql.jdbc.Driver");
			conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/petshop", "root", "123");
		} catch (Exception e) {
			e.printStackTrace();
		}
		return conn;
	}
	public int update(String sql, Object...obs) throws SQLException {
		int result = 0;
		conn = getConnection();
		state = conn.prepareStatement(sql);

		for (int i = 0; i < obs.length; i++) {
			state.setObject(i + 1, obs[i]);
		}
		result = state.executeUpdate();
		return result;
	}

	public ResultSet search(String sql, Object...obs) {
		try {
			conn = getConnection();
			state = conn.prepareStatement(sql);
			for (int i = 0; i < obs.length; i++) {
				state.setObject(i + 1, obs[i]);
			}
			rs = state.executeQuery();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return rs;
	}
	public void closeObject1() {
		try {
			if (rs != null) {
				rs.close();
			}
			if (state != null) {
				state.close();
			}
			if (conn != null) {
				conn.close();
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	public void closeObject2(AutoCloseable... obs) {
		try {
			for (int i = 0; i < obs.length; i++) {
				if (obs[i] != null) {
					obs[i].close();
				}
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

}

这里是要用到的所有方法的一个类PetManage

因为我还没学怎么合理的把各种类放到各个包,以及框架什么的,我暂时先放在一个类里面了,繁杂且无序,抱歉

package petStore1;

import java.sql.Connection;
import java.sql.SQLException;
import java.text.SimpleDateFormat;
import java.util.InputMismatchException;
import java.util.Scanner;

public class PetManage extends BaseDAO{
	public void showAll(){
		showPetName();
		showPetOwner();	
		showPetStore();
		login();
	}

	/**
	 * 显示宠物的姓名以及ID方法
	 */
	public void showPetName(){
		conn=getConnection();
		String sql="SELECT ID,name from pet";
		try {
			state=conn.prepareStatement(sql);
			rs=state.executeQuery();
			System.out.println("Wonderland醒来,所有宠物从MySQL中醒来");
			System.out.println("*************************************");
			while(rs.next()){
				int id=rs.getInt("ID");
				String name=rs.getString("name");
				System.out.println("第"+id+"只宠物,名字叫:"+name);
			}
			System.out.println("*************************************\n");
		} catch (Exception e) {
			e.printStackTrace();
		}finally{
			closeObject1();
		}
		
	}
	/**
	 * 显示宠物主人方法
	 */
	public void showPetOwner(){
		conn=getConnection();
		String sql="SELECT pet.ID,petowner.name from petowner,pet where petowner.ID=owner_id";
		try {
			state=conn.prepareStatement(sql);
			rs=state.executeQuery();
			System.out.println("所有宠物主人从MySQL中醒来");
			System.out.println("*************************************");
			while(rs.next()){
				int id=rs.getInt("pet.ID");
				String name=rs.getString("petowner.name");
				System.out.println("第"+id+"只宠物主人,名字叫:"+name);
			}
			System.out.println("*************************************\n");
		} catch (Exception e) {
			e.printStackTrace();
		}finally{
			closeObject1();
		}
	}
	/**
	 * 显示宠物商店方法
	 */
	public void showPetStore(){
		conn=getConnection();
		String sql="SELECT name from petstore";
		try {
			state=conn.prepareStatement(sql);
			rs=state.executeQuery();
			System.out.println("所有宠物商店从MySQL中醒来");
			System.out.println("*************************************");
			while(rs.next()){
				String name=rs.getString("name");
				System.out.println("我的名字叫:"+name);
			}
			System.out.println("*************************************\n");
		} catch (Exception e) {
			e.printStackTrace();
		}finally{
			closeObject1();
		}
	}

	/**
	 * 登录界面选择是主人登录还是商店登录方法
	 */
	public void login(){

		System.out.println("请选择输入登录模式\n1.宠物主人登录\n2.宠物商店登录\n3.退出系统\n-------------------");
		try {
			Scanner input=new Scanner(System.in);
			int choise=input.nextInt();
			if(choise<1|| choise>3){
				System.out.println("输入有误,请重新选择");
				login();
			}else{
				switch (choise) {
				case 1:
					petOwnerLogin();
					break;
				case 2:
					petStoreLogin();
					break;
				case 3:
					System.out.println("谢谢使用");
					System.exit(0);
					break;
				default:
					break;
				}
			}
		} catch (InputMismatchException e) {
			System.out.println("输入有误,请重新选择");
			login();
		}
		
	}
	/**
	 * 宠物主人登录方法
	 * @return
	 */
	public boolean petOwnerLogin(){
		boolean flag=false;
		try {
			Scanner input=new Scanner(System.in);
			System.out.println("请先登录,请您先输入主人的名字");
			String name=input.next();
			System.out.println("请您输入主人的密码:");
			String password=input.next();
			conn=getConnection();
			String sql="SELECT name from petowner where name=? and password=?";
			try {
				state=conn.prepareStatement(sql);
				state.setString(1, name);
				state.setString(2, password);
				rs=state.executeQuery();
				if(rs.next()){
					System.out.println("---------恭喜您成功登录!---------");
					System.out.println("----------您的基本信息---------");
					conn=getConnection();
					String sql2="SELECT ID,name,money from petowner where name=?";
//					state=conn.prepareStatement(sql2);
//					state.setString(1, name);
//					rs=state.executeQuery();
					rs=search(sql2,name);
					if(rs.next()){
						int uid=rs.getInt("ID");
						String uname=rs.getString("name");
						Double uMoney=rs.getDouble("money");
						System.out.println("姓名:"+uname);
						System.out.println("元宝数:"+uMoney);
						System.out.print("登录成功,");
						dealPet(uname,uid);
					}
				}else{
					System.out.println("登录失败,账户与密码不匹配");
					login();
				}
			} catch (Exception e) {
				e.printStackTrace();
			}
			
		} catch (InputMismatchException e) {
			System.out.println("输入有误");
			login();
		}
		
		return false;
	}

	/**
	 * 选择买宠物或者卖宠物的方法
	 */
	public void dealPet(String ownerName,int uid) {

		System.out.println("您可以购买和卖出宠物,购买宠物请输入1,卖出宠物请输入2\n1.购买宠物\n2.卖出宠物\n3.返回上一级");
		try {
			Scanner input2=new Scanner(System.in);
			int choise2=input2.nextInt();
			if(choise2<1||choise2>3){
				System.out.println("输入有误");
				dealPet(ownerName,uid);
			}else{
				switch (choise2) {
					case 1:
						//购买宠物
						buyPet(ownerName,uid);
						break;
					case 2:
						//出售宠物
						showSellPet(ownerName,uid);
						break;
					case 3:
						//返回上一级
						login();
						break;
					default:
						break;
					}
			}
		} catch (InputMismatchException e) {
			System.out.println("输入有误");
			dealPet(ownerName,uid);
		}
	}
	/**
	 * 显示主人拥有的宠物
	 */
	public void showSellPet(String ownerName,int uid) {
		conn=getConnection();
		String sql25="SELECT pet.ID,pet.name from petowner,pet where petowner.ID=owner_id and petowner.ID="+uid+"";
		try {
			state=conn.prepareStatement(sql25);
			rs=state.executeQuery();
			System.out.println("以下是你拥有的宠物:");
//			//如果结果集为空,即该主人没有宠物,就返回上一级进行选择
//			if(!rs.next()){
//				System.out.println("您没有宠物,将自动返回上一级");
//				buyPet(ownerName, uid);
//			}
			while(rs.next()){
				int petid=rs.getInt("pet.ID");
				String petName=rs.getString("pet.name");
				System.out.println("这是"+petid+"号宠物,名字叫:"+petName);
			}
			System.out.println("**************************************");
		} catch (SQLException e) {
			e.printStackTrace();
		}
		closeObject1();	
		sellPet(ownerName, uid);
	}

	public void sellPet(String ownerName,int uid) {
		System.out.println("请输入你想卖出的宠物序号:");
		try {
			Scanner input27=new Scanner(System.in);
			int choisePetId=input27.nextInt();
			System.out.println("请输入你要卖给的商店\n1.北京西苑\t2.重庆观音桥");
			int choiseStore=input27.nextInt();
			String sql30="SELECT pet.ID,pet.name from petowner,pet where petowner.ID=owner_id and petowner.ID="+uid+" and pet.ID="+choisePetId+"";
			Connection conn6=getConnection();
			try {
				state=conn6.prepareStatement(sql30);
				rs=state.executeQuery();
				if(rs.next()){
					Connection conn9=getConnection();
					conn9.setAutoCommit(false);
					String sql40="UPDATE pet set owner_id=null,store_id="+choiseStore+" where pet.ID="+choisePetId+"";
					state=conn9.prepareStatement(sql40);
					int result20=state.executeUpdate();
					String sql41="update petowner set money=money+5 where petowner.ID="+uid+"";
					state=conn9.prepareStatement(sql41);
					int result21=state.executeUpdate();
					String sql42="update petstore set balance=balance-5 where petstore.ID="+choiseStore+"";
					state=conn9.prepareStatement(sql42);
					int result22=state.executeUpdate();
					//获得当前时间
					Long time1=System.currentTimeMillis();
					SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
					String dealTime=sdf.format(time1);
					//将该条交易添加至交易账单中
					String sql43="insert into account (deal_type,pet_id,seller_id,buyer_id,price,deal_time) VALUES (2,"+choisePetId+","+choiseStore+","+uid+",5,'"+dealTime+"')";
					state=conn9.prepareStatement(sql43);
					int result23=state.executeUpdate();
					
					if(result20>0 && result21>0 && result22>0 & result23>0){
						//提交事务
						conn9.commit();
						System.out.println("卖出成功");
					}else{
						//回滚事务
						conn9.rollback();
					}
					dealPet(ownerName,uid);
				}else{
					System.out.println("没有该宠物,卖出失败");
					dealPet(ownerName,uid);
				}
			} catch (SQLException e) {
				e.printStackTrace();
			}
		
		} catch (InputMismatchException e) {
			System.out.println("输入错误,请重新输入");
			sellPet(ownerName, uid);
		}
		
	}

//	/**
//	 * 显示新培育宠物并且购买
//	 */
//	public void showNewPet() {
//		// TODO Auto-generated method stub
//		
//	}

	/**
	 * 宠物商店登录的方法
	 * @return
	 */
	public boolean petStoreLogin(){
		boolean flag=false;
		try {
			Scanner input=new Scanner(System.in);
			System.out.println("请先登录,请您先输入宠物商店的名字");
			String name=input.next();
			System.out.println("请您输入宠物商店的密码:");
			String password=input.next();
			conn=getConnection();
			String sq110="SELECT name,balance from petstore where name=? and password=?";
			state=conn.prepareStatement(sq110);
			rs=search(sq110, name,password);
			if(rs.next()){
				System.out.println("登录成功");
				PetStoreMake(name);
			}else{
				System.out.println("登录失败");
				login();
			}
			
		} catch (Exception e) {
			// TODO: handle exception
		}
		
		return false;
	}
	/*
	 * 宠物商店培育新宠物
	 */
	public void PetStoreMake(String storeName) throws SQLException {
		System.out.println("请输入数字进行选择:\n1.查询店内宠物\n2.培育新宠物\n3.退出登录");
		try {
			Scanner input=new Scanner(System.in);
			int choise7=input.nextInt();
			if(choise7<1||choise7>3){
				System.out.println("输入有误");
				PetStoreMake(storeName);
			}else{
				switch (choise7) {
					case 1:
						storePetQuery(storeName);
						break;
					case 2:
						storeAddPet(storeName);
						break;
					case 3:
						//退出登录,返回上一级
						login();
						break;
	
					default:
						break;
				}
			}
		} catch (InputMismatchException e) {
			System.out.println("输入有误");
			PetStoreMake(storeName);
		}
	}

	/**
	 * 宠物商店培育新宠物的方法
	 * @param storeName
	 * @throws SQLException
	 */
	public void storeAddPet(String storeName) throws SQLException {
		System.out.println("请输入你想添加的宠物的类型:");
		Scanner input=new Scanner(System.in);
		String typename=input.next();
		System.out.println("请输入该宠物的名字:");
		String petname=input.next();
		//查询该商店的ID
		String sql14="SELECT ID from petstore where name='"+storeName+"'";
		rs=search(sql14);
		int id=0;
		if(rs.next()){
			id=rs.getInt("ID");
		}
		conn=getConnection();
		String sql13="insert into pet (name,typename,health,love,birthday,store_id,neworold)VALUES(?,?,1,100,?,"+id+",'new')";
		//获取当前时间,作为宠物的生日
		Long time1=System.currentTimeMillis();
		SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
		String birth=sdf.format(time1);
		int a=update(sql13, petname,typename,birth);
		if(a>0){
			System.out.println("培育新宠物成功");
			PetStoreMake(storeName);
		}else{
			System.out.println("培育新宠物失败");
			PetStoreMake(storeName);
		}
	}

	/**
	 * 在商店登录之后进行对店内的宠物进行查询
	 * @param storeName
	 */
	public void storePetQuery(String storeName) {
		System.out.println("正在查询店内宠物。。。");
		conn=getConnection();
		String sql11="SELECT pet.ID,pet.name,typename,birthday from pet,petstore where petstore.name=? and pet.store_id=petstore.ID";
		try {
			state=conn.prepareStatement(sql11);
			rs=search(sql11, storeName);
			int i=1;
			while(rs.next()){
				int id=rs.getInt("pet.ID");
				String name=rs.getString("pet.name");
				String typename=rs.getString("typename");
				String birthday=rs.getString("birthday");
				System.out.println("第"+i+"只宠物名字:"+name+",宠物类型:"+typename+",生日:"+birthday);
				i++;		
			}
			System.out.println("----------------------------");
			PetStoreMake(storeName);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	/**
	 *购买宠物的方法
	 */
	public void buyPet(String ownerName,int uid){
		System.out.println("请输入选择购买范围,只输入选择项的序号");
		System.out.println("1:购买库存宠物\n2.购买新培育宠物\n3.返回上一级");
		try {
			Scanner input3=new Scanner(System.in);
			int choise5=input3.nextInt();
			if(choise5<1 || choise5>3){
				System.out.println("输入有误");
				buyPet(ownerName,uid);
			}else{
				switch (choise5) {
				case 1:
					showPetAll(ownerName,uid);
					break;
				case 2:
					buyNewPet(ownerName,uid);
					break;
				case 3:
					//返回上一级
					dealPet(ownerName, uid);
					break;
	
				default:
					break;
				}
			}
			
			
		} catch (InputMismatchException e) {
			System.out.println("输入有误");
			buyPet(ownerName,uid);
			
		}
	}

	public void buyNewPet(String ownerName,int uid) {
		//用于判断查询是否有结果
		boolean havePet=false;
		
		System.out.println("正在帮你查询新宠物。。。。。");
		conn=getConnection();
		String sql31="SELECT pet.ID,pet.name from pet where pet.neworold='new'";
		try {
			state=conn.prepareStatement(sql31);
			rs=state.executeQuery();
			while(rs.next()){
				int petid=rs.getInt("pet.ID");
				String petName=rs.getString("pet.name");
				System.out.println("序号为:"+petid+",名字为:"+petName);
				havePet=true;
			}
			if(havePet){
				System.out.println("请输入你要购买的新宠物的序号:");
				try {
//					boolean havePet2=false;
					Scanner input28=new Scanner(System.in);
					int newPetId=input28.nextInt();
					Connection conn7=getConnection();
					String sql32="SELECT pet.ID,pet.name,pet.store_id from pet where pet.neworold='new' and pet.ID="+newPetId+"";
					state=conn7.prepareStatement(sql32);
					rs=state.executeQuery();
					if(rs.next()){
						int storeid=rs.getInt("pet.store_id");
						
						
						Connection conn8=getConnection();
						conn8.setAutoCommit(false);
						
						String sql33="UPDATE pet set pet.neworold='old',pet.owner_id="+uid+",pet.store_id=null where pet.ID="+newPetId+"";
						String sql34="update petowner set money=money-5 where petowner.ID="+uid+"";
						String sql35="update petstore set balance=balance+5 where petstore.ID="+storeid+"";
						
						//获得当前时间
						Long time1=System.currentTimeMillis();
						SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
						String dealTime=sdf.format(time1);
						//将该条交易添加至交易账单中
						String sql36="insert into account (deal_type,pet_id,seller_id,buyer_id,price,deal_time) VALUES (1,"+newPetId+","+storeid+","+uid+",5,'"+dealTime+"')";
						
						state=conn8.prepareStatement(sql33);
						int result13=state.executeUpdate();
						state=conn8.prepareStatement(sql34);
						int result14=state.executeUpdate();
						state=conn8.prepareStatement(sql35);
						int result15=state.executeUpdate();
						state=conn8.prepareStatement(sql36);
						int result16=state.executeUpdate();
						if(result13>0 && result14>0 && result15>0 && result16>0){
							//如果都成功执行,改变数据,那就提交事务
							conn8.commit();
							System.out.println("购买成功");
						}else{
							//如果中加你有一条没有执行成功那就回滚事务
							conn8.rollback();
						}
						buyPet(ownerName, uid);
					}else{
						System.out.println("输入错误,没有该序号的新宠物");
						buyNewPet(ownerName, uid);
					}
				} catch (InputMismatchException e) {
					e.printStackTrace();
				}
			}else{
				System.out.println("暂时还没新宠物");
				buyPet(ownerName, uid);
			}
		} catch (SQLException e) {
			
			e.printStackTrace();
		}
	}

	/**
	 * 展示宠物名字,序号,类型的方法
	 */
	public void showPetAll(String ownerName,int uid) {
		System.out.println("---------以下是库存宠物--------");
		conn=getConnection();
		String sql6="SELECT pet.ID,pet.name,pet.typename from pet,petstore where pet.store_id=petstore.ID";
		try {
			state=conn.prepareStatement(sql6);
			rs=state.executeQuery();
			while(rs.next()){
				int petId=rs.getInt("ID");
				String petName=rs.getString("name");
				String petType=rs.getString("typename");
				System.out.println("序号:"+petId+",我的名字叫:"+petName+",我是:"+petType+",要购买我要花:5.0个元宝");
			}
			System.out.println("请输入你想购买的宠物编号:");
			try {
				Scanner input17=new Scanner(System.in);
				int choise6=input17.nextInt();
				//对在商店里的宠物进行ID查询,符合的就购买
				conn=getConnection();
				String sql15="SELECT pet.ID,pet.name,pet.typename,petstore.ID from pet,petstore where pet.store_id=petstore.ID and pet.ID="+choise6+"";
				try {
					state=conn.prepareStatement(sql15);
					rs=state.executeQuery();
					if(rs.next()){
						//这里是宠物主人购买宠物的代码,将宠物的store_ID设置为null,将宠物的owner_ID设置为购买主人的ID
						//然后主人账户减钱,商店的结余加钱,将该条交易添加至交易账单中
						int store_id=rs.getInt("petstore.ID");//这里是选择的宠物所属商店的ID
						//这里用创建一个新的连接
						Connection conn1=getConnection();
						//开启事务
						conn1.setAutoCommit(false);
						//将宠物的store_ID设置为null,将宠物的owner_ID设置为购买主人的ID
						String sql18="update pet set owner_id=1,store_id=NULL where pet.ID="+choise6+"";
						//宠物主人减钱
						String sql19="update petowner set money=money-5 where petowner.ID="+uid+"";
						//宠物商店加钱
						String sql20="update petstore set balance=balance+5 where petstore.ID="+store_id+"";
						//获得当前时间
						Long time1=System.currentTimeMillis();
						SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
						String dealTime=sdf.format(time1);
						//将该条交易添加至交易账单中
						String sql21="insert into account (deal_type,pet_id,seller_id,buyer_id,price,deal_time) VALUES (1,"+choise6+","+store_id+","+uid+",5,'"+dealTime+"')";
						
						state=conn1.prepareStatement(sql18);
						int result2=state.executeUpdate();
						state=conn1.prepareStatement(sql19);
						int result3=state.executeUpdate();
						state=conn1.prepareStatement(sql20);
						int result4=state.executeUpdate();
						state=conn1.prepareStatement(sql21);
						int result5=state.executeUpdate();
						if(result2>0 && result3>0 && result4>0 && result5>0){
							//如果都成功执行,改变数据,那就提交事务
							conn1.commit();
							System.out.println("购买成功");
						}else{
							//如果中加你有一条没有执行成功那就回滚事务
							conn1.rollback();
						}
						
						//返回上一级
						buyPet(ownerName,uid);
					}else{
						System.out.println("购买失败");
						//返回上一级
						buyPet(ownerName,uid);
					}
				} catch (SQLException e) {
					e.printStackTrace();
				}
			} catch (InputMismatchException e) {
				System.out.println("输入有误");
				showPetAll(ownerName,uid);
				
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}
		
		
	}
	
}

我是一个java学习路上的小白,现在才刚刚开始学,以后学习的路还有很远,用刚学的jdbc来做了一个案例,做的不好的见谅,因为我也没时间去进行优化、升级,只是希望写在这里以后我还能有个回忆,以及给看的人可能带来一点点小收获。哪有什么岁月静好,只是有人在替你负重前行。加油!

  • 32
    点赞
  • 104
    收藏
    觉得还不错? 一键收藏
  • 17
    评论
该系统主要包括以下功能: 1. 图书添加:管理员可以添加新的图书信息,包括书名、作者、出版社、ISBN、价格、出版日期等信息。 2. 图书查询:用户可以通过关键字或分类查询图书信息,例如按照书名、作者、出版社、ISBN、价格等查询。 3. 图书借阅:用户可以借阅图书,系统会记录借阅者、借阅时间、归还时间等信息。 4. 图书归还:用户归还图书,系统会记录归还时间。 5. 图书续借:用户可以延长借阅时间,但不能超过最大借阅天数。 6. 用户管理:管理员可以添加新的用户信息,包括用户名、密码、邮箱等信息。 7. 登录与注册:用户必须先注册并登录才能进行图书借阅、归还等操作。 8. 数据统计:系统可以统计图书借阅情况,包括借阅次数、借阅率、借阅排行榜等。 实现步骤: 1. 数据库设计:设计数据库表,包括图书表、用户表、借阅记录表等。 2. 连接数据库:使用JDBC连接MySQL数据库。 3. 实现图书添加:编写Java程序,在图书表中插入新的数据。 4. 实现图书查询:编写Java程序,根据输入的关键字或分类进行查询,并将查询结果返回给用户。 5. 实现图书借阅:编写Java程序,在借阅记录表中插入新的数据,并更新图书表中的可借数量。 6. 实现图书归还:编写Java程序,在借阅记录表中更新归还时间,并更新图书表中的可借数量。 7. 实现图书续借:编写Java程序,在借阅记录表中更新借阅时间,并判断是否超过最大借阅天数。 8. 实现用户管理:编写Java程序,在用户表中插入新的数据,并提供修改、删除等功能。 9. 实现登录与注册:编写Java程序,实现用户注册、登录、退出等功能。 10. 实现数据统计:编写Java程序,读取借阅记录表中的数据,进行统计并输出结果。 以上就是使用javaJDBC、MySQL实现图书管理系统的基本步骤。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值