📄 design.java
字号:
package beans;
import java.sql.*;
import javax.servlet.jsp.*;
import java.io.*;
public class Design {
private String driver = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
private String url = "jdbc:microsoft:sqlserver://localhost:1433";
private String user = "nick";
private String passwd = "123";
private Connection c = null;
private PreparedStatement ps = null;
private String pss = null;
private ResultSet rs = null;
private int cpu = 0;
private int mainboard = 0;
private int harddisk = 0;
private int memory = 0;
private int display = 0;
private int monitor = 0;
private int cpuT = 0;
private String submit = null;
private String[][] result = new String[6][7];
public Design() {
try {
Class.forName(driver);
for (int i = 0; i < 6; i++)
for (int j = 0; j < 7; j++)
result[i][j] = new String("");
c = DriverManager.getConnection(url, user, passwd);
}
catch (Exception e) {
e.printStackTrace();
}
}
/* 获取和设置用户对CPU的要求 */
public int getCpu() {
return this.cpu;
}
public void setCpu(int cpu) {
this.cpu = cpu;
}
/* 获取和设置用户对主板的要求 */
public int getMainboard() {
return this.mainboard;
}
public void setMainboard(int mainboard) {
this.mainboard = mainboard;
}
/* 获取和设置用户对硬盘的要求 */
public int getHarddisk() {
return this.harddisk;
}
public void setHarddisk(int harddisk) {
this.harddisk = harddisk;
}
/* 获取和设置用户对内存的要求 */
public int getMemory() {
return this.memory;
}
public void setMemory(int memory) {
this.memory = memory;
}
/* 获取和设置用户对显卡的要求 */
public int getDisplay() {
return this.display;
}
public void setDisplay(int display) {
this.display = display;
}
/* 获取和设置用户对显示器的要求 */
public int getMonitor() {
return this.monitor;
}
public void setMonitor(int monitor) {
this.monitor = monitor;
}
public String getSubmit() {
return this.submit;
}
public void setSubmit(String submit) {
this.submit = encoding(submit);
}
/* 获取配件方案 */
public String[][] arrange() {
if (submit != null) {
selectCpu(this.cpu);
selectMainboard(this.mainboard);
selectHarddisk(this.harddisk);
selectMemory(this.memory);
selectDisplay(this.display);
selectMonitor(this.monitor);
}
return result;
}
/* 根据要求选择CPU */
private void selectCpu(int cpu) {
int temp = 0;
try {
if (cpu == 1) {
pss = "select * from cpu where manufactor = 'Intel'";
ps = c.prepareStatement(pss);
rs = ps.executeQuery();
if (rs.next())
temp = rs.getInt(1);
else
temp = 0;
pss = "select * from cpu where id = ?";
}
else if (cpu == 2) {
pss = "select * from cpu where manufactor = 'AMD'";
ps =
c.prepareStatement(
pss,
ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_UPDATABLE);
rs = ps.executeQuery();
if (rs.next())
temp = rs.getInt(1);
else
temp = 0;
pss = "select * from cpu where id = ?";
}
else if (cpu == 3) {
pss = "select max(speed) from cpu";
ps = c.prepareStatement(pss);
rs = ps.executeQuery();
if (rs.next())
temp = rs.getInt(1);
else
temp = 0;
pss = "select * from cpu where speed = ?";
}
else if (cpu == 4) {
pss = "select min(price) from cpu";
ps = c.prepareStatement(pss);
rs = ps.executeQuery();
if (rs.next())
temp = rs.getInt(1);
else
temp = 0;
pss = "select * from cpu where price = ?";
}
else if (cpu == 5) {
float cpf = 0;
float cpt = 0;
pss = "select * from cpu";
ps =
c.prepareStatement(
pss,
ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_UPDATABLE);
rs = ps.executeQuery();
while (rs.next()) {
cpt = (float)rs.getInt(5) / rs.getInt(6);
if (cpt > cpf) {
cpf = cpt;
temp = rs.getInt(1);
}
}
pss = "select * from cpu where id = ?";
}
else
temp = 0;
if (temp != 0) {
ps = c.prepareStatement(pss);
ps.setInt(1, temp);
rs = ps.executeQuery();
if (rs.next()) {
for (int i = 0; i < 7; i++) {
result[0][i] = rs.getString(i + 1);
if (i == 0) {
cpuT = rs.getInt(2);
}
}
}
else {
for (int i = 0; i < 6; i++)
result[0][i] = "";
}
}
else {
for (int i = 0; i < 7; i++)
result[0][i] = "";
}
rs.close();
ps.close();
}
catch (Exception e) {
e.printStackTrace();
}
}
/* 根据要求选择主板 */
private void selectMainboard(int mainboard) {
int temp = 0;
try {
if (mainboard == 1) {
pss = "select min(price) from mainboard where type = ?";
ps = c.prepareStatement(pss);
ps.setInt(1, cpuT);
rs = ps.executeQuery();
if (rs.next())
temp = rs.getInt(1);
else
temp = 0;
pss = "select * from mainboard where price = ? and type = ?";
}
else if (mainboard == 2) {
float cpf = 0;
float cpt = 0;
pss = "select * from mainboard where type = ?";
ps =
c.prepareStatement(
pss,
ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_UPDATABLE);
ps.setInt(1, cpuT);
rs = ps.executeQuery();
while (rs.next()) {
cpt = (float)rs.getInt(5) / rs.getInt(6);
if (cpt > cpf) {
cpf = cpt;
temp = rs.getInt(1);
}
}
pss = "select * from mainboard where id = ? and type = ?";
}
else
temp = 0;
if (temp != 0) {
ps = c.prepareStatement(pss);
ps.setInt(1, temp);
ps.setInt(2, cpuT);
rs = ps.executeQuery();
if (rs.next()) {
for (int i = 0; i < 7; i++)
result[1][i] = rs.getString(i + 1);
}
else {
for (int i = 0; i < 7; i++)
result[1][i] = "";
}
}
rs.close();
ps.close();
}
catch (Exception e) {
e.printStackTrace();
}
}
/* 根据要求选择硬盘 */
private void selectHarddisk(int harddisk) {
int temp = 0;
try {
if (harddisk == 1) {
pss = "select min(price) from harddisk";
ps = c.prepareStatement(pss);
rs = ps.executeQuery();
if (rs.next()){
temp = rs.getInt(1);
}
else
temp = 0;
pss = "select * from harddisk where price = ?";
}
else if (harddisk == 2) {
pss = "select max(volumn) from harddisk";
ps = c.prepareStatement(pss);
rs = ps.executeQuery();
if (rs.next())
temp = rs.getInt(1);
else
temp = 0;
pss = "select * from harddisk where volumn = ?";
}
else if (harddisk == 3) {
float cpf = 0;
float cpt = 0;
pss = "select * from harddisk";
ps =
c.prepareStatement(
pss,
ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_UPDATABLE);
rs = ps.executeQuery();
while (rs.next()) {
cpt = (float)rs.getInt(5) / rs.getInt(6);
if (cpt > cpf) {
cpf = cpt;
temp = rs.getInt(1);
}
}
pss = "select * from harddisk where id = ?";
}
else
temp = 0;
if (temp != 0) {
ps = c.prepareStatement(pss);
ps.setInt(1, temp);
rs = ps.executeQuery();
if (rs.next()) {
for (int i = 0; i < 7; i++)
result[2][i] = rs.getString(i + 1);
}
else {
for (int i = 0; i < 7; i++)
result[2][i] = "";
}
}
rs.close();
ps.close();
}
catch (Exception e) {
e.printStackTrace();
}
}
/* 根据要求选择内存 */
private void selectMemory(int memory) {
int temp = 0;
try {
if (memory == 1) {
pss = "select min(price) from memory";
ps = c.prepareStatement(pss);
rs = ps.executeQuery();
if (rs.next())
temp = rs.getInt(1);
else
temp = 0;
pss = "select * from memory where price = ?";
}
else if (memory == 2) {
pss = "select max(speed) from memory";
ps = c.prepareStatement(pss);
rs = ps.executeQuery();
if (rs.next())
temp = rs.getInt(1);
else
temp = 0;
pss = "select * from memory where speed = ?";
}
else if (memory == 3) {
float cpf = 0;
float cpt = 0;
pss = "select * from memory";
ps =
c.prepareStatement(
pss,
ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_UPDATABLE);
rs = ps.executeQuery();
while (rs.next()) {
cpt = (float)rs.getInt(5) / rs.getInt(6);
if (cpt > cpf) {
cpf = cpt;
temp = rs.getInt(1);
}
}
pss = "select * from memory where id = ?";
}
else
temp = 0;
if (temp != 0) {
ps = c.prepareStatement(pss);
ps.setInt(1, temp);
rs = ps.executeQuery();
if (rs.next()) {
for (int i = 0; i < 7; i++)
result[3][i] = rs.getString(i + 1);
}
else {
for (int i = 0; i < 7; i++)
result[3][i] = "";
}
}
rs.close();
ps.close();
}
catch (Exception e) {
e.printStackTrace();
}
}
/* 根据要求选择显卡 */
private void selectDisplay(int display) {
int temp = 0;
try {
if (display == 1) {
pss = "select min(price) from display";
ps = c.prepareStatement(pss);
rs = ps.executeQuery();
if (rs.next())
temp = rs.getInt(1);
else
temp = 0;
pss = "select * from display where price = ?";
}
else if (display == 2) {
pss = "select max(volumn) from display";
ps = c.prepareStatement(pss);
rs = ps.executeQuery();
if (rs.next())
temp = rs.getInt(1);
else
temp = 0;
pss = "select * from display where volumn = ?";
}
else if (display == 3) {
float cpf = 0;
float cpt = 0;
pss = "select * from display";
ps =
c.prepareStatement(
pss,
ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_UPDATABLE);
rs = ps.executeQuery();
while (rs.next()) {
cpt = (float)rs.getInt(5) / rs.getInt(6);
if (cpt > cpf) {
cpf = cpt;
temp = rs.getInt(1);
}
}
pss = "select * from display where id = ?";
}
else
temp = 0;
if (temp != 0) {
ps = c.prepareStatement(pss);
ps.setInt(1, temp);
rs = ps.executeQuery();
if (rs.next()) {
for (int i = 0; i < 7; i++)
result[4][i] = rs.getString(i + 1);
}
else {
for (int i = 0; i < 7; i++)
result[4][i] = "";
}
}
rs.close();
ps.close();
}
catch (Exception e) {
e.printStackTrace();
}
}
/* 根据要求选择显示器 */
private void selectMonitor(int monitor) {
int temp = 0;
try {
if (monitor == 1) {
pss = "select min(price) from monitor";
ps = c.prepareStatement(pss);
rs = ps.executeQuery();
if (rs.next())
temp = rs.getInt(1);
else
temp = 0;
pss = "select * from monitor where price = ?";
}
else if (monitor == 2) {
pss = "select max(size) from monitor";
ps = c.prepareStatement(pss);
rs = ps.executeQuery();
if (rs.next())
temp = rs.getInt(1);
else
temp = 0;
pss = "select * from monitor where size = ?";
}
else if (monitor == 3) {
float cpf = 0;
float cpt = 0;
pss = "select * from monitor";
ps =
c.prepareStatement(
pss,
ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_UPDATABLE);
rs = ps.executeQuery();
while (rs.next()) {
cpt = (float)rs.getInt(5) / rs.getInt(6);
if (cpt > cpf) {
cpf = cpt;
temp = rs.getInt(1);
}
}
pss = "select * from monitor where id = ?";
}
else
temp = 0;
if (temp != 0) {
ps = c.prepareStatement(pss);
ps.setInt(1, temp);
rs = ps.executeQuery();
if (rs.next()) {
for (int i = 0; i < 7; i++)
result[5][i] = rs.getString(i + 1);
}
else {
for (int i = 0; i < 7; i++)
result[5][i] = "";
}
}
rs.close();
ps.close();
}
catch (Exception e) {
e.printStackTrace();
}
}
private String encoding(String input) {
try {
return new String(input.getBytes("ISO-8859-1"), "GB2312");
}
catch (UnsupportedEncodingException uee) {
return input;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -