请教高手,为什么我在公有变量定义连接jdbc数据库的各种对象就会出问题呢?就在我+!!的地方,而且错误还出现在main函数中。
我的想法是定义公有jdbc数据库对象。小弟我先谢谢了~~跪求解决办法import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.sql.*;
import javax.swing.event.*;
public class UserAdd {
JFrame frame; //定义窗体组件
JPanel panel;
JLabel label_Name;
JLabel label_Password;
JLabel label_Password_Ag;
JLabel Login_Select;
JTextField textfield_Name;
JPasswordField textPasswordField;
JPasswordField textPasswordField_Ag;
JComboBox combobox_Select;
JButton button_Add;
JButton button_Exit;
String[] names={"操作员","系统管理员"};
int a=1; //默认操作员权限设置
/*!!!!!!!!!!!!!!!String url = "jdbc:odbc:HouseManage"; //定义JDBC数据库中各种连接对象
ResultSet result;
PreparedStatement pstmt1,pstmt2;
Statement stmt;
Connection con;
String sqlStr, ManagesqlStr,strSql;
String sti1 = textfield_Name.getText().trim();
String sti2 = textPasswordField.getText().trim();
String sti3 = textPasswordField_Ag.getText().trim();
int resultTorF, ManageresultTorF;*/
public UserAdd() {
frame.setDefaultLookAndFeelDecorated(true); //添加皮肤
frame=new JFrame("添加用户"); //实例化窗体组件
panel=new JPanel();
label_Name=new JLabel("用户名");
label_Password=new JLabel("密码");
label_Password_Ag=new JLabel("确认密码");
Login_Select=new JLabel("登陆权限");
textfield_Name=new JTextField("");
textPasswordField=new JPasswordField("");
textPasswordField_Ag=new JPasswordField("");
combobox_Select=new JComboBox(names);
button_Add=new JButton("添加");
button_Exit=new JButton("取消"); button_Exit.addActionListener(new Mylistener()); //注册监听器
button_Add.addActionListener(new Mylistener());
combobox_Select.addItemListener(new MyJComboBoxListener()); panel.setLayout(null); //添加窗体组件
label_Name.setBounds(new Rectangle(19, 18, 79, 29));
label_Password.setBounds(new Rectangle(19, 60, 79, 29));
label_Password_Ag.setBounds(new Rectangle(19, 106, 79, 29));
Login_Select.setBounds(new Rectangle(19, 155, 79, 29));
textfield_Name.setBounds(new Rectangle(123, 18, 205, 32));
textPasswordField.setBounds(new Rectangle(123, 60, 205, 32));
textPasswordField_Ag.setBounds(new Rectangle(123, 106, 205, 32));
combobox_Select.setBounds(new Rectangle(123, 155, 205, 32));
button_Add.setBounds(new Rectangle(79, 219, 80, 31));
button_Exit.setBounds(new Rectangle(205, 219, 80, 31));
panel.add(label_Name);
panel.add(label_Password);
panel.add(label_Password_Ag);
panel.add(Login_Select);
panel.add(textfield_Name);
panel.add(textPasswordField);
panel.add(textPasswordField_Ag);
panel.add(combobox_Select);
panel.add(button_Add);
panel.add(button_Exit); frame.getContentPane().add(panel); //顶级窗体布局
frame.setSize(380,300);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
frame.setResizable(false);
} public static void main(String[] args) { //主函数
new UserAdd();
}
}
我的想法是定义公有jdbc数据库对象。小弟我先谢谢了~~跪求解决办法import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.sql.*;
import javax.swing.event.*;
public class UserAdd {
JFrame frame; //定义窗体组件
JPanel panel;
JLabel label_Name;
JLabel label_Password;
JLabel label_Password_Ag;
JLabel Login_Select;
JTextField textfield_Name;
JPasswordField textPasswordField;
JPasswordField textPasswordField_Ag;
JComboBox combobox_Select;
JButton button_Add;
JButton button_Exit;
String[] names={"操作员","系统管理员"};
int a=1; //默认操作员权限设置
/*!!!!!!!!!!!!!!!String url = "jdbc:odbc:HouseManage"; //定义JDBC数据库中各种连接对象
ResultSet result;
PreparedStatement pstmt1,pstmt2;
Statement stmt;
Connection con;
String sqlStr, ManagesqlStr,strSql;
String sti1 = textfield_Name.getText().trim();
String sti2 = textPasswordField.getText().trim();
String sti3 = textPasswordField_Ag.getText().trim();
int resultTorF, ManageresultTorF;*/
public UserAdd() {
frame.setDefaultLookAndFeelDecorated(true); //添加皮肤
frame=new JFrame("添加用户"); //实例化窗体组件
panel=new JPanel();
label_Name=new JLabel("用户名");
label_Password=new JLabel("密码");
label_Password_Ag=new JLabel("确认密码");
Login_Select=new JLabel("登陆权限");
textfield_Name=new JTextField("");
textPasswordField=new JPasswordField("");
textPasswordField_Ag=new JPasswordField("");
combobox_Select=new JComboBox(names);
button_Add=new JButton("添加");
button_Exit=new JButton("取消"); button_Exit.addActionListener(new Mylistener()); //注册监听器
button_Add.addActionListener(new Mylistener());
combobox_Select.addItemListener(new MyJComboBoxListener()); panel.setLayout(null); //添加窗体组件
label_Name.setBounds(new Rectangle(19, 18, 79, 29));
label_Password.setBounds(new Rectangle(19, 60, 79, 29));
label_Password_Ag.setBounds(new Rectangle(19, 106, 79, 29));
Login_Select.setBounds(new Rectangle(19, 155, 79, 29));
textfield_Name.setBounds(new Rectangle(123, 18, 205, 32));
textPasswordField.setBounds(new Rectangle(123, 60, 205, 32));
textPasswordField_Ag.setBounds(new Rectangle(123, 106, 205, 32));
combobox_Select.setBounds(new Rectangle(123, 155, 205, 32));
button_Add.setBounds(new Rectangle(79, 219, 80, 31));
button_Exit.setBounds(new Rectangle(205, 219, 80, 31));
panel.add(label_Name);
panel.add(label_Password);
panel.add(label_Password_Ag);
panel.add(Login_Select);
panel.add(textfield_Name);
panel.add(textPasswordField);
panel.add(textPasswordField_Ag);
panel.add(combobox_Select);
panel.add(button_Add);
panel.add(button_Exit); frame.getContentPane().add(panel); //顶级窗体布局
frame.setSize(380,300);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
frame.setResizable(false);
} public static void main(String[] args) { //主函数
new UserAdd();
}
}
解决方案 »
- 写代码遇到了Exception的问题,向高手求救!
- 关于异常处理的问题
- 启动线程后导致JFrame窗体卡死
- 菜鸟学java之求高手帮助
- 关于数组的问题
- JLabel如何堅行顯示!!
- EditPlus配置问题,有关package
- int类型的数组怎么样才能使用Comparable这个interface?
- JBuilder7为什么会出现编辑锁住的现象?
- 为什么中文字符串在GridControl中显示不出来,可是在其他控件,如TextField中就是正常的?
- 新手求答:在Red Hat Linux 9.0下如何使用java?
- ProgressMonitorInputStream的进度条跟实际进度不同步!!!
at java毕业设计.UserAdd.<init>(UserAdd.java:40)
at java毕业设计.UserAdd.main(UserAdd.java:219)
这是那个错误,小弟新手,希望大家多多指点
空指针异常,你的数据库没有连接上。
我把我以前写的发给你看看
-------------------------------------------------------------------------------
package plane.database;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
/**
*
* @author Administrator
*@date 2006.04.16
*/
public class DataBase {
/**
* the con is database's interface
*/
private Connection con; /**
* empty mothed DataBase()
*
*/
public DataBase() {
super();
formatClass();
} /**
*
* @return url
*/
//JDBC/ODBC数据库驱动和数据库的名字plane_system.mdb
public String URl() {
String url = "jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=plane_system.mdb";
return url;
} /**
*
* @return database's username
*/
public String userName() {
String username = "";
return username;
} /**
*
* @return database's password
*/
public String passWord() {
String password = "";
return password;
} /**
*
* @return database's interface
* @throws SQLException
*/
//设置数据库连接
public Connection connection() throws SQLException {
con = DriverManager.getConnection(URl(), userName(), passWord());
return con;
} /**
* the mothed is JDBC/ODBC
*
*/
//装载数据库驱动
public void formatClass() {
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
} catch (java.lang.ClassNotFoundException e) {
System.err.println("connect():" + e.getMessage());
System.err.println("装载 JDBC/ODBC 驱动程序失败。");
e.printStackTrace();
System.exit(1); // 停止项目
}
}
}ps:这里我连接的是access数据库,这个类专门用来连接数据库的,其他类调用这个类里的connection() 方法就行了,当然得先定义一个Connection的对象,这样就不用在每个类里重复的写数据库连接了。本人菜鸟呢,不对的地方还望老鸟们指出,嘿嘿。。
import java.sql.*;
public class OdbcTest {
public static void main(String[] args) {
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection conn = DriverManager.getConnection("jdbc:odbc:bookTest");
Statement stmt=conn.createStatement();
ResultSet rs=stmt.executeQuery("select * from bookInfo");
while(rs.next())
{
System.out.print(rs.getString(1)+" "+rs.getString(2)+" "
+rs.getFloat(3)+" "+rs.getString(4));
}
rs.close();
stmt.close(); }
catch(Exception e)
{
e.printStackTrace();
} }
}
String sti1 = textfield_Name.getText().trim();
String sti2 = textPasswordField.getText().trim();
String sti3 = textPasswordField_Ag.getText().trim();
这样也行?????????
textfield_Name.getText()是null,你trim啥?