我运行Main页面,运行失败,提示了六个错误,但是六个错误里没有标红,所以我不清楚是哪一个部分出现了错误,求帮助,谢谢。
package utility;
import java.sql.*;
public class DBHelper {
//设置一个整体程序只能唯一获取到单列数据库连接对象
private static Connection conn =null ;
public static Connection getConnection() {
//将驱动类加载到内容当中
try {
Class.forName("com.mysql.jdbc.Driver");
//通过驱动管理器类获取一个数据库连接对象
if(conn==null)
conn = DriverManager.getConnection("java:mysql://192.168.1.4;33062_test","root","123456");
return conn;
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return conn;
}
}
import java.sql.*;
import java.util.ArrayList;
import Model.User;
import utility.DBHelper;
public class UserDao {
private Connection conn;//数据库连接对象
String sql ;//定义SQL语句
PreparedStatement ps;//预处理表达式对象
ResultSet rs;//查询语句执行后返回的结果集合
public UserDao() {
super();
// TODO Auto-generated constructor stub
//初始化数据库连接对象
conn = DBHelper.getConnection();
}
//定义方法,执行SQL语句,并处理数据库返回的内容
public ArrayList getAll() {
//定义一个无条件查询的SQL语句
sql = "delect * from tb_user ";
//初始化一个容器类数组列表
ArrayList list = new ArrayList();
//产生一个可以执行SQL语句预处理表达式对象
try {
ps = conn.prepareStatement(sql);
//让预处理表达式对象执行查询语句
rs = ps.executeQuery();
//逐行逐字段的拆开结果中的内容
while (rs.next()) {
//拆分结果集中的某一行
int id = rs.getInt("id");
String number = rs.getString("number");
String category = rs.getString("category");
String price = rs.getString("price");
String chandi = rs.getString("chandi");
//将一行数据库的多个字段的值打包放入一个对象当中
User u = new User(id,number,category,price,chandi);
//用一个容器将每次产生的对象保存起来
list.add(u);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return list;
}
//定义插入语句
public boolean insert(User u) {
sql = "insert into tb_user(id,number,category,price,chandi) valuse(?,?,?,?,?)";
try {
ps = conn.prepareStatement(sql);
ps.setInt(1, u.getId());
ps.setString(2, u.getNumber());
ps.setString(2, u.getCategory());
ps.setString(2, u.getPrice());
ps.setString(2, u.getChandi());
//执行插入语句
int i = ps.executeUpdate();
if(i>0) return true;
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return false;
}
//定义删除语句
public boolean delete(int id) {
sql = "delect from tb_user where id=?";
try {
ps = conn.prepareStatement(sql);
ps.setInt(1,id);
int i = ps.executeUpdate();
if(i>0) return false;
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return false;
}
//定义一个修改语句
public boolean update(User u) {
sql = "update tb-user set number=?,category=?,price=?,chandi=? where id=?";
try {
ps = conn.prepareStatement(sql);
ps.setString(1, u.getNumber());
ps.setString(1, u.getCategory());
ps.setString(1, u.getPrice());
ps.setString(1, u.getChandi());
int i = ps.executeUpdate();
if(i>0) return true;
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return false;
}
//定义按条件查询的SQL语句
public ArrayList getUsers(String column,String value) {
sql = "selsect * from tb_user where "+column+" = "+value;
ArrayList list = new ArrayList();
try {
ps = conn.prepareStatement(sql);
rs = ps.executeQuery();
//逐行逐字段的拆开结果中的内容
while (rs.next()) {
//拆分结果集中的某一行
int id = rs.getInt("id");
String number = rs.getString("number");
String category = rs.getString("category");
String price = rs.getString("price");
String chandi = rs.getString("chandi");
//将一行数据库的多个字段的值打包放入一个对象当中
User u = new User(id,number,category,price,chandi);
//用一个容器将每次产生的对象保存起来
list.add(u);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return list;
}
//获取该表最大的id值
public int getMaxId() {
sql = "select max(id) as id from tb_user";
//获取一个可以执行SQL语句的对象
try {
ps = conn.prepareStatement(sql);
//执行SQL语句
rs = ps.executeQuery();
if(rs.next()) {
return rs.getInt("id");
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return 0;
}
//根据用户名和密码判断登录是否成功
public boolean login(String username,String password) {
sql = "select * from tb_user where username=? and password=?";
try {
ps = conn.prepareStatement(sql);
//设置问号里面的参数
ps.setString(1, username);
ps.setString(2, password);
rs = ps.executeQuery();
if(rs.next())return true;
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return false;
}
}
package service;
import java.util.ArrayList;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
import Dao.UserDao;
import Model.User;
public class UserService {
private UserDao ud;
public UserService() {
super();
// TODO Auto-generated constructor stub
ud = new UserDao();
}
//将数据库的所有记录都写入一个JTanle表格控件中
public boolean fillAll(JTable table) {
//返回数据库当中用户表的所有记录
ArrayList list = ud.getAll();
//准备表格的表头数据
String[] head = {"id","number","category","price","chandi"};
//准备表格的内容,一个二维数组
String[][] content=new String [list.size()][5];
for(int i=0;i<list.size();i++) {
//将数组列表中的数据记录对象取出来
User u = (User)list.get(i);
//拆开字段
int id = u.getId();
String number = u.getNumber();
String category = u.getCategory();
String price = u.getPrice();
String chandi = u.getChandi();
content[i][0] = id+"";
content[i][1] =number;
content[i][2] =category;
content[i][3] =price;
content[i][4] =chandi;
}
//创建数据模型对象,准备植入到表格中
DefaultTableModel model = new DefaultTableModel(content,head);
//将模型填入表格
table.setModel(model);
return true;
}
//返回部分记录
//将数据库的所有记录都写入一个JTanle表格控件中
public boolean fillSome(JTable table,String column,String value) {
//返回数据库当中用户表的所有记录
ArrayList list = ud.getUsers(column,value);
//准备表格的表头数据
String[] head = {"id","number","category","price","chandi"};
//准备表格的内容,一个二维数组
String[][] content=new String [list.size()][5];
for(int i=0;i<list.size();i++) {
//将数组列表中的数据记录对象取出来
User u = (User)list.get(i);
//拆开字段
int id = u.getId();
String number = u.getNumber();
String category = u.getCategory();
String price = u.getPrice();
String chandi = u.getChandi();
content[i][0] = id+"";
content[i][1] =number;
content[i][2] =category;
content[i][3] =price;
content[i][4] =chandi;
}
//创建数据模型对象,准备植入到表格中
DefaultTableModel model = new DefaultTableModel(content,head);
//将模型填入表格
table.setModel(model);
return true;
}
}
package page;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JInternalFrame;
import javax.swing.JTable;
import javax.swing.JScrollPane;
import javax.swing.table.DefaultTableModel;
import Dao.UserDao;
import Model.User;
import service.UserService;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.ActionEvent;
public class AddPage {
private JInternalFrame frame;
private JTable table;
private JLabel lblNewLabel;
private JTextField id;
private JLabel lblNewLabel_1;
private JTextField number;
private JTextField category;
private JTextField chandi;
private JTextField price;
private JLabel label;
private JLabel label_1;
private JLabel label_2;
public JInternalFrame getFrame() {
return frame;
}
public void setFrame(JInternalFrame frame) {
this.frame = frame;
}
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
AddPage window = new AddPage();
window.frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the application.
*/
public AddPage() {
initialize();
}
/**
* Initialize the contents of the frame.
*/
private void initialize() {
frame = new JInternalFrame();
frame.setTitle("\u6DFB\u52A0\u9875\u9762");
frame.setBounds(0, 0, 707, 430);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().setLayout(null);
JScrollPane scrollPane = new JScrollPane();
scrollPane.setBounds(10, 10, 596, 96);
frame.getContentPane().add(scrollPane);
table = new JTable();
table.setModel(new DefaultTableModel(
new Object[][] {
{null, null, null, null, null},
{null, null, null, null, null},
},
new String[] {
"id", "\u4EA7\u54C1\u7F16\u53F7", "\u4EA7\u54C1\u7C7B\u522B", "\u4EA7\u54C1\u4EF7\u683C", "\u4EA7\u5730"
}
));
//调用数据服务层类UserService往表格填充数据
new UserService().fillAll(table);
scrollPane.setViewportView(table);
lblNewLabel = new JLabel("id:");
lblNewLabel.setBounds(10, 123, 50, 24);
frame.getContentPane().add(lblNewLabel);
id = new JTextField();
id.setBounds(70, 125, 126, 22);
frame.getContentPane().add(id);
id.setColumns(10);
lblNewLabel_1 = new JLabel("\u4EA7\u54C1\u7F16\u53F7\uFF1A");
lblNewLabel_1.setBounds(10, 162, 60, 24);
frame.getContentPane().add(lblNewLabel_1);
number = new JTextField();
number.setBounds(70, 164, 126, 22);
number.setColumns(10);
frame.getContentPane().add(number);
category = new JTextField();
category.setBounds(70, 206, 126, 22);
category.setColumns(10);
frame.getContentPane().add(category);
chandi = new JTextField();
chandi.setBounds(352, 164, 126, 22);
chandi.setColumns(10);
frame.getContentPane().add(chandi);
price = new JTextField();
price.setBounds(352, 125, 126, 22);
price.setColumns(10);
frame.getContentPane().add(price);
label = new JLabel("\u4EA7\u54C1\u7C7B\u522B\uFF1A");
label.setBounds(10, 206, 60, 24);
frame.getContentPane().add(label);
label_1 = new JLabel("\u4EA7\u54C1\u4EF7\u683C\uFF1A");
label_1.setBounds(295, 123, 60, 24);
frame.getContentPane().add(label_1);
label_2 = new JLabel("\u4EA7\u5730\uFF1A");
label_2.setBounds(295, 162, 60, 24);
frame.getContentPane().add(label_2);
JButton tianjia = new JButton("\u6DFB\u52A0");
tianjia.addMouseListener(new MouseAdapter() {
public void actionPerformed(ActionEvent arg0) {
//获取页面的五个值
int id_v = Integer.parseInt(id.getText());
String number_v = number.getText();
String category_v = category.getText();
String price_v = price.getText();
String chandi_v = chandi.getText();
//将五个部分拼接成为一个模型层的类对象
User u = new User(id_v,number_v,category_v,price_v,chandi_v);
//调用Dao层的insert方法将数据写入数据库
UserDao ud = new UserDao();
ud.insert(u);
//再次调用服务层的fillAll()方法
UserService us = new UserService();
us.fillAll(table);
}
});
tianjia.setBounds(379, 205, 82, 23);
frame.getContentPane().add(tianjia);
//将窗口设置为可见
frame.setVisible(true);
}
}
package page;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JMenuBar;
import javax.swing.JMenu;
import javax.swing.JMenuItem;
import javax.swing.JDesktopPane;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.BorderLayout;
import java.awt.Color;
import javax.swing.JTable;
import java.awt.SystemColor;
public class MainPage {
private JFrame frame;
private JMenuBar menuBar;
private JTable table;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
MainPage window = new MainPage();
window.frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the application.
*/
public MainPage() {
initialize();
frame.setVisible(true);
}
/**
* Initialize the contents of the frame.
*/
private void initialize() {
frame = new JFrame();
frame.setTitle("\u4E3B\u9875\u9762");
frame.setBounds(100, 100, 740, 500);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().setLayout(null);
menuBar = new JMenuBar();
menuBar.setBackground(new Color(240, 240, 240));
menuBar.setBounds(0, 0, 714, 437);
frame.getContentPane().add(menuBar);
JMenu mnNewMenu = new JMenu("\u4EA7\u54C1\u7BA1\u7406");
menuBar.add(mnNewMenu);
JMenuItem mntmNewMenuItem = new JMenuItem("\u6DFB\u52A0\u7528\u6237");
mntmNewMenuItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
//获取一个添加页面的对象
AddPage add = new AddPage();
//将桌面存在的内容都清理一遍
menuBar.removeAll();
//将页面加入到桌面面板
menuBar.add(add.getFrame());
}
});
mnNewMenu.add(mntmNewMenuItem);
JMenuItem mntmNewMenuItem_1 = new JMenuItem("\u67E5\u8BE2\u7528\u6237");
mntmNewMenuItem_1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
SearchPage sp = new SearchPage();
//运行一次可以同时将添加页面和查询页面显示出来,新加页面之前把原有桌面
menuBar.removeAll();
//将窗口成员添加到menuBar 里面
menuBar.add(sp.getFrame());
}
});
mnNewMenu.add(mntmNewMenuItem_1);
JMenuItem mntmNewMenuItem_2 = new JMenuItem("\u4FEE\u6539\u7528\u6237");
mntmNewMenuItem_2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
EditPage sp = new EditPage();
menuBar.removeAll();
menuBar.add(sp.getFrame());
}
});
mnNewMenu.add(mntmNewMenuItem_2);
JMenuItem mntmNewMenuItem_3 = new JMenuItem("\u5220\u9664\u7528\u6237");
mntmNewMenuItem_3.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
DeleteUserPage sp = new DeleteUserPage();
menuBar.removeAll();
//将窗口成员添加到menuBar 里面
menuBar.add(sp.getFrame());
}
});
mnNewMenu.add(mntmNewMenuItem_3);
JDesktopPane desktopPane = new JDesktopPane();
desktopPane.setBackground(Color.LIGHT_GRAY);
desktopPane.setBounds(10, 52, 707, 400);
frame.getContentPane().add(desktopPane);
desktopPane.setLayout(null);
table = new JTable();
table.setBounds(0, 0, 1, 1);
frame.getContentPane().add(table);
}
}
以上是有错误的全部代码,麻烦了,谢谢。