mysql-下面的Java代码有问题吗
程序员文章站
2022-05-18 23:52:53
...
mysqljava数据库
public class Regist extends JFrame implements ActionListener {
/** * */private static final long serialVersionUID = 1L;private JPanel contentPane;private JTextField text_confirm;private JTextField text_usr;private JTextField text_pwd;private JButton btn_save,btn_cancel;private JLabel user,passwd,confirm;private Connection conn;private Statement statement;/** * Launch the application. */public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { public void run() { try { Regist frame = new Regist(); frame.setVisible(true); } catch (Exception e) { e.printStackTrace(); } } });}/** * Create the frame. */public Regist() { super("注册新用户"); this.setDefaultCloseOperation(EXIT_ON_CLOSE); this.setVisible(true); setBounds(100, 100, 450, 300); contentPane = new JPanel(); contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); setContentPane(contentPane); contentPane.setLayout(null); user = new JLabel("用 户 名"); user.setBounds(57, 36, 54, 15); contentPane.add(user); passwd = new JLabel("密 码"); passwd.setBounds(57, 76, 54, 15); contentPane.add(passwd); confirm = new JLabel("确认密码"); confirm.setBounds(57, 121, 54, 15); contentPane.add(confirm); text_usr = new JTextField(); text_usr.setBounds(141, 33, 155, 21); contentPane.add(text_usr); text_usr.setColumns(10); text_pwd = new JTextField(); text_pwd.setBounds(141, 73, 155, 21); contentPane.add(text_pwd); text_pwd.setColumns(10); text_confirm = new JTextField(); text_confirm.setBounds(141, 118, 155, 21); contentPane.add(text_confirm); text_confirm.setColumns(10); btn_save = new JButton("确定"); btn_save.setBounds(79, 171, 93, 23); contentPane.add(btn_save); this.btn_save.addActionListener(this); btn_cancel = new JButton("取消"); btn_cancel.setBounds(256, 171, 93, 23); contentPane.add(btn_cancel); this.btn_cancel.addActionListener(this);}public Connection getConnection() throws SQLException { try { Class.forName("com.mysql.jdbc.Driver"); } catch (ClassNotFoundException e) { e.printStackTrace(); } Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/sign","root","514519"); return conn;}@Overridepublic void actionPerformed(ActionEvent e) { if(e.getSource()==btn_save){ if(text_usr.getText().isEmpty()&&text_pwd.getText().isEmpty()) JOptionPane.showMessageDialog(this, "请填写用户名和密码"); String sql="insert into signs values ('"+text_usr.getText()+","+text_pwd.getText()+"')"; try { conn=getConnection(); } catch (SQLException e1) { e1.printStackTrace(); } try { statement=conn.createStatement(); } catch (SQLException e1) { e1.printStackTrace(); } try { statement.executeUpdate(sql); } catch (SQLException e1) { e1.printStackTrace(); } try { statement.close(); } catch (SQLException e2) { e2.printStackTrace(); } try { conn.close(); } catch (SQLException e1) { e1.printStackTrace(); } } if(e.getSource()==btn_cancel){ }}
}
运行的时候说Column count doesn't match value count at row 1
我数据库中的user 和password都是varchar类型
还有就是这行代码中的引号问题 String sql="insert into signs values ('"+text_usr.getText()+","+text_pwd.getText()+"')"; 新手有点迷糊 求帮助