当前位置: 代码网 > it编程>编程语言>Java > Eclipse+Java+Swing实现图书管理系统(1)

Eclipse+Java+Swing实现图书管理系统(1)

2024年08月01日 Java 我要评论
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。深知大多数Java工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

connection con = null;

try {

con = dbutil.getcon();

resultset resultset = bookdao.list(con, book);

while (resultset.next()) {

vector rowdata = new vector();

rowdata.add(resultset.getint(“id”));

rowdata.add(resultset.getstring(“book_name”));

rowdata.add(resultset.getstring(“type_name”));

rowdata.add(resultset.getstring(“author”));

rowdata.add(resultset.getdouble(“price”));

rowdata.add(resultset.getint(“number”));

if (resultset.getint(“status”) == 1) {

rowdata.add(“上架”);

} else {

rowdata.add(“下架”);

}

model.addrow(rowdata);

}

} catch (exception e) {

e.printstacktrace();

} finally {

try {

dbutil.closecon(con);

} catch (exception e) {

e.printstacktrace();

}

}

}

private void initcomponents() {

jpanel1 = new jpanel();

jlabel1 = new jlabel();

booknametext = new jtextfield();

jbutton1 = new jbutton();

jscrollpane1 = new jscrollpane();

booktable = new jtable();

jpanel2 = new jpanel();

jlabel3 = new jlabel();

bookid = new jtextfield();

jlabel4 = new jlabel();

bookname = new jtextfield();

jlabel5 = new jlabel();

authortext = new jtextfield();

jlabel6 = new jlabel();

publishtext = new jtextfield();

jlabel7 = new jlabel();

pricetext = new jtextfield();

jlabel8 = new jlabel();

numbertext = new jtextfield();

jlabel9 = new jlabel();

jlabel10 = new jlabel();

jcb_type2 = new jcombobox();

jlabel11 = new jlabel();

remarktext = new jtextfield();

jbutton2 = new jbutton();

jcb_status = new jcombobox();

setclosable(true);

jpanel1.setborder(borderfactory.createtitledborder(“查询操作”));

jlabel1.settext(“书名:”);

jbutton1.settext(“查询”);

jbutton1.addactionlistener(new java.awt.event.actionlistener() {

public void actionperformed(java.awt.event.actionevent evt) {

jbutton1actionperformed(evt);

}

});

grouplayout jpanel1layout = new grouplayout(jpanel1);

jpanel1.setlayout(jpanel1layout);

jpanel1layout.sethorizontalgroup(jpanel1layout.createparallelgroup(grouplayout.alignment.leading)

.addgroup(jpanel1layout.createsequentialgroup().addgap(25, 25, 25).addcomponent(jlabel1)

.addgap(18, 18, 18)

.addcomponent(booknametext, grouplayout.preferred_size, 171,

grouplayout.preferred_size)

.addgap(62, 62, 62).addcomponent(jbutton1).addcontainergap(299, short.max_value)));

jpanel1layout

.setverticalgroup(jpanel1layout.createparallelgroup(grouplayout.alignment.leading)

.addgroup(jpanel1layout.createsequentialgroup().addgroup(jpanel1layout

.createparallelgroup(grouplayout.alignment.baseline).addcomponent(jlabel1)

.addcomponent(booknametext, grouplayout.preferred_size,

grouplayout.default_size, grouplayout.preferred_size)

.addcomponent(jbutton1)).addcontainergap(22, short.max_value)));

booktable.setmodel(new defaulttablemodel(new object[][] {

}, new string[] { “编号”, “书名”, “类别”, “作者”, “价格”, “库存”, “状态” }) {

boolean[] canedit = new boolean[] { false, false, false, false, false, false, false };

public boolean iscelleditable(int rowindex, int columnindex) {

return canedit[columnindex];

}

});

booktable.addmouselistener(new java.awt.event.mouseadapter() {

public void mousepressed(java.awt.event.mouseevent evt) {

booktablemousepressed(evt);

}

});

jscrollpane1.setviewportview(booktable);

jpanel2.setborder(borderfactory.createtitledborder(“书籍操作”));

jlabel3.settext(“编号:”);

bookid.seteditable(false);

jlabel4.settext(“书名:”);

jlabel5.settext(“作者:”);

jlabel6.settext(“出版:”);

jlabel7.settext(“价格:”);

jlabel8.settext(“库存:”);

jlabel9.settext(“状态:”);

jlabel10.settext(“类别:”);

jlabel11.settext(“描述:”);

jbutton2.settext(“修改”);

jbutton2.addactionlistener(new java.awt.event.actionlistener() {

public void actionperformed(java.awt.event.actionevent evt) {

jbutton2actionperformed(evt);

}

});

grouplayout jpanel2layout = new grouplayout(jpanel2);

jpanel2.setlayout(jpanel2layout);

jpanel2layout.sethorizontalgroup(jpanel2layout.createparallelgroup(grouplayout.alignment.leading)

.addgroup(jpanel2layout.createsequentialgroup()

.addgroup(jpanel2layout.createparallelgroup(grouplayout.alignment.leading).addgroup(

jpanel2layout.createsequentialgroup().addgap(26, 26, 26).addgroup(jpanel2layout

.createparallelgroup(grouplayout.alignment.leading).addgroup(

jpanel2layout.createsequentialgroup().addcomponent(jlabel9)

.addpreferredgap(

layoutstyle.componentplacement.related)

.addcomponent(jcb_status, 0, 117, short.max_value))

.addgroup(grouplayout.alignment.trailing,

jpanel2layout

.createsequentialgroup().addgroup(jpanel2layout

.createparallelgroup(

grouplayout.alignment.leading)

.addcomponent(jlabel3).addcomponent(jlabel6))

.addpreferredgap(

layoutstyle.componentplacement.related,

grouplayout.default_size, short.max_value)

.addgroup(jpanel2layout

.createparallelgroup(

grouplayout.alignment.trailing,

false)

.addcomponent(publishtext,

grouplayout.alignment.leading)

.addcomponent(bookid,

grouplayout.alignment.leading,

grouplayout.default_size, 117,

short.max_value))))

.addgap(39, 39, 39)

.addgroup(jpanel2layout.createparallelgroup(

grouplayout.alignment.leading, false)

.addgroup(jpanel2layout.createsequentialgroup().addcomponent(jlabel10)

.addgap(27, 27,

.addcomponent(jcb_type2, 0,

grouplayout.default_size, short.max_value))

.addgroup(grouplayout.alignment.trailing,

jpanel2layout.createsequentialgroup().addcomponent(jlabel7)

.addgap(27, 27, 27).addcomponent(pricetext))

.addgroup(jpanel2layout.createsequentialgroup().addcomponent(jlabel4)

.addgap(27, 27, 27).addcomponent(

bookname, grouplayout.preferred_size, 108,

grouplayout.preferred_size)))

.addgap(18, 18, 18)

.addgroup(jpanel2layout

.createparallelgroup(grouplayout.alignment.leading)

.addgroup(jpanel2layout.createsequentialgroup().addcomponent(jlabel11)

.addgap(18, 18, 18).addcomponent(remarktext,

grouplayout.preferred_size, 172,

grouplayout.preferred_size))

.addgroup(jpanel2layout

.createparallelgroup(grouplayout.alignment.trailing,

false)

.addgroup(grouplayout.alignment.leading,

jpanel2layout.createsequentialgroup()

.addcomponent(jlabel8).addgap(18, 18, 18)

.addcomponent(numbertext))

.addgroup(grouplayout.alignment.leading,

jpanel2layout.createsequentialgroup()

.addcomponent(jlabel5).addgap(20, 20, 20)

.addcomponent(authortext,

grouplayout.preferred_size,

106,

grouplayout.preferred_size))))

.addgap(97, 97, 97))

.addgroup(jpanel2layout.createsequentialgroup().addgap(108, 108, 108)

.addcomponent(jbutton2)))

.addcontainergap()));

jpanel2layout.setverticalgroup(jpanel2layout.createparallelgroup(grouplayout.alignment.leading)

.addgroup(jpanel2layout.createsequentialgroup().addgroup(jpanel2layout

.createparallelgroup(grouplayout.alignment.leading)

.addgroup(jpanel2layout.createsequentialgroup().addgroup(jpanel2layout

.createparallelgroup(grouplayout.alignment.baseline).addcomponent(jlabel3)

.addcomponent(bookid, grouplayout.preferred_size,

grouplayout.default_size, grouplayout.preferred_size))

.addgap(18, 18, 18)

.addgroup(jpanel2layout.createparallelgroup(grouplayout.alignment.baseline)

.addcomponent(jlabel6)

.addcomponent(publishtext, grouplayout.preferred_size,

grouplayout.default_size,

grouplayout.preferred_size)

.addcomponent(jlabel7)

.addcomponent(pricetext, grouplayout.preferred_size,

grouplayout.default_size,

grouplayout.preferred_size)

.addcomponent(jlabel8).addcomponent(numbertext,

grouplayout.preferred_size,

grouplayout.default_size,

grouplayout.preferred_size))

.addgap(18, 18, 18)

.addgroup(jpanel2layout.createparallelgroup(grouplayout.alignment.baseline)

.addcomponent(jlabel9)

.addcomponent(jcb_status, grouplayout.preferred_size,

grouplayout.default_size,

grouplayout.preferred_size)

.addcomponent(jlabel10)

.addcomponent(jcb_type2, grouplayout.preferred_size,

grouplayout.default_size,

grouplayout.preferred_size)

.addcomponent(jlabel11).addcomponent(remarktext,

grouplayout.preferred_size,

grouplayout.default_size,

grouplayout.preferred_size)))

.addgroup(jpanel2layout.createparallelgroup(grouplayout.alignment.baseline)

.addcomponent(jlabel4)

.addcomponent(bookname, grouplayout.preferred_size,

grouplayout.default_size, grouplayout.preferred_size)

.addcomponent(authortext, grouplayout.preferred_size,

grouplayout.default_size, grouplayout.preferred_size)

.addcomponent(jlabel5)))

.addpreferredgap(layoutstyle.componentplacement.related, 42, short.max_value)

.addcomponent(jbutton2).addgap(28, 28, 28)));

grouplayout layout = new grouplayout(getcontentpane());

getcontentpane().setlayout(layout);

layout.sethorizontalgroup(layout.createparallelgroup(grouplayout.alignment.leading).addgroup(layout

.createsequentialgroup().addgap(31, 31, 31)

.addgroup(layout.createparallelgroup(grouplayout.alignment.trailing, false)

.addcomponent(jpanel1, grouplayout.alignment.leading,

grouplayout.default_size, grouplayout.default_size,

short.max_value)

.addcomponent(jscrollpane1, grouplayout.alignment.leading).addcomponent(jpanel2,

grouplayout.alignment.leading, grouplayout.default_size, 668,

short.max_value))

.addcontainergap(grouplayout.default_size, short.max_value)));

layout.setverticalgroup(layout.createparallelgroup(grouplayout.alignment.leading)

.addgroup(layout.createsequentialgroup()

.addcomponent(jpanel1, grouplayout.preferred_size,

grouplayout.default_size, grouplayout.preferred_size)

.addpreferredgap(layoutstyle.componentplacement.related)

.addcomponent(jscrollpane1, grouplayout.preferred_size, 186,

grouplayout.preferred_size)

.addgap(18, 18, 18).addcomponent(jpanel2, grouplayout.default_size,

grouplayout.default_size, short.max_value)

.addcontainergap()));

pack();

}

private void jbutton1actionperformed(java.awt.event.actionevent evt) {

string bookname = this.booknametext.gettext();

book book = new book();

book.setbookname(bookname);

fillbooktable(book);

}

private void booktablemousepressed(java.awt.event.mouseevent evt) {

int row = booktable.getselectedrow();

integer bookid = (integer) booktable.getvalueat(row, 0);

book book = new book();

book.setbookid(bookid);

connection con = null;

try {

con = dbutil.getcon();

resultset list = bookdao.list(con, book);

if (list.next()) {

this.bookid.settext(list.getstring(“id”));

this.bookname.settext(list.getstring(“book_name”));

this.authortext.settext(list.getstring(“author”));

this.publishtext.settext(list.getstring(“publish”));

this.pricetext.settext(list.getstring(“price”));

this.numbertext.settext(list.getstring(“number”));

this.remarktext.settext(list.getstring(“remark”));

int status = list.getint(“status”);

if (status == 1) {

this.jcb_status.setselectedindex(0);

} else {

this.jcb_status.setselectedindex(1);

}

int typeid = list.getint(“type_id”);

int count = this.jcb_type2.getitemcount();

for (int i = 0; i < count; i++) {

booktype booktype = (booktype) this.jcb_type2.getitemat(i);

if (booktype.gettypeid() == typeid) {

this.jcb_type2.setselectedindex(i);

}

}

}

} catch (exception e) {

e.printstacktrace();

} finally {

try {

dbutil.closecon(con);

} catch (exception e) {

e.printstacktrace();

}

}

}

private void jbutton2actionperformed(java.awt.event.actionevent evt) {

string bookname = this.bookname.gettext();

string author = this.authortext.gettext();

string publish = this.publishtext.gettext();

string pricestr = this.pricetext.gettext();

string numberstr = this.numbertext.gettext();

string remark = this.remarktext.gettext();

string bookid = this.bookid.gettext();

if (stringutil.isempty(bookid) || stringutil.isempty(bookname) || stringutil.isempty(author)

|| stringutil.isempty(publish) || stringutil.isempty(pricestr) || stringutil.isempty(numberstr)

|| stringutil.isempty(remark)) {

joptionpane.showmessagedialog(null, “请输入相关内容”);

return;

}

booktype selecteditem = (booktype) jcb_type2.getselecteditem();

integer typeid = selecteditem.gettypeid();

int index = jcb_status.getselectedindex();

int number;

double price;

try {

number = integer.parseint(numberstr);

price = new bigdecimal(pricestr).setscale(2, bigdecimal.round_down).doublevalue();

} catch (exception e) {

joptionpane.showmessagedialog(null, “参数错误”);

return;

}

book book = new book();

book.setbookid(integer.parseint(bookid));

book.setbookname(bookname);

book.setauthor(author);

book.setbooktypeid(typeid);

book.setnumber(number);

book.setprice(price);

book.setpublish(publish);

book.setremark(remark);

book.setstatus(1);

if (index == 0) {

book.setstatus(1);

} else if (index == 1) {

book.setstatus(2);

}

connection con = null;

try {

con = dbutil.getcon();

int i = bookdao.update(con, book);

if (i == 1) {

joptionpane.showmessagedialog(null, “修改成功”);

} else {

joptionpane.showmessagedialog(null, “修改失败”);

}

} catch (exception e) {

e.printstacktrace();

joptionpane.showmessagedialog(null, “修改异常”);

} finally {

try {

dbutil.closecon(con);

} catch (exception e) {

e.printstacktrace();

}

}

fillbooktable(new book());

}

}

bookinfofrm.java


package com.sjsq.view;

import java.sql.connection;

import java.sql.resultset;

import java.util.vector;

import javax.swing.grouplayout;

import javax.swing.jbutton;

import javax.swing.jinternalframe;

import javax.swing.jlabel;

import javax.swing.joptionpane;

import javax.swing.jpanel;

import javax.swing.jscrollpane;

import javax.swing.jtable;

import javax.swing.jtextfield;

import javax.swing.layoutstyle;

import javax.swing.table.defaulttablemodel;

import com.sjsq.dao.bookdao;

import com.sjsq.dao.borrowdetaildao;

import com.sjsq.model.book;

import com.sjsq.model.borrowdetail;

import com.sjsq.util.dbutil;

import com.sjsq.util.stringutil;

import com.sjsq.util.timeutil;

public class bookinfofrm extends jinternalframe {

private jtextfield bookidtext;

private jtextfield bookname;

private jtextfield booknametext;

private jtable booktable;

private jbutton jb_borrow;

private jbutton jbutton1;

private jlabel jlabel1;

private jlabel jlabel2;

private jlabel jlabel3;

private jpanel jpanel1;

private jscrollpane jscrollpane1;

dbutil dbutil = new dbutil();

bookdao bookdao = new bookdao();

borrowdetaildao borrowdetaildao = new borrowdetaildao();

public bookinfofrm() {

initcomponents();

filltable(new book());

settitle(“书籍信息”);

this.setlocation(200, 50);

}

private void filltable(book book) {

defaulttablemodel model = (defaulttablemodel) booktable.getmodel();

model.setrowcount(0);

connection con = null;

try {

con = dbutil.getcon();

book.setstatus(1);

resultset list = bookdao.list(con, book);

while (list.next()) {

vector rowdata = new vector();

rowdata.add(list.getint(“id”));

rowdata.add(list.getstring(“book_name”));

rowdata.add(list.getstring(“type_name”));

rowdata.add(list.getstring(“author”));

rowdata.add(list.getstring(“remark”));

model.addrow(rowdata);

}

} catch (exception e) {

e.printstacktrace();

} finally {

try {

dbutil.closecon(con);

} catch (exception e) {

e.printstacktrace();

}

}

}

private void initcomponents() {

jscrollpane1 = new jscrollpane();

booktable = new jtable();

jpanel1 = new jpanel();

jlabel1 = new jlabel();

booknametext = new jtextfield();

jbutton1 = new jbutton();

jb_borrow = new jbutton();

jlabel2 = new jlabel();

bookidtext = new jtextfield();

jlabel3 = new jlabel();

bookname = new jtextfield();

setclosable(true);

booktable.setmodel(new defaulttablemodel(new object[][] {

}, new string[] { “编号”, “书名”, “类型”, “作者”, “描述” }) {

boolean[] canedit = new boolean[] { false, false, false, false, false };

public boolean iscelleditable(int rowindex, int columnindex) {

return canedit[columnindex];

}

});

booktable.addmouselistener(new java.awt.event.mouseadapter() {

public void mousepressed(java.awt.event.mouseevent evt) {

booktablemousepressed(evt);

}

});

jscrollpane1.setviewportview(booktable);

jlabel1.settext(“书籍名称:”);

booknametext.addactionlistener(new java.awt.event.actionlistener() {

public void actionperformed(java.awt.event.actionevent evt) {

booknametextactionperformed(evt);

}

});

jbutton1.settext(“查询”);

jbutton1.addactionlistener(new java.awt.event.actionlistener() {

public void actionperformed(java.awt.event.actionevent evt) {

jbutton1actionperformed(evt);

}

});

grouplayout jpanel1layout = new grouplayout(jpanel1);

jpanel1.setlayout(jpanel1layout);

jpanel1layout.sethorizontalgroup(jpanel1layout.createparallelgroup(grouplayout.alignment.leading)

.addgroup(grouplayout.alignment.trailing, jpanel1layout.createsequentialgroup()

.addgap(42, 42, 42).addcomponent(jlabel1).addgap(36, 36, 36)

.addcomponent(booknametext, grouplayout.preferred_size, 130,

grouplayout.preferred_size)

.addpreferredgap(layoutstyle.componentplacement.related, 149, short.max_value)

.addcomponent(jbutton1).addgap(45, 45, 45)));

jpanel1layout.setverticalgroup(jpanel1layout.createparallelgroup(grouplayout.alignment.leading)

.addgroup(jpanel1layout.createsequentialgroup().addgap(23, 23, 23)

.addgroup(jpanel1layout.createparallelgroup(grouplayout.alignment.baseline)

.addcomponent(jbutton1).addcomponent(jlabel1).addcomponent(booknametext,

grouplayout.preferred_size, grouplayout.default_size,

grouplayout.preferred_size))

.addcontainergap(30, short.max_value)));

jb_borrow.settext(“借书”);

jb_borrow.addactionlistener(new java.awt.event.actionlistener() {

public void actionperformed(java.awt.event.actionevent evt) {

jb_borrowactionperformed(evt);

}

});

jlabel2.settext(“编号:”);

bookidtext.seteditable(false);

jlabel3.settext(“书名:”);

bookname.seteditable(false);

grouplayout layout = new grouplayout(getcontentpane());

getcontentpane().setlayout(layout);

layout.sethorizontalgroup(layout.createparallelgroup(grouplayout.alignment.leading).addgroup(layout

.createsequentialgroup().addgap(22, 22, 22)

.addgroup(layout.createparallelgroup(grouplayout.alignment.leading).addgroup(layout

.createsequentialgroup().addcomponent(jlabel2)

.addpreferredgap(layoutstyle.componentplacement.related)

.addcomponent(bookidtext, grouplayout.preferred_size, 95,

grouplayout.preferred_size)

.addpreferredgap(layoutstyle.componentplacement.related).addcomponent(jlabel3)

.addgap(18, 18, 18)

.addcomponent(bookname, grouplayout.preferred_size, 127,

grouplayout.preferred_size)

.addpreferredgap(layoutstyle.componentplacement.related, 102, short.max_value)

.addcomponent(jb_borrow).addgap(88, 88, 88))

.addgroup(layout.createsequentialgroup()

.addgroup(layout.createparallelgroup(grouplayout.alignment.leading, false)

.addcomponent(jpanel1, grouplayout.alignment.trailing,

grouplayout.default_size,

grouplayout.default_size, short.max_value)

.addcomponent(jscrollpane1, grouplayout.alignment.trailing,

grouplayout.default_size, 507, short.max_value))

.addcontainergap(38, short.max_value)))));

layout.setverticalgroup(layout.createparallelgroup(grouplayout.alignment.leading)

.addgroup(layout.createsequentialgroup()

.addcomponent(jpanel1, grouplayout.preferred_size,

grouplayout.default_size, grouplayout.preferred_size)

.addpreferredgap(layoutstyle.componentplacement.related)

.addcomponent(jscrollpane1, grouplayout.preferred_size, 225,

grouplayout.preferred_size)

.addpreferredgap(layoutstyle.componentplacement.related, 35, short.max_value)

.addgroup(layout.createparallelgroup(grouplayout.alignment.baseline)

.addcomponent(jlabel2).addcomponent(jlabel3)

.addcomponent(bookidtext, grouplayout.preferred_size,

grouplayout.default_size, grouplayout.preferred_size)

.addcomponent(bookname, grouplayout.preferred_size,

grouplayout.default_size, grouplayout.preferred_size)

.addcomponent(jb_borrow))

.addgap(27, 27, 27)));

pack();

}

private void jb_borrowactionperformed(java.awt.event.actionevent evt) {

string bookid = this.bookidtext.gettext();

string bookname = this.bookname.gettext();

if (stringutil.isempty(bookid) || stringutil.isempty(bookname)) {

joptionpane.showmessagedialog(null, “请选择相关书籍”);

return;

}

borrowdetail borrowdetail = new borrowdetail();

borrowdetail.setuserid(loginfrm.currentuser.getuserid());

borrowdetail.setbookid(integer.parseint(bookid));

borrowdetail.setstatus(1);

borrowdetail.setborrowtime(timeutil.gettime());

connection con = null;

try {

con = dbutil.getcon();

// 先查询是否有该书在借

resultset list = borrowdetaildao.list(con, borrowdetail);

while (list.next()) {

joptionpane.showmessagedialog(null, “该书已在借,请先还再借”);

return;

}

int i = borrowdetaildao.add(con, borrowdetail);

if (i == 1) {

joptionpane.showmessagedialog(null, “借书成功”);

} else {

joptionpane.showmessagedialog(null, “借书失败”);

}

} catch (exception e) {

e.printstacktrace();

joptionpane.showmessagedialog(null, “借书异常”);

} finally {

try {

dbutil.closecon(con);

} catch (exception e) {

e.printstacktrace();

}

}

}

private void booktablemousepressed(java.awt.event.mouseevent evt) {

int row = this.booktable.getselectedrow();

object bookid = this.booktable.getvalueat(row, 0);

object bookname = this.booktable.getvalueat(row, 1);

this.bookidtext.settext(bookid.tostring());

this.bookname.settext(bookname.tostring());

}

private void booknametextactionperformed(java.awt.event.actionevent evt) {

}

private void jbutton1actionperformed(java.awt.event.actionevent evt) {

string bookname = this.booknametext.gettext();

book book = new book();

book.setbookname(bookname);

filltable(book);

}

}

booktypeaddfrm.java


package com.sjsq.view;

import java.sql.connection;

import javax.swing.grouplayout;

import javax.swing.jbutton;

import javax.swing.jinternalframe;

import javax.swing.jlabel;

import javax.swing.joptionpane;

import javax.swing.jscrollpane;

import javax.swing.jtextarea;

import javax.swing.jtextfield;

import com.sjsq.dao.booktypedao;

import com.sjsq.model.booktype;

import com.sjsq.util.dbutil;

import com.sjsq.util.stringutil;

public class booktypeaddfrm extends jinternalframe {

private jbutton jbutton1;

private jbutton jbutton2;

private jlabel jlabel1;

private jlabel jlabel2;

private jscrollpane jscrollpane1;

private jtextfield typenametext;

private jtextarea typeremarkttext;

dbutil dbutil = new dbutil();

booktypedao booktypedao = new booktypedao();

public booktypeaddfrm() {

initcomponents();

settitle(“图书类别添加”);

this.setlocation(200, 50);

}

private void initcomponents() {

jlabel1 = new jlabel();

jlabel2 = new jlabel();

jbutton1 = new jbutton();

typenametext = new jtextfield();

jscrollpane1 = new jscrollpane();

typeremarkttext = new jtextarea();

jbutton2 = new jbutton();

setclosable(true);

jlabel1.settext(“图书类别名称:”);

jlabel2.settext(“类别说明:”);

jbutton1.settext(“添加”);

jbutton1.addactionlistener(new java.awt.event.actionlistener() {

public void actionperformed(java.awt.event.actionevent evt) {

jbutton1actionperformed(evt);

}

});

typeremarkttext.setcolumns(20);

typeremarkttext.setrows(5);

jscrollpane1.setviewportview(typeremarkttext);

jbutton2.settext(“重置”);

jbutton2.addactionlistener(new java.awt.event.actionlistener() {

public void actionperformed(java.awt.event.actionevent evt) {

jbutton2actionperformed(evt);

}

});

grouplayout layout = new grouplayout(getcontentpane());

getcontentpane().setlayout(layout);

layout.sethorizontalgroup(layout.createparallelgroup(grouplayout.alignment.leading)

.addgroup(layout.createsequentialgroup().addgap(49, 49, 49)

.addgroup(layout.createparallelgroup(grouplayout.alignment.leading, false)

.addgroup(layout.createsequentialgroup().addcomponent(jlabel2).addgap(18, 18, 18)

.addcomponent(jscrollpane1))

.addgroup(layout.createsequentialgroup().addcomponent(jlabel1).addgap(18, 18, 18)

.addcomponent(typenametext, grouplayout.preferred_size, 241,

grouplayout.preferred_size))

.addgroup(layout.createsequentialgroup().addcomponent(jbutton1).addgap(53, 53, 53)

.addcomponent(jbutton2)))

.addgap(179, 179, 179)));

layout.setverticalgroup(layout.createparallelgroup(grouplayout.alignment.leading).addgroup(layout

.createsequentialgroup().addgap(35, 35, 35)

.addgroup(layout.createparallelgroup(grouplayout.alignment.baseline).addcomponent(jlabel1)

.addcomponent(typenametext, grouplayout.preferred_size,

grouplayout.default_size, grouplayout.preferred_size))

.addgap(43, 43, 43)

.addgroup(layout.createparallelgroup(grouplayout.alignment.leading).addcomponent(jlabel2)

.addcomponent(jscrollpane1, grouplayout.preferred_size, 134,

grouplayout.preferred_size))

.addgap(41, 41, 41).addgroup(layout.createparallelgroup(grouplayout.alignment.baseline)

.addcomponent(jbutton1).addcomponent(jbutton2))

.addcontainergap(62, short.max_value)));

pack();

}

private void jbutton1actionperformed(java.awt.event.actionevent evt) {

string typename = this.typenametext.gettext();

string typeremark = this.typeremarkttext.gettext();

if (stringutil.isempty(typename) || stringutil.isempty(typeremark)) {

joptionpane.showmessagedialog(null, “请输入相关信息”);

return;

}

booktype booktype = new booktype();

booktype.settypename(typename);

booktype.setremark(typeremark);

connection con = null;

try {

con = dbutil.getcon();

int i = booktypedao.add(con, booktype);

if (i == 1) {

joptionpane.showmessagedialog(null, “添加成功”);

reset();

} else if (i == 2) {

joptionpane.showmessagedialog(null, “添加失败,类别已存在”);

} else {

joptionpane.showmessagedialog(null, “添加失败”);

}

} catch (exception e) {

e.printstacktrace();

} finally {

try {

dbutil.closecon(con);

} catch (exception e) {

e.printstacktrace();

}

}

}

private void reset() {

this.typenametext.settext(“”);

this.typeremarkttext.settext(“”);

}

private void jbutton2actionperformed(java.awt.event.actionevent evt) {

reset();

}

}

booktypemanagerfrm.java


package com.sjsq.view;

import java.sql.connection;

import java.sql.resultset;

import java.util.vector;

import javax.swing.borderfactory;

import javax.swing.grouplayout;

import javax.swing.jbutton;

import javax.swing.jinternalframe;

import javax.swing.jlabel;

import javax.swing.joptionpane;

import javax.swing.jpanel;

import javax.swing.jscrollpane;

import javax.swing.jtable;

import javax.swing.jtextfield;

import javax.swing.layoutstyle;

import javax.swing.table.defaulttablemodel;

import com.sjsq.dao.booktypedao;

import com.sjsq.model.booktype;

import com.sjsq.util.dbutil;

import com.sjsq.util.stringutil;

public class booktypemanagerfrm extends jinternalframe {

private jbutton jbutton1;

private jbutton jbutton2;

private jlabel jlabel1;

private jlabel jlabel2;

private jlabel jlabel3;

private jpanel jpanel1;

private jscrollpane jscrollpane1;

private jtextfield typeidtext;

private jtextfield typenametext;

private jtextfield typeremarktext;

private jtable typetable;

dbutil dbutil = new dbutil();

booktypedao booktypedao = new booktypedao();

public booktypemanagerfrm() {

initcomponents();

filltable();

settitle(“图书类别修改”);

this.setlocation(200, 30);

}

private void filltable() {

defaulttablemodel model = (defaulttablemodel) typetable.getmodel();

model.setrowcount(0);

connection con = null;

try {

con = dbutil.getcon();

resultset list = booktypedao.list(con, new booktype());

while (list.next()) {

vector rowdata = new vector();

rowdata.add(list.getint(“id”));

rowdata.add(list.getstring(“type_name”));

rowdata.add(list.getstring(“remark”));

model.addrow(rowdata);

}

} catch (exception e) {

e.printstacktrace();

} finally {

try {

dbutil.closecon(con);

} catch (exception e) {

e.printstacktrace();

}

}

}

private void initcomponents() {

jscrollpane1 = new jscrollpane();

typetable = new jtable();

jpanel1 = new jpanel();

jlabel1 = new jlabel();

jlabel2 = new jlabel();

jlabel3 = new jlabel();

typeidtext = new jtextfield();

typenametext = new jtextfield();

typeremarktext = new jtextfield();

jbutton1 = new jbutton();

jbutton2 = new jbutton();

setclosable(true);

typetable.setmodel(new defaulttablemodel(new object[][] {

}, new string[] { “编号”, “类别名称”, “类别描述” }) {

boolean[] canedit = new boolean[] { false, false, false };

public boolean iscelleditable(int rowindex, int columnindex) {

return canedit[columnindex];

}

});

typetable.addmouselistener(new java.awt.event.mouseadapter() {

public void mousepressed(java.awt.event.mouseevent evt) {

typetablemousepressed(evt);

}

});

jscrollpane1.setviewportview(typetable);

jpanel1.setborder(borderfactory.createtitledborder(“表单操作”));

jpanel1.settooltiptext(“”);

jlabel1.settext(“编号:”);

jlabel2.settext(“类别名称:”);

jlabel3.settext(“描述:”);

typeidtext.seteditable(false);

jbutton1.settext(“修改”);

jbutton1.addactionlistener(new java.awt.event.actionlistener() {

public void actionperformed(java.awt.event.actionevent evt) {

jbutton1actionperformed(evt);

}

});

jbutton2.settext(“删除”);

jbutton2.addactionlistener(new java.awt.event.actionlistener() {

public void actionperformed(java.awt.event.actionevent evt) {

jbutton2actionperformed(evt);

}

});

grouplayout jpanel1layout = new grouplayout(jpanel1);

jpanel1.setlayout(jpanel1layout);

jpanel1layout.sethorizontalgroup(jpanel1layout.createparallelgroup(grouplayout.alignment.leading)

.addgroup(jpanel1layout.createsequentialgroup().addgroup(jpanel1layout

.createparallelgroup(grouplayout.alignment.leading)

.addgroup(jpanel1layout.createsequentialgroup().addgap(22, 22, 22).addgroup(jpanel1layout

.createparallelgroup(grouplayout.alignment.leading, false)

.addgroup(jpanel1layout.createsequentialgroup().addcomponent(jlabel3).addgap(18, 18, 18)

.addcomponent(typeremarktext))

.addgroup(jpanel1layout.createsequentialgroup().addcomponent(jlabel1).addgap(18, 18, 18)

.addcomponent(typeidtext, grouplayout.preferred_size, 123,

grouplayout.preferred_size)

.addgap(18, 18, 18)

.addgroup(jpanel1layout

.createparallelgroup(grouplayout.alignment.leading)

.addcomponent(jbutton2)

.addgroup(jpanel1layout.createsequentialgroup().addcomponent(jlabel2)

.addgap(18, 18, 18).addcomponent(typenametext,

grouplayout.preferred_size, 133,

grouplayout.preferred_size))))))

.addgroup(jpanel1layout.createsequentialgroup().addgap(41, 41, 41).addcomponent(jbutton1)))

.addcontainergap(43, short.max_value)));

jpanel1layout.setverticalgroup(jpanel1layout.createparallelgroup(grouplayout.alignment.leading)

.addgroup(jpanel1layout.createsequentialgroup().addgroup(jpanel1layout

.createparallelgroup(grouplayout.alignment.leading)

.addgroup(jpanel1layout.createparallelgroup(grouplayout.alignment.baseline)

.addcomponent(jlabel1).addcomponent(jlabel2).addcomponent(typenametext,

grouplayout.preferred_size, grouplayout.default_size,

grouplayout.preferred_size))

.addcomponent(typeidtext, grouplayout.preferred_size,

grouplayout.default_size, grouplayout.preferred_size))

.addgap(27, 27, 27)

.addgroup(jpanel1layout.createparallelgroup(grouplayout.alignment.baseline)

.addcomponent(jlabel3).addcomponent(typeremarktext,

grouplayout.preferred_size, grouplayout.default_size,

grouplayout.preferred_size))

.addpreferredgap(layoutstyle.componentplacement.related, 41, short.max_value)

.addgroup(jpanel1layout.createparallelgroup(grouplayout.alignment.baseline)

.addcomponent(jbutton1).addcomponent(jbutton2))

.addcontainergap()));

grouplayout layout = new grouplayout(getcontentpane());

getcontentpane().setlayout(layout);

layout.sethorizontalgroup(layout.createparallelgroup(grouplayout.alignment.leading).addgroup(layout

.createsequentialgroup().addgap(42, 42, 42)

.addgroup(layout.createparallelgroup(grouplayout.alignment.trailing)

.addcomponent(jpanel1, grouplayout.alignment.leading,

grouplayout.default_size, grouplayout.default_size,

short.max_value)

.addcomponent(jscrollpane1, grouplayout.alignment.leading,

grouplayout.preferred_size, 452, grouplayout.preferred_size))

.addcontainergap(49, short.max_value)));

layout.setverticalgroup(layout.createparallelgroup(grouplayout.alignment.leading)

.addgroup(layout.createsequentialgroup().addcontainergap()

.addcomponent(jscrollpane1, grouplayout.preferred_size, 137,

grouplayout.preferred_size)

.addgap(51, 51, 51)

.addcomponent(jpanel1, grouplayout.preferred_size,

grouplayout.default_size, grouplayout.preferred_size)

.addcontainergap(30, short.max_value)));

pack();

}

private void jbutton2actionperformed(java.awt.event.actionevent evt) {

string typeid = this.typeidtext.gettext();

if (stringutil.isempty(typeid)) {

joptionpane.showmessagedialog(null, “请选择相关信息”);

return;

}

connection con = null;

try {

con = dbutil.getcon();

int i = booktypedao.delete(con, typeid);

if (i == 1) {

joptionpane.showmessagedialog(null, “删除成功”);

filltable();

} else if (i == 2) {

joptionpane.showmessagedialog(null, “删除失败-类别最少保留一个”);

} else if (i == 3) {

joptionpane.showmessagedialog(null, “删除失败-该类别下有书籍”);

} else {

joptionpane.showmessagedialog(null, “删除失败”);

}

} catch (exception e) {

e.printstacktrace();

joptionpane.showmessagedialog(null, “删除异常”);

} finally {

try {

dbutil.closecon(con);

} catch (exception e) {

e.printstacktrace();

}

}

}

private void jbutton1actionperformed(java.awt.event.actionevent evt) {

string typeid = this.typeidtext.gettext();

string typename = this.typenametext.gettext();

string typeremark = this.typeremarktext.gettext();

if (stringutil.isempty(typename) || stringutil.isempty(typeremark)) {

joptionpane.showmessagedialog(null, “请输入相关信息”);

return;

}

booktype booktype = new booktype();

booktype.settypeid(integer.parseint(typeid));

booktype.settypename(typename);

booktype.setremark(typeremark);

connection con = null;

try {

con = dbutil.getcon();

int i = booktypedao.update(con, booktype);

if (i == 1) {

joptionpane.showmessagedialog(null, “修改成功”);

filltable();

} else {

joptionpane.showmessagedialog(null, “修改失败”);

}

} catch (exception e) {

e.printstacktrace();

joptionpane.showmessagedialog(null, “修改异常”);

} finally {

try {

dbutil.closecon(con);

} catch (exception e) {

e.printstacktrace();

}

}

}

private void typetablemousepressed(java.awt.event.mouseevent evt) {

int row = this.typetable.getselectedrow();

this.typeidtext.settext(typetable.getvalueat(row, 0).tostring());

this.typenametext.settext(typetable.getvalueat(row, 1).tostring());

this.typeremarktext.settext(typetable.getvalueat(row, 2).tostring());

}

}

borrowdetailfrm.java


package com.sjsq.view;

import java.sql.connection;

import java.sql.resultset;

import java.util.vector;

import javax.swing.grouplayout;

import javax.swing.jinternalframe;

import javax.swing.jscrollpane;

import javax.swing.jtable;

import javax.swing.table.defaulttablemodel;

import com.sjsq.dao.borrowdetaildao;

import com.sjsq.model.borrowdetail;

import com.sjsq.util.dbutil;

import com.sjsq.util.timeutil;

public class borrowdetailfrm extends jinternalframe {

private jtable detailtable;

private jscrollpane jscrollpane1;

dbutil dbutil = new dbutil();

borrowdetaildao borrowdetaildao = new borrowdetaildao();

public borrowdetailfrm() {

initcomponents();

filltable(new borrowdetail());

settitle(“借还信息”);

this.setlocation(200, 50);

}

private void filltable(borrowdetail borrowdetail) {

defaulttablemodel model = (defaulttablemodel) detailtable.getmodel();

model.setrowcount(0);

connection con = null;

try {

con = dbutil.getcon();

resultset list = borrowdetaildao.list(con, borrowdetail);

while (list.next()) {

vector rowdata = new vector();

rowdata.add(list.getstring(“username”));

rowdata.add(list.getstring(“book_name”));

int status = list.getint(“status”);

if (status == 1) {

rowdata.add(“在借”);

} else {

rowdata.add(“已还”);

}

rowdata.add(timeutil.getdatebytime(list.getlong(“borrow_time”)));

if (status == 2) {

rowdata.add(timeutil.getdatebytime(list.getlong(“return_time”)));

}

model.addrow(rowdata);

}

} catch (exception e) {

e.printstacktrace();

} finally {

try {

dbutil.closecon(con);

} catch (exception e) {

e.printstacktrace();

}

}

}

private void initcomponents() {

jscrollpane1 = new jscrollpane();

detailtable = new jtable();

setclosable(true);

detailtable.setmodel(new defaulttablemodel(new object[][] {

}, new string[] { “借书人”, “书名”, “状态”, “借书时间”, “还书时间” }) {

boolean[] canedit = new boolean[] { false, false, false, false, false };

public boolean iscelleditable(int rowindex, int columnindex) {

return canedit[columnindex];

}

});

jscrollpane1.setviewportview(detailtable);

grouplayout layout = new grouplayout(getcontentpane());

getcontentpane().setlayout(layout);

layout.sethorizontalgroup(layout.createparallelgroup(grouplayout.alignment.leading)

.addgroup(layout.createsequentialgroup().addcontainergap()

.addcomponent(jscrollpane1, grouplayout.default_size, 700, short.max_value)

.addcontainergap()));

layout.setverticalgroup(layout.createparallelgroup(grouplayout.alignment.leading)

.addgroup(layout

.createsequentialgroup().addcontainergap().addcomponent(jscrollpane1,

grouplayout.preferred_size, 366, grouplayout.preferred_size)

.addcontainergap(25, short.max_value)));

pack();

}

}

loginfrm.java


package com.sjsq.view;

import java.sql.connection;

import javax.swing.grouplayout;

import javax.swing.jbutton;

import javax.swing.jcombobox;

import javax.swing.jframe;

import javax.swing.jlabel;

import javax.swing.joptionpane;

import javax.swing.jtextfield;

import javax.swing.layoutstyle;

import javax.swing.windowconstants;

import com.sjsq.dao.userdao;

import com.sjsq.model.user;

import com.sjsq.util.dbutil;

import com.sjsq.util.stringutil;

public class loginfrm extends jframe {

public static user currentuser;

private jbutton jb_login;

private jbutton jb_reset;

private jlabel jlabel1;

private jlabel jlabel2;

private jlabel jlabel3;

private jtextfield passwordtext;

private jcombobox role;

private jtextfield usernametext;

userdao userdao = new userdao();

dbutil dbutil = new dbutil();

public loginfrm() {

initcomponents();

this.role.additem(“学生”);

this.role.additem(“管理员”);

this.setlocationrelativeto(null);

}

private void initcomponents() {

jlabel1 = new jlabel();

jlabel2 = new jlabel();

jlabel3 = new jlabel();

jb_login = new jbutton();

jb_reset = new jbutton();

usernametext = new jtextfield();

passwordtext = new jtextfield();

role = new jcombobox();

settitle(“用户登录”);

setdefaultcloseoperation(windowconstants.exit_on_close);

setresizable(false);

jlabel1.settext(“账号:”);

jlabel2.settext(“密码:”);

jlabel3.settext(“角色:”);

jb_login.settext(“登录”);

jb_login.addactionlistener(new java.awt.event.actionlistener() {

public void actionperformed(java.awt.event.actionevent evt) {

jb_loginactionperformed(evt);

}

});

jb_reset.settext(“重置”);

jb_reset.addactionlistener(new java.awt.event.actionlistener() {

public void actionperformed(java.awt.event.actionevent evt) {

jb_resetactionperformed(evt);

}

});

grouplayout layout = new grouplayout(getcontentpane());

getcontentpane().setlayout(layout);

layout.sethorizontalgroup(layout.createparallelgroup(grouplayout.alignment.leading).addgroup(layout

.createsequentialgroup().addgap(59, 59, 59)

.addgroup(layout.createparallelgroup(grouplayout.alignment.leading)

.addgroup(layout.createsequentialgroup().addcomponent(jb_login).addgap(87, 87, 87)

.addcomponent(jb_reset))

.addgroup(layout.createsequentialgroup()

.addgroup(layout.createparallelgroup(grouplayout.alignment.trailing)

.addcomponent(jlabel3).addcomponent(jlabel2).addcomponent(jlabel1))

.addgap(18, 18, 18)

.addgroup(layout.createparallelgroup(grouplayout.alignment.leading, false)

.addcomponent(usernametext, grouplayout.default_size, 150,

short.max_value)

.addcomponent(passwordtext)

.addcomponent(role, 0, grouplayout.default_size, short.max_value))))

.addcontainergap(137, short.max_value)));

layout.setverticalgroup(layout.createparallelgroup(grouplayout.alignment.leading).addgroup(layout

.createsequentialgroup().addgap(49, 49, 49)

.addgroup(layout.createparallelgroup(grouplayout.alignment.baseline).addcomponent(jlabel1)

.addcomponent(usernametext, grouplayout.preferred_size,

grouplayout.default_size, grouplayout.preferred_size))

.addgap(45, 45, 45)

.addgroup(layout.createparallelgroup(grouplayout.alignment.leading).addcomponent(jlabel2)

.addcomponent(passwordtext, grouplayout.preferred_size,

grouplayout.default_size, grouplayout.preferred_size))

.addgap(33, 33, 33)

.addgroup(layout.createparallelgroup(grouplayout.alignment.baseline).addcomponent(jlabel3)

.addcomponent(role, grouplayout.preferred_size,

grouplayout.default_size, grouplayout.preferred_size))

.addpreferredgap(layoutstyle.componentplacement.related, 42, short.max_value)

.addgroup(layout.createparallelgroup(grouplayout.alignment.baseline).addcomponent(jb_login)

.addcomponent(jb_reset))

.addgap(37, 37, 37)));

pack();

}

private void jb_loginactionperformed(java.awt.event.actionevent evt) {

string username = this.usernametext.gettext();

string password = this.passwordtext.gettext();

int index = this.role.getselectedindex();

if (stringutil.isempty(username) || stringutil.isempty(password)) {

joptionpane.showmessagedialog(null, “请输入相关信息”);

return;

}

user user = new user();

user.setusername(username);

user.setpassword(password);

if (index == 0) {

user.setrole(1);

} else {

user.setrole(2);

}

connection con = null;

try {

con = dbutil.getcon();

user login = userdao.login(con, user);

currentuser = login;

if (login == null) {

joptionpane.showmessagedialog(null, “登录失败”);

} else {

// 角色 1普通 2管理员

if (index == 0) {

// 学生

this.dispose();

new usermainfrm().setvisible(true);

} else {

// 管理员

this.dispose();

new adminmainfrm().setvisible(true);

}

}

} catch (exception e) {

e.printstacktrace();

joptionpane.showmessagedialog(null, “登录异常”);

} finally {

try {

dbutil.closecon(con);

} catch (exception e) {

e.printstacktrace();

}

}

}

private void reset() {

this.usernametext.settext(“”);

this.passwordtext.settext(“”);

}

private void jb_resetactionperformed(java.awt.event.actionevent evt) {

reset();

}

public static void main(string args[]) {

java.awt.eventqueue.invokelater(new runnable() {

public void run() {

new loginfrm().setvisible(true);

}

});

}

}

registerfrm.java


package com.sjsq.view;

import java.sql.connection;

import javax.swing.grouplayout;

import javax.swing.jbutton;

import javax.swing.jframe;

import javax.swing.jlabel;

import javax.swing.joptionpane;

import javax.swing.jtextfield;

import javax.swing.layoutstyle;

import javax.swing.windowconstants;

import com.sjsq.dao.userdao;

import com.sjsq.model.user;

import com.sjsq.util.dbutil;

import com.sjsq.util.stringutil;

public class registerfrm extends jframe {

private jbutton jbutton1;

private jbutton jbutton2;

private jlabel jlabel1;

private jlabel jlabel2;

private jtextfield passwordtext;

private jtextfield usernametext;

dbutil dbutil = new dbutil();

userdao userdao = new userdao();

public registerfrm() {

initcomponents();

this.setlocationrelativeto(null);

}

private void initcomponents() {

jlabel1 = new jlabel();

jlabel2 = new jlabel();

jbutton1 = new jbutton();

jbutton2 = new jbutton();

usernametext = new jtextfield();

passwordtext = new jtextfield();

setdefaultcloseoperation(windowconstants.exit_on_close);

settitle(“用户注册”);

setresizable(false);

jlabel1.settext(“账号:”);

jlabel2.settext(“密码:”);

jbutton1.settext(“注册”);

jbutton1.addactionlistener(new java.awt.event.actionlistener() {

public void actionperformed(java.awt.event.actionevent evt) {

jbutton1actionperformed(evt);

}

});

jbutton2.settext(“重置”);

jbutton2.addactionlistener(new java.awt.event.actionlistener() {

public void actionperformed(java.awt.event.actionevent evt) {

jbutton2actionperformed(evt);

}

});

grouplayout layout = new grouplayout(getcontentpane());

getcontentpane().setlayout(layout);

layout.sethorizontalgroup(layout.createparallelgroup(grouplayout.alignment.leading).addgroup(layout

.createsequentialgroup().addgap(60, 60, 60)

.addgroup(layout.createparallelgroup(grouplayout.alignment.leading)

.addgroup(layout.createsequentialgroup().addcomponent(jbutton1).addgap(77, 77, 77)

.addcomponent(jbutton2))

.addgroup(layout.createsequentialgroup()

.addgroup(layout.createparallelgroup(grouplayout.alignment.leading)

.addcomponent(jlabel1).addcomponent(jlabel2))

.addgap(37, 37, 37)

.addgroup(layout.createparallelgroup(grouplayout.alignment.leading, false)

.addcomponent(passwordtext).addcomponent(usernametext,

grouplayout.default_size, 144, short.max_value))))

.addcontainergap(123, short.max_value)));

layout.setverticalgroup(layout.createparallelgroup(grouplayout.alignment.leading).addgroup(layout

.createsequentialgroup().addgap(49, 49, 49)

.addgroup(layout.createparallelgroup(grouplayout.alignment.baseline).addcomponent(jlabel1)

.addcomponent(usernametext, grouplayout.preferred_size,

grouplayout.default_size, grouplayout.preferred_size))

.addgap(48, 48, 48)

.addgroup(layout.createparallelgroup(grouplayout.alignment.baseline).addcomponent(jlabel2)

.addcomponent(passwordtext, grouplayout.preferred_size,

grouplayout.default_size, grouplayout.preferred_size))

.addpreferredgap(layoutstyle.componentplacement.related, 68, short.max_value)

.addgroup(layout.createparallelgroup(grouplayout.alignment.baseline).addcomponent(jbutton1)

.addcomponent(jbutton2))

.addgap(64, 64, 64)));

pack();

}

private void jbutton1actionperformed(java.awt.event.actionevent evt) {

string username = this.usernametext.gettext();

string password = this.passwordtext.gettext();

if (stringutil.isempty(username) || stringutil.isempty(password)) {

joptionpane.showmessagedialog(null, “请输入相关信息”);

return;

}

user user = new user();

user.setusername(username);

user.setpassword(password);

user.setrole(1);

connection con = null;

try {

con = dbutil.getcon();

int i = userdao.adduser(con, user);

if (i == 2) {

joptionpane.showmessagedialog(null, “该用户名已存在,请重新注册”);

} else if (i == 0) {

joptionpane.showmessagedialog(null, “注册失败”);

} else {

joptionpane.showmessagedialog(null, “注册成功”);

this.dispose();

new loginfrm().setvisible(true);

}

} catch (exception e) {

e.printstacktrace();

} finally {

try {

dbutil.closecon(con);

} catch (exception e) {

e.printstacktrace();

}

}

}

private void reset() {

this.usernametext.settext(“”);

this.passwordtext.settext(“”);

}

private void jbutton2actionperformed(java.awt.event.actionevent evt) {

reset();

}

public static void main(string args[]) {

java.awt.eventqueue.invokelater(new runnable() {

public void run() {

new registerfrm().setvisible(true);

}

});

}

}

userborrowdetail.java


package com.sjsq.view;

import java.sql.connection;

import java.sql.resultset;

import java.util.vector;

import javax.swing.grouplayout;

import javax.swing.jbutton;

import javax.swing.jinternalframe;

import javax.swing.jlabel;

import javax.swing.joptionpane;

import javax.swing.jscrollpane;

import javax.swing.jtable;

import javax.swing.jtextfield;

import javax.swing.layoutstyle;

import javax.swing.table.defaulttablemodel;

import com.sjsq.dao.borrowdetaildao;

import com.sjsq.model.borrowdetail;

import com.sjsq.util.dbutil;

import com.sjsq.util.stringutil;

import com.sjsq.util.timeutil;

public class userborrowdetail extends jinternalframe {

private jtextfield borrowidtext;

private jtable borrowtbale;

private jbutton jb_return;

private jlabel jlabel1;

private jscrollpane jscrollpane1;

dbutil dbutil = new dbutil();

borrowdetaildao borrowdetaildao = new borrowdetaildao();

public userborrowdetail() {

initcomponents();

filltable(new borrowdetail());

this.jb_return.setvisible(false);

settitle(“借还信息”);

this.setlocation(200, 50);

}

private void filltable(borrowdetail borrowdetail) {

defaulttablemodel model = (defaulttablemodel) borrowtbale.getmodel();

model.setrowcount(0);

integer userid = loginfrm.currentuser.getuserid();

connection con = null;

try {

con = dbutil.getcon();

borrowdetail.setuserid(userid);

resultset list = borrowdetaildao.list(con, borrowdetail);

while (list.next()) {

vector rowdata = new vector();

rowdata.add(list.getint(“id”));

rowdata.add(list.getstring(“book_name”));

int status = list.getint(“status”);

if (status == 1) {

rowdata.add(“在借”);

}

if (status == 2) {

rowdata.add(“已还”);

}

rowdata.add(timeutil.getdatebytime(list.getlong(“borrow_time”)));

if (status == 2) {

rowdata.add(timeutil.getdatebytime(list.getlong(“return_time”)));

}

model.addrow(rowdata);

}

} catch (exception e) {

e.printstacktrace();

} finally {

try {

dbutil.closecon(con);

} catch (exception e) {

e.printstacktrace();

}

}

}

private void initcomponents() {

jscrollpane1 = new jscrollpane();

borrowtbale = new jtable();

jlabel1 = new jlabel();

borrowidtext = new jtextfield();

jb_return = new jbutton();

setclosable(true);

borrowtbale.setmodel(new defaulttablemodel(new object[][] {

}, new string[] { “编号”, “书名”, “状态”, “借书时间”, “还书时间” }) {

boolean[] canedit = new boolean[] { false, false, false, false, false };

public boolean iscelleditable(int rowindex, int columnindex) {

return canedit[columnindex];

}

});

borrowtbale.addmouselistener(new java.awt.event.mouseadapter() {

public void mousepressed(java.awt.event.mouseevent evt) {

borrowtbalemousepressed(evt);

}

});

jscrollpane1.setviewportview(borrowtbale);

jlabel1.settext(“编号:”);

borrowidtext.seteditable(false);

jb_return.settext(“还书”);

jb_return.addactionlistener(new java.awt.event.actionlistener() {

public void actionperformed(java.awt.event.actionevent evt) {

jb_returnactionperformed(evt);

}

});

grouplayout layout = new grouplayout(getcontentpane());

getcontentpane().setlayout(layout);

layout.sethorizontalgroup(layout.createparallelgroup(grouplayout.alignment.leading)

.addgroup(layout.createsequentialgroup().addgap(35, 35, 35).addcomponent(jlabel1).addgap(38, 38, 38)

.addcomponent(borrowidtext, grouplayout.preferred_size, 114,

grouplayout.preferred_size)

.addpreferredgap(layoutstyle.componentplacement.related, 282, short.max_value)

.addcomponent(jb_return).addgap(44, 44, 44))

.addgroup(layout.createsequentialgroup().addcontainergap()

.addcomponent(jscrollpane1, grouplayout.default_size, 700, short.max_value)

.addcontainergap()));

layout.setverticalgroup(layout.createparallelgroup(grouplayout.alignment.leading).addgroup(layout

.createsequentialgroup()

.addcomponent(jscrollpane1, grouplayout.preferred_size, 239,

grouplayout.preferred_size)

.addgap(18, 18, 18)

.addgroup(layout.createparallelgroup(grouplayout.alignment.baseline).addcomponent(jlabel1)

.addcomponent(borrowidtext, grouplayout.preferred_size,

grouplayout.default_size, grouplayout.preferred_size)

.addcomponent(jb_return))

.addcontainergap(26, short.max_value)));

pack();

}

private void jb_returnactionperformed(java.awt.event.actionevent evt) {

string borrowstr = this.borrowidtext.gettext();

if (stringutil.isempty(borrowstr)) {

joptionpane.showmessagedialog(null, “请选择未还的书籍”);

return;

}

borrowdetail detail = new borrowdetail();

detail.setborrowid(integer.parseint(borrowstr));

detail.setstatus(2);

detail.setreturntime(timeutil.gettime());

connection con = null;

try {

con = dbutil.getcon();

int i = borrowdetaildao.returnbook(con, detail);

if (i == 1) {

joptionpane.showmessagedialog(null, “还书成功”);

} else {

joptionpane.showmessagedialog(null, “还书失败”);

}

} catch (exception e) {

e.printstacktrace();

joptionpane.showmessagedialog(null, “还书异常”);

} finally {

try {

dbutil.closecon(con);

} catch (exception e) {

e.printstacktrace();

}

}

filltable(new borrowdetail());

}

private void borrowtbalemousepressed(java.awt.event.mouseevent evt) {

int row = borrowtbale.getselectedrow();

integer borrowid = (integer) borrowtbale.getvalueat(row, 0);

string status = (string) borrowtbale.getvalueat(row, 2);

this.borrowidtext.settext(borrowid.tostring());

if (status.equals(“在借”)) {

this.jb_return.setvisible(true);

} else {

this.jb_return.setvisible(false);

}

}

}

userinfofrm.java


package com.sjsq.view;

import java.sql.connection;

import java.sql.resultset;

import java.util.vector;

import javax.swing.borderfactory;

import javax.swing.grouplayout;

import javax.swing.jbutton;

import javax.swing.jinternalframe;

import javax.swing.jlabel;

import javax.swing.joptionpane;

import javax.swing.jpanel;

import javax.swing.jscrollpane;

import javax.swing.jtable;

import javax.swing.jtextfield;

import javax.swing.layoutstyle;

import javax.swing.table.defaulttablemodel;

import com.sjsq.dao.userdao;

import com.sjsq.model.user;

import com.sjsq.util.dbutil;

import com.sjsq.util.stringutil;

public class userinfofrm extends jinternalframe {

private jbutton jbutton1;

private jbutton jbutton2;

private jlabel jlabel1;

private jlabel jlabel2;

private jlabel jlabel3;

private jlabel jlabel4;

private jlabel jlabel5;

private jpanel jpanel1;

private jpanel jpanel2;

private jscrollpane jscrollpane1;

private jtextfield passwordtext;

private jtextfield useridtext;

private jtextfield usernametext;

private jtextfield usernaneselecttext;

private jtable usertable;

dbutil dbutil = new dbutil();

userdao userdao = new userdao();

public userinfofrm() {

initcomponents();

filltable(new user());

settitle(“用户信息”);

this.setlocation(200, 50);

}

private void filltable(user user) {

defaulttablemodel model = (defaulttablemodel) usertable.getmodel();

model.setrowcount(0);

connection con = null;

try {

con = dbutil.getcon();

resultset list = userdao.list(con, user);

while (list.next()) {

vector rowdata = new vector();

rowdata.add(list.getint(“id”));

rowdata.add(list.getstring(“username”));

rowdata.add(list.getstring(“password”));

model.addrow(rowdata);

}

} catch (exception e) {

e.printstacktrace();

} finally {

try {

dbutil.closecon(con);

} catch (exception e) {

e.printstacktrace();

}

}

}

private void initcomponents() {

jlabel2 = new jlabel();

jscrollpane1 = new jscrollpane();

usertable = new jtable();

jpanel1 = new jpanel();

jlabel1 = new jlabel();

jbutton1 = new jbutton();

usernaneselecttext = new jtextfield();

jpanel2 = new jpanel();

jlabel3 = new jlabel();

useridtext = new jtextfield();

jlabel4 = new jlabel();

usernametext = new jtextfield();

jlabel5 = new jlabel();

passwordtext = new jtextfield();

jbutton2 = new jbutton();

jlabel2.settext(“jlabel2”);

setclosable(true);

usertable.setmodel(new defaulttablemodel(new object[][] {

}, new string[] { “编号”, “账号”, “密码” }) {

boolean[] canedit = new boolean[] { false, false, false };

public boolean iscelleditable(int rowindex, int columnindex) {

return canedit[columnindex];

}

});

usertable.addmouselistener(new java.awt.event.mouseadapter() {

public void mousepressed(java.awt.event.mouseevent evt) {

usertablemousepressed(evt);

}

});

jscrollpane1.setviewportview(usertable);

jpanel1.setborder(borderfactory.createtitledborder(“表单操作”));

jlabel1.settext(“账号:”);

jbutton1.settext(“查询”);

jbutton1.addactionlistener(new java.awt.event.actionlistener() {

public void actionperformed(java.awt.event.actionevent evt) {

jbutton1actionperformed(evt);

}

});

grouplayout jpanel1layout = new grouplayout(jpanel1);

jpanel1.setlayout(jpanel1layout);

jpanel1layout.sethorizontalgroup(jpanel1layout.createparallelgroup(grouplayout.alignment.leading)

.addgroup(jpanel1layout.createsequentialgroup().addcontainergap().addcomponent(jlabel1)

.addgap(18, 18, 18)

.addcomponent(usernaneselecttext, grouplayout.default_size, 184, short.max_value)

.addgap(18, 18, 18).addcomponent(jbutton1).addcontainergap()));

jpanel1layout.setverticalgroup(jpanel1layout.createparallelgroup(grouplayout.alignment.leading)

.addgroup(jpanel1layout.createsequentialgroup().addgroup(jpanel1layout

.createparallelgroup(grouplayout.alignment.leading)

.addgroup(jpanel1layout.createparallelgroup(grouplayout.alignment.baseline)

.addcomponent(jlabel1).addcomponent(usernaneselecttext,

grouplayout.preferred_size, grouplayout.default_size,

grouplayout.preferred_size))

.addcomponent(jbutton1))

.addcontainergap(grouplayout.default_size, short.max_value)));

jpanel2.setborder(borderfactory.createtitledborder(“用户操作”));

jlabel3.settext(“编号:”);

useridtext.seteditable(false);

jlabel4.settext(“账号:”);

jlabel5.settext(“密码:”);

jbutton2.settext(“修改”);

jbutton2.addactionlistener(new java.awt.event.actionlistener() {

public void actionperformed(java.awt.event.actionevent evt) {

jbutton2actionperformed(evt);

}

});

grouplayout jpanel2layout = new grouplayout(jpanel2);

jpanel2.setlayout(jpanel2layout);

jpanel2layout.sethorizontalgroup(jpanel2layout.createparallelgroup(grouplayout.alignment.leading)

.addgroup(jpanel2layout.createsequentialgroup().addcontainergap()

.addgroup(jpanel2layout.createparallelgroup(grouplayout.alignment.leading)

.addgroup(jpanel2layout.createsequentialgroup().addcomponent(jlabel3)

.addpreferredgap(layoutstyle.componentplacement.related)

.addcomponent(useridtext, grouplayout.preferred_size, 85,

grouplayout.preferred_size)

.addgap(18, 18, 18).addcomponent(jlabel4))

.addgroup(jpanel2layout.createsequentialgroup().addcomponent(jlabel5)

.addpreferredgap(layoutstyle.componentplacement.related)

.addcomponent(passwordtext, grouplayout.preferred_size, 88,

grouplayout.preferred_size)))

.addgroup(jpanel2layout.createparallelgroup(grouplayout.alignment.leading)

.addgroup(jpanel2layout.createsequentialgroup().addgap(37, 37, 37).addcomponent(

usernametext, grouplayout.preferred_size, 94,

grouplayout.preferred_size))

.addgroup(jpanel2layout.createsequentialgroup().addgap(8, 8, 8).addcomponent(jbutton2)))

.addcontainergap(26, short.max_value)));

jpanel2layout.setverticalgroup(jpanel2layout.createparallelgroup(grouplayout.alignment.leading)

.addgroup(jpanel2layout.createsequentialgroup()

.addgroup(jpanel2layout.createparallelgroup(grouplayout.alignment.baseline)

.addcomponent(jlabel3).addcomponent(jlabel4)

.addcomponent(useridtext, grouplayout.preferred_size,

grouplayout.default_size, grouplayout.preferred_size)

.addcomponent(usernametext, grouplayout.preferred_size,

grouplayout.default_size, grouplayout.preferred_size))

.addgap(29, 29, 29)

.addgroup(jpanel2layout.createparallelgroup(grouplayout.alignment.baseline)

.addcomponent(jlabel5)

.addcomponent(passwordtext, grouplayout.preferred_size,

grouplayout.default_size, grouplayout.preferred_size)

.addcomponent(jbutton2))

.addcontainergap(37, short.max_value)));

grouplayout layout = new grouplayout(getcontentpane());

getcontentpane().setlayout(layout);

layout.sethorizontalgroup(layout.createparallelgroup(grouplayout.alignment.leading).addgroup(layout

.createsequentialgroup().addgap(24, 24, 24)

.addgroup(layout.createparallelgroup(grouplayout.alignment.trailing)

.addcomponent(jpanel2, grouplayout.alignment.leading,

grouplayout.default_size, grouplayout.default_size,

short.max_value)

.addcomponent(jscrollpane1, grouplayout.alignment.leading, 0, 0, short.max_value)

.addcomponent(jpanel1, grouplayout.alignment.leading,

grouplayout.default_size, grouplayout.default_size,

short.max_value))

.addgap(226, 226, 226)));

layout.setverticalgroup(layout.createparallelgroup(grouplayout.alignment.leading)

.addgroup(layout.createsequentialgroup()

.addcomponent(jpanel1, grouplayout.preferred_size,

grouplayout.default_size, grouplayout.preferred_size)

.addgap(28, 28, 28)

.addcomponent(jscrollpane1, grouplayout.preferred_size, 136,

grouplayout.preferred_size)

.addpreferredgap(layoutstyle.componentplacement.unrelated)

.addcomponent(jpanel2, grouplayout.preferred_size,

grouplayout.default_size, grouplayout.preferred_size)

.addcontainergap(16, short.max_value)));

pack();

}

private void usertablemousepressed(java.awt.event.mouseevent evt) {

int row = this.usertable.getselectedrow();

最后

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、oppo等大厂,18年进入阿里一直到现在。

深知大多数java工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。

因此收集整理了一份《2024年java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上java开发知识点,不论你是刚入门android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
t = new grouplayout(jpanel2);

jpanel2.setlayout(jpanel2layout);

jpanel2layout.sethorizontalgroup(jpanel2layout.createparallelgroup(grouplayout.alignment.leading)

.addgroup(jpanel2layout.createsequentialgroup().addcontainergap()

.addgroup(jpanel2layout.createparallelgroup(grouplayout.alignment.leading)

.addgroup(jpanel2layout.createsequentialgroup().addcomponent(jlabel3)

.addpreferredgap(layoutstyle.componentplacement.related)

.addcomponent(useridtext, grouplayout.preferred_size, 85,

grouplayout.preferred_size)

.addgap(18, 18, 18).addcomponent(jlabel4))

.addgroup(jpanel2layout.createsequentialgroup().addcomponent(jlabel5)

.addpreferredgap(layoutstyle.componentplacement.related)

.addcomponent(passwordtext, grouplayout.preferred_size, 88,

grouplayout.preferred_size)))

.addgroup(jpanel2layout.createparallelgroup(grouplayout.alignment.leading)

.addgroup(jpanel2layout.createsequentialgroup().addgap(37, 37, 37).addcomponent(

usernametext, grouplayout.preferred_size, 94,

grouplayout.preferred_size))

.addgroup(jpanel2layout.createsequentialgroup().addgap(8, 8, 8).addcomponent(jbutton2)))

.addcontainergap(26, short.max_value)));

jpanel2layout.setverticalgroup(jpanel2layout.createparallelgroup(grouplayout.alignment.leading)

.addgroup(jpanel2layout.createsequentialgroup()

.addgroup(jpanel2layout.createparallelgroup(grouplayout.alignment.baseline)

.addcomponent(jlabel3).addcomponent(jlabel4)

.addcomponent(useridtext, grouplayout.preferred_size,

grouplayout.default_size, grouplayout.preferred_size)

.addcomponent(usernametext, grouplayout.preferred_size,

grouplayout.default_size, grouplayout.preferred_size))

.addgap(29, 29, 29)

.addgroup(jpanel2layout.createparallelgroup(grouplayout.alignment.baseline)

.addcomponent(jlabel5)

.addcomponent(passwordtext, grouplayout.preferred_size,

grouplayout.default_size, grouplayout.preferred_size)

.addcomponent(jbutton2))

.addcontainergap(37, short.max_value)));

grouplayout layout = new grouplayout(getcontentpane());

getcontentpane().setlayout(layout);

layout.sethorizontalgroup(layout.createparallelgroup(grouplayout.alignment.leading).addgroup(layout

.createsequentialgroup().addgap(24, 24, 24)

.addgroup(layout.createparallelgroup(grouplayout.alignment.trailing)

.addcomponent(jpanel2, grouplayout.alignment.leading,

grouplayout.default_size, grouplayout.default_size,

short.max_value)

.addcomponent(jscrollpane1, grouplayout.alignment.leading, 0, 0, short.max_value)

.addcomponent(jpanel1, grouplayout.alignment.leading,

grouplayout.default_size, grouplayout.default_size,

short.max_value))

.addgap(226, 226, 226)));

layout.setverticalgroup(layout.createparallelgroup(grouplayout.alignment.leading)

.addgroup(layout.createsequentialgroup()

.addcomponent(jpanel1, grouplayout.preferred_size,

grouplayout.default_size, grouplayout.preferred_size)

.addgap(28, 28, 28)

.addcomponent(jscrollpane1, grouplayout.preferred_size, 136,

grouplayout.preferred_size)

.addpreferredgap(layoutstyle.componentplacement.unrelated)

.addcomponent(jpanel2, grouplayout.preferred_size,

grouplayout.default_size, grouplayout.preferred_size)

.addcontainergap(16, short.max_value)));

pack();

}

private void usertablemousepressed(java.awt.event.mouseevent evt) {

int row = this.usertable.getselectedrow();

最后

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、oppo等大厂,18年进入阿里一直到现在。

深知大多数java工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。

因此收集整理了一份《2024年java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

[外链图片转存中…(img-7rwjazkp-1714786395314)]

[外链图片转存中…(img-yazrphq8-1714786395315)]

[外链图片转存中…(img-ppdt8176-1714786395315)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上java开发知识点,不论你是刚入门android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com