迷你dvd管理器

本文介绍了一个简单的DVD管理系统的实现,包括数据库连接、增删改查等基本功能,通过具体类如DvdDao、DvdEntity和DvdManage展示了如何操作数据库进行DVD的管理。

1.DvdDao

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

import javax.naming.spi.DirStateFactory.Result;

import com.minidvd.entity.DvdEntity;

public class DvdDao {

final static String URL = "jdbc:sqlserver://localhost:1433;DatabaseName=minidvd";
final static String USER = "sa";
final static String PASSWORD = "123";
final static String SQLSERVER_CLASS_NAME = "sun.jdbc.odbc.JdbcOdbcDriver";
private Connection conn;
private Statement state;
private ResultSet resultSet;

public DvdDao() {
try {
Class.forName(SQLSERVER_CLASS_NAME);
} catch (ClassNotFoundException e) {
System.out.println("没加载sqlserver的jar包");
}
try {
conn = DriverManager.getConnection(URL, USER, PASSWORD);
} catch (SQLException e) {
System.out.println("数据库连接失败");
}
try {
state = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY);
} catch (SQLException e) {
e.printStackTrace();
}

}

public int add(String addsql) {
int rows = 0;
try {
rows = state.executeUpdate(addsql);
} catch (SQLException e) {
System.out.println("异常错误,添加失败");
}
return rows;
}

public int update(String updatesql) {
int rows = 0;
try {
rows = state.executeUpdate(updatesql);
} catch (SQLException e) {
System.out.println("异常错误,更新失败");
}
return rows;
}

public int delete(String deletesql) {
int rows = 0;
try {
rows = state.executeUpdate(deletesql);
} catch (SQLException e) {
System.out.println("异常错误,删除失败");
}
return rows;

}

public ResultSet find(String findsql) {
resultSet = null;
try {
resultSet = state.executeQuery(findsql);
} catch (SQLException e) {
System.out.println("异常出错,查询失败");
}
return resultSet;
}

public void close() {
try {
if (resultSet != null)
resultSet.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
try {
if (state != null)
state.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {

try {
if (conn != null)
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}
}
}

}

2.DvdEntity

package com.minidvd.entity;


public class DvdEntity {

private int id;
private String name;
private int state;
private String date;
private int count;
/**
* 取得 name
* @return the name
*/
public DvdEntity(){

}
public DvdEntity(int id,String name, int state,String date,int count){
this.id=id;
this.name=name;
this.state=state;
this.date=date;
this.count=count;
}

/**
* 取得 id
* @return the id
*/
public int getId() {
return id;
}
/**
*设置 id
* @param id the id to set
*/
public void setId(int id) {
this.id = id;
}
/**
* 获得名字
* @return name
*/
public String getName() {
return name;
}
/**
*设置 name
* @param name the name to set
*/
public void setName(String name) {
this.name = name;
}
/**
* 取得 state
* @return the state
*/
public int getState() {
return state;
}
/**
*设置 state
* @param state the state to set
*/
public void setState(int state) {
this.state = state;
}
/**
* 取得 date
* @return the date
*/
public String getDate() {
return date;
}
/**
*设置 date
* @param date the date to set
*/
public void setDate(String date) {
this.date = date;
}
/**
* 取得 count
* @return the count
*/
public int getCount() {
return count;
}
/**
*设置 count
* @param count the count to set
*/
public void setCount(int count) {
this.count = count;
}


}

 3.DvdManage

package com.minidvd.manage;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Date;
import java.util.Scanner;

import com.minidvd.data.DvdDao;
import com.minidvd.entity.DvdEntity;

public class DvdManage {
public DvdEntity[] rankingList() throws SQLException{

DvdEntity[] de=bublleSort(dvdlist());
return de ;
}
public int addDvd(DvdEntity dvdEntity){
DvdDao d = new DvdDao();
String name=dvdEntity.getName();
String addsql="insert dvdlist (name) values('"+name+"')";
System.out.println(addsql);
int sc=d.add(addsql)==1?1:0;
d.close();
return sc;
}
public DvdEntity[] dvdlist() throws SQLException{
DvdDao d = new DvdDao();
String findsql="select * from dvdlist";
ResultSet rs=d.find(findsql);
int index=getResultRows(rs);
DvdEntity[] de=new DvdEntity[index];
rs.beforeFirst();
int count=0;
while(rs.next()){
DvdEntity Entity = new DvdEntity();
Entity.setId(rs.getInt("id"));
Entity.setCount(rs.getInt("count"));
Entity.setDate(rs.getString("date"));
Entity.setState(rs.getInt("state")==1?1:0);
Entity.setName(rs.getString("name"));
de[count]=Entity;
count++;

}
d.close();
return de;

}
public int delDvd(DvdEntity dvdEntity) throws SQLException{
DvdDao d = new DvdDao();
String name=dvdEntity.getName();
String findsql="select state, name from dvdlist where name='"+name+"'";
ResultSet a=d.find(findsql);
int state=0;
String name1=null;
a.beforeFirst();
while(a.next()){
state=a.getInt("state");
name1=a.getString("name");
}

String delsql="delete dvdlist where name='"+name+"'";
if(!name.equals(name1)){
return 0;
}else if (state==1){
return 1;
}else{
d.delete(delsql);
d.close();
return 2;
}
}
public int borrowDvd(DvdEntity dvdEntity) throws SQLException{
DvdDao d = new DvdDao();
String name=dvdEntity.getName();
String date=dvdEntity.getDate();
int count=0;
String findsql="select name, state, count from dvdlist where name='"+name+"'";
ResultSet a=d.find(findsql);
String name1=null;
int state=0;
int g=0;
while(a.next()){
name1=a.getString("name");
state=a.getInt("state");
count=a.getInt("count");
}
if(!name.equals(name1)){
return 0;
}else if( state==1){
return 1;
}else{
count++;
String update ="update dvdlist set state="+1+",date='"+date+"',count="+count+++" where name='"+name+"'";
d.update(update);
d.close();
return 2;
}

}
public String[] returnDvd(DvdEntity dvdEntity) throws SQLException{
DvdDao d =new DvdDao();
String name=dvdEntity.getName();
String findsql ="select name, state ,date from dvdlist where name='"+name+"'";
String date1=dvdEntity.getDate();
String date=null;
String name1=null;
int state=0;
ResultSet a=d.find(findsql);
String[] s =new String[4];
int index;
long money=0;
while(a.next()){
date = a.getString("date");
name1=a.getString("name");
state=a.getInt("state");
}
if(date==null &&date1==null){
index=0;
}else if(!name.equals(name1)){
index=1;
}else if(state==0){
index=2;
}else{
String update="update dvdlist set state="+0+",date="+null;
d.update(update);
index=3;
money=0;
money=charge(date,date1);
}
s[0]=date;
s[1]=date1;
s[2]=money+"";
s[3]=String.valueOf(index);
d.close();
return s;



}
private DvdEntity[] bublleSort(DvdEntity[] dvdEntity) throws SQLException{
for(int x=0;x<dvdEntity.length-1;x++){
for(int y=0;y<dvdEntity.length-x-1;y++){
if(dvdEntity[y].getCount()<dvdEntity[y+1].getCount()){


String temp=dvdEntity[y].getName();
dvdEntity[y].setName(dvdEntity[y+1].getName());
dvdEntity[y+1].setName(temp);

int a=dvdEntity[y].getCount();
dvdEntity[y].setCount((dvdEntity[y+1].getCount()));
dvdEntity[y+1].setCount(a);
}
}
}
return dvdEntity;
}
private int getResultRows(ResultSet resultSet) throws SQLException{
int rows=0;
while(resultSet.next()){
rows++;
}
return rows;

}
private long charge(String dstr1 ,String dstr2){
SimpleDateFormat sd=new SimpleDateFormat("yyyy-MM-dd");
Date d1=null;
Date d2=null;
try {
d1 = sd.parse(dstr1);
d2 = sd.parse(dstr2);
} catch (ParseException e) {
// TODO Auto-generated catch block
System.out.println("格式书写错误");

}
long charge;
charge=(d2.getTime()-d1.getTime())/(24*60*60*1000);
return charge;

}
}

4.Main

package com.minidvd.start;

import java.sql.SQLException;
import java.text.ParseException;
import java.util.Scanner;

import com.minidvd.data.DvdDao;
import com.minidvd.entity.DvdEntity;
import com.minidvd.manage.DvdManage;

public class Main {


public static void main(String[] args) throws SQLException {
startMenu();
}

public static void startMenu() throws SQLException{
Scanner in = new Scanner(System.in);

do {

System.out.println("欢迎使用迷你DVD管理器");
System.out.println(" ");
System.out.println(" 0.借出排行榜 ");
System.out.println(" 1.新增DVD ");
System.out.println(" 2.查看DVD ");
System.out.println(" 3.删除DVD ");
System.out.println(" 4.借出DVD ");
System.out.println(" 5.归还DVD ");
System.out.println(" 6.退 出 ");
System.out.println(" ");
System.out.print("请选择:");
String num = in.next();
switch (num) {
case "0":
System.out.println("---->排行榜\n\n");
System.out.println("**************************");
ranking();
break;
case "1":
System.out.println("---->新增DvD");
System.out.print("请输入DvD的名称:");
addNewDvd();
break;
case "2":
System.out.println("------>查看DvD\n");
System.out.println("序号\t状态\t名称\t借出日期");
showDvdlist();
break;
case "3":
System.out.print("---->删除DVD");
System.out.print("请输入DVD名称:");
deleteDvd();
break;
case "4":
System.out.println("---->借出DVD\n");
System.out.print("请输入DVD的名称:");
borrowDvd();
break;
case "5":
System.out.println("--->归还\n");
System.out.print("请输入DvD的名称:");
returnDvd();
break;
case "6":
System.out.println("谢谢使用");
returnStartMenu();
return;
default:
System.out.println("请输入正确的数字");

}
System.out.println("************");
System.out.print("输入零返回:");
num = in.next();
if (!num.equals("0")) {
System.out.println("输入错误,异常终止");
return;
}
} while (true);

 

}

public static void ranking(){
Scanner in = new Scanner(System.in);
DvdEntity[] dvdEntity;
DvdManage dm =new DvdManage();
try {
dvdEntity =dm.rankingList();
System.out.println("书名"+"\t"+"借出的次数");
for(int i=0;i<dvdEntity.length;i++){

System.out.println(dvdEntity[i].getName()+"\t "+dvdEntity[i].getCount());
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void addNewDvd(){
Scanner in = new Scanner(System.in);

DvdManage dm =new DvdManage();
DvdEntity dvdentity = new DvdEntity();
String name=in.next();
dvdentity.setName(name);
int a=dm.addDvd(dvdentity);
if(a==1){
System.out.println("添加成功");
}else{
System.out.println("添加失败,不能添加重名dvd");
}
}
public static void showDvdlist() throws SQLException{
Scanner in = new Scanner(System.in);
DvdManage dm = new DvdManage();
DvdEntity[] dvdEntity;
dvdEntity=dm.dvdlist();
for(int i=0;i<dvdEntity.length;i++){
String state=dvdEntity[i].getState()==1?"不可借":"可借";
System.out.println(dvdEntity[i].getId()+"\t"+state+"\t"+dvdEntity[i].getName()+"\t"+dvdEntity[i].getDate());

}
}
public static void deleteDvd() throws SQLException{
Scanner in = new Scanner(System.in);
DvdManage dm =new DvdManage();
DvdEntity dvdentity = new DvdEntity();
String name=in.next();
dvdentity.setName(name);
int a=dm.delDvd(dvdentity);
if(a==0){
System.out.println("没找到该dvd");
}else if(a==1){
System.out.println("为借出状态,不能删除");
}else{
System.out.println("删除成功");
}
}
public static void borrowDvd() throws SQLException{
Scanner in = new Scanner(System.in);
DvdManage dm =new DvdManage();
DvdEntity dvdentity = new DvdEntity();
String name=in.next();
dvdentity.setName(name);
System.out.print("请输入借出的日期(年-月-日):");
String date =in.next();
dvdentity.setDate(date);
int a=dm.borrowDvd(dvdentity);
if(a==2){
System.out.println("借出成功");
}else if(a==0){
System.out.println("没找到该dvd");
}else{
System.out.println("为借出状态,不能借出");
}
}
public static void returnDvd() throws SQLException{
Scanner in = new Scanner(System.in);
DvdManage dm =new DvdManage();
DvdEntity dvdentity = new DvdEntity();
String name=in.next();
System.out.print("请输入归还的日期(年-月-日):");
String date=in.next();
dvdentity.setName(name);
dvdentity.setDate(date);
String [] d=dm.returnDvd(dvdentity);

int a= Integer.parseInt(d[3]);

if(a==0){
System.out.println("归还日期格式错误");
}else if(a==1){
System.out.println("找不到对应的dvd");
}else if(a==2){
System.out.println("借出状态,为未借出状,归还失败");
}else{
System.out.println("借出日期\t\t归还日期\t 需要支付:");
for(int i=0; i<d.length-1;i++){
System.out.print(d[i]+"\t");
if(i==d.length-2){
System.out.println();
System.out.println("");
}

}
}

}
public static void returnStartMenu(){
System.exit(0);
}

}

转载于:https://www.cnblogs.com/qi1250/p/5670723.html

package 第三章; import java.util.Scanner; public class DVD管理器 { public static void main(String[] args) { Scanner input = new Scanner(System.in); int end=0; //名称,状态,借出日期,借出次数, String name[] =new String[50]; name[0]="三国演义"; name[1]="盗墓笔记"; name[2]="傻子上学"; boolean state[] = new boolean[50]; state[0]=true; state[1]=false; state[2]=true; int date [] = new int[50]; date[0]=0; date[1]=5; date[2]=0; int count[] = new int[50]; count[0]=12; count[1]=0; count[2]=1; String zeng; int dates; do{ System.out.println("欢迎使用迷你DVD管理器"); System.out.println("-------------------------"); System.out.println("1.新增DVD"); System.out.println("2.查看DVD"); System.out.println("3.删除DVD"); System.out.println("4.借出DVD"); System.out.println("5.归还DVD"); System.out.println("6.退出DVD"); System.out.println("-------------------------"); System.out.print("请选择:"); int index=-1; switch(input.nextInt()){ case 1: System.out.println("-->新增DVD"); System.out.print("请输入书名:"); for(int i=0;i<name.length-1;i++){ if(name[i]==null){ index=i; break; } } if(index!=-1){ name[index]=input.next(); state[index]=true; count[index]=0; date[index]=0; System.out.println("新增《"+name[index]+"》成功"); } System.out.println("**************************"); System.out.println("输入0返回"); break; case 2: System.out.println("-->查看DVD"); System.out.println("序号"+"\t"+"状态"+"\t"+" "+"名称"+"\t"+" "+"借出日期"+"\t"+" "+"借出次数"); for(int i=0;i<name.length-1;i++){ if(name[i]==null)break; System.out.print(+(i+1)+"\t"); System.out.print(state[i]==true?"可借阅"+" ":"已借阅"+" "); System.out.print("《"+name[i]+"》"+"\t"); System.out.print(" "+date[i]+"日"+"\t"); System.out.print(count[i]+"次"+"\t"+"\n"); } System.out.println("**************************"); System.out.println("输入0返回"); break; case 3: System.out.println("-->删除DVD"); System.out.print("请输入书名:"); zeng=input.next(); for(int i=0;i<name.length-1;i++){ if(name[i]==null){ System.out.println("这本本书不是我们的,无法删除"); break; } else if(name[i].equals(zeng) && state[i]==false){ System.out.println("找到您要找的书了,但是已借阅无法删除"); break; } else if(name[i].equals(zeng) && state[i]==true){ index=i; System.out.println("删除《"+zeng+"》成功"); break; } } if(index!=-1){ for(int i=index;i<name.length-1;i++){ name[i]=name[i+1]; } name[name.length-1]=null; } else System.out.println("没有您要找的书"); System.out.println("**************************"); System.out.println("输入0返回"); break; case 4: System.out.println("-->借出DVD"); System.out.print("请输入书名:"); zeng=input.next(); for(int i=0;i<name.length-1;i++){ if(name[i]==null){ System.out.println("没有找到您要找的书无法借出"); break; }else if(name[i].equals(zeng) && state[i]==false){ System.out.println("找到您要找的书了,但是库存只有一本已借阅"); break; }else if(name[i].equals(zeng) && state[i]==true){ System.out.print("借出日期:"); dates=input.nextInt(); while(dates<1 || dates>31){ if(dates<1 ||dates>31) System.out.println("请重新输入一月为1~31"); dates=input.nextInt(); } System.out.println("借阅《"+zeng+"》成功"); state[i]=false; date[i]=dates; count[i]++; break; } } System.out.println("**************************"); System.out.println("输入0返回"); break; case 5: System.out.println("-->归还DVD"); System.out.print("请输入书名:"); zeng=input.next(); int jing=0; for(int i=0;i<name.length-1;i++){ if(name[i]==null){ System.out.println("这不是我们的书无需归还"); break; }else if(name[i].equals(zeng) && state[i]==true){ System.out.println("找到您要找的书了,但是未借阅不需要归还"); break; }else if(name[i].equals(zeng) && state[i]==false){ System.out.print("归还日期:"); dates=input.nextInt(); while(dates<1 || dates>31 || dates<date[i]){ if(dates<1 ||dates>31){ System.out.println("输入格式有问题请重新输入一月为1~31"); dates=input.nextInt(); } else if(dates<date[i]){ System.out.println("归还日期必须大于借出日期"); dates=input.nextInt(); } } state[i]=true; jing=(dates-date[i])*1; System.out.println("借阅时间为:"+date[i]); System.out.println("归还时间为:"+dates); System.out.println("借阅租金为:"+jing); System.out.println("归还《"+zeng+"》成功"); date[i]=0; break; } } System.out.println("**************************"); System.out.println("输入0返回"); break; case 6: System.out.println("谢谢使用"); return; } end =input.nextInt(); }while(end==0); } }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值