动态分区分配方式的模拟Word格式文档下载.docx
《动态分区分配方式的模拟Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《动态分区分配方式的模拟Word格式文档下载.docx(23页珍藏版)》请在冰豆网上搜索。
importjava.sql.PreparedStatement;
importjava.sql.ResultSet;
publicclassConnectionFactory{
//Createavariablefortheconnectionstring.
privatestaticfinalStringconnectionUrl="
jdbc:
sqlserver:
//localhost:
1433;
"
+
"
DatabaseName=czxt;
;
//DeclaretheJDBCobjects.user=sa;
password=wz951107
privatestaticConnectionconn=null;
static{
try{
//Establishtheconnection.
Class.forName("
com.microsoft.sqlserver.jdbc.SQLServerDriver"
);
conn=DriverManager.getConnection(connectionUrl,"
sa"
"
wz951107"
/*if(conn!
=null)
{
System.out.println("
连接成功"
}*/
}
//Handleanyerrorsthatmayhaveoccurred.
catch(Exceptione){
e.printStackTrace();
}
//关闭连接
publicstaticvoidclose(ResultSetrs,PreparedStatementpstmt,Connectionconn)throwsException{
//释放资源
if(rs!
=null){
rs.close();
}
if(pstmt!
pstmt.close();
if(conn!
conn.close();
//获取连接
publicstaticConnectiongetConnection(){
returnconn;
publicstaticvoidmain(String[]args)
{
{
System.out.println("
}
实体类:
packagebean;
publicclassZone{
privateStringnumber;
privateStringsize;
privateStringaddress;
privateStringstatus;
privateStringwork;
publicStringgetWork(){
returnwork;
}
publicvoidsetWork(Stringwork){
this.work=work;
publicZone(){
super();
publicZone(Stringnumber,Stringsize,Stringaddress,Stringstatus,Stringwork){
this.number=number;
this.size=size;
this.address=address;
this.status=status;
publicStringgetNumber(){
returnnumber;
publicvoidsetNumber(Stringnumber){
publicStringgetSize(){
returnsize;
publicvoidsetSize(Stringsize){
publicStringgetAddress(){
returnaddress;
publicvoidsetAddress(Stringaddress){
publicStringgetStatus(){
returnstatus;
publicvoidsetStatus(Stringstatus){
@Override
publicStringtoString(){
return"
Zone[number="
+number+"
size="
+size+"
address="
+address+"
status="
+status+"
work="
+work+"
]"
Dao层类(对数据库的操作):
packagedao;
importjava.util.ArrayList;
importjava.util.List;
importbean.Zone;
importcommon.ConnectionFactory;
publicclassZoneDao{
//插入
publicvoidsave(Zonezone){
try{
Connectionconn=null;
PreparedStatementpstmt=null;
try{
//连接
conn=ConnectionFactory.getConnection();
//预处理sql
Stringsql="
insertintozonevalues(?
?
)"
pstmt=conn.prepareStatement(sql);
pstmt.setString(1,zone.getNumber());
pstmt.setString(2,zone.getSize());
pstmt.setString(3,zone.getAddress());
pstmt.setString(4,zone.getStatus());
pstmt.setString(5,zone.getWork());
//执行sql
intnum=pstmt.executeUpdate();
Zone插入一条数据"
}finally{
/*ConnectionFactory.close(null,pstmt,conn);
*/
}catch(Exceptione){
//删除
publicvoiddeleteByWork(Stringwork){
deletefromzonewherework=?
pstmt.setString(1,work);
删除"
+num+"
条数据"
}finally{
publicvoiddeleteByNumber(Stringnumber){
Connectionconn=null;
PreparedStatementpstmt=null;
try{
conn=ConnectionFactory.getConnection();
Stringsql="
deletefromzonewherenumber=?
pstmt=conn.prepareStatement(sql);
pstmt.setString(1,number);
intnum=pstmt.executeUpdate();
System.out.println("
}finally{
/*ConnectionFactory.close(null,pstmt,conn);
}
}catch(Exceptione){
e.printStackTrace();
//查询
publicList<
Zone>
FindAll(){
List<
list=newArrayList<
();
ResultSetrs=null;
select*fromzoneORDERBYnumber"
rs=pstmt.executeQuery();
while(rs.next())
{
Stringnumber=rs.getString("
number"
Stringsize=rs.getString("
size"
Stringaddress=rs.getString("
address"
Stringstatus=rs.getString("
status"
Stringwork=rs.getString("
work"
Zonezone=newZone(number,size,address,status,work);
list.add(zone);
/*ConnectionFactory.close(rs,pstmt,conn);
returnlist;
//单个查询
publicZonequeryByNumber(Stringnumber,Stringsize,Stringaddress,Stringstatus,Stringwork){
Zonezone=newZone();
select*fromzoneWhere1=1"
if(number!
=null){
sql+="
andnumber='
+number+"
'
if(size!
andsize='
+size+"
if(address!
andaddress='
+address+"
if(status!
andstatus='
+status+"
}if(work!
andwork='
+work+"
zone.setNumber(rs.getString("
));
zone.setAddress(rs.getString("
zone.setSize(rs.getString("
zone.setStatus(rs.getString("
zone.setWork(rs.getString("
returnzone;
//修改
publicvoidupdate(Zonezone){
updatezoneset"
+"
number=?
size=?
address=?
status=?
work=?
wherenumber=?
pstmt.setString(6,zone.getNumber());
修改了"
//排序
asc(){
>
Stringsql="
select*fromzoneORDERBYaddressASC"
视图层:
packageview;
importjava.util.Scanner;
importdao.ZoneDao;
publicclassZoneview{
publicstaticvoidmain(String[]args){
System.out.println("
欢迎进入动态分区:
1.首次适应算法"
2.最佳适应算法"
Scannerin=newScanner(System.in);
Stringone=in.nextLine();
if(one.equals("
1"
)){
ZoneDaodao=newZoneDao();
List<
list=dao.FindAll();
for(Zonezone:
list){
System.out.println(zone);
System.out.println("
1.分配"
2.回收"
Stringtwo=in.nextLine();
if(two.equals("
请输入作业号:
Stringwork=in.nextLine();
booleanflag=false;
for(intj=0;
j<
list.size();
j++)
Zonefzone=list.get(j);
if(fzone.getWork().equals(work)){
flag=true;
}
if(flag)
该作业号已经存在"
}else
请输入作业大小:
Stringsize=in.nextLine();
Stringaddress=null;
Stringstatus=null;
Stringnumber=work;
Stringsize2=null;
//修改分配的表
Zonezone1=newZone();
booleanf=false;