mysql和java连接
问题描述:
我想连接java与mysql数据库,但我得到一个空指针异常。mysql和java连接
注:我之前用这个方法,效果不错
这是代码:
public void OpenConnection() throws SQLException{
try {
try {
Class.forName("com.mysql.jdbc.Driver");
try {
con = (Connection) DriverManager.getConnection("jdbc:mysql://localhost:3306/hema?"
+ "user=root&password=hima27890");
} catch (SQLException ex) {
System.out.print("Connection Not Found");
}
} catch (ClassNotFoundException ex) {
System.out.print("Not found Class");
}
} finally {
System.out.close();
}
}
,这是为了在数据库返回一些数据的方法:
public String[] GetData(String website) throws ClassNotFoundException, SQLException{
// System.out.println("\nGet data method");
// System.out.println("connection will start now");
OpenConnection();
System.out.println("connection works");
String queryget="SELECT * FROM hema.passwords WHERE website='"+website+"'";
Statement stm=(Statement) con.createStatement();
ResultSet rs;
rs = stm.executeQuery(queryget);
if(rs.next()){
System.out.println("if works");
arr[0]=rs.getString("email");
arr[1]=rs.getString("username");
arr[2]=rs.getString("password");
}
else{
System.out.println("The website doesn't exist");
}
System.out.println("method done");
return arr;
}
}
我把一些System.out.print知道错误在哪里,它们都是分叉的,但不是最后一个“方法完成”。
,这是在调用的最后一个方法的JForm的代码:
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
try {
String Website = jTextField1.getText();
System.out.println("Website is "+Website);
Model model=new Model();
String arr2[]=model.GetData(Website);
System.out.println("App");
EmailText.setText(arr2[0]);
UserText.setText(arr2[1]);
PasswordText.setText(arr2[2]);
} catch (ClassNotFoundException ex) {
Logger.getLogger(Passwords.class.getName()).log(Level.SEVERE, null, ex);
} catch (SQLException ex) {
Logger.getLogger(Passwords.class.getName()).log(Level.SEVERE, null, ex);
}
}
堆栈跟踪:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at Model.Model.GetData(Model.java:68)
at View.Passwords.jButton1ActionPerformed(Passwords.java:161)
at View.Passwords.access$200(Passwords.java:15)
at View.Passwords$3.actionPerformed(Passwords.java:64)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2346)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6527)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
at java.awt.Component.processEvent(Component.java:6292)
at java.awt.Container.processEvent(Container.java:2234)
at java.awt.Component.dispatchEventImpl(Component.java:4883)
at java.awt.Container.dispatchEventImpl(Container.java:2292)
at java.awt.Component.dispatchEvent(Component.java:4705)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4898)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4533)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4462)
at java.awt.Container.dispatchEventImpl(Container.java:2278)
at java.awt.Window.dispatchEventImpl(Window.java:2739)
at java.awt.Component.dispatchEvent(Component.java:4705)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:746)
at java.awt.EventQueue.access$400(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:697)
at java.awt.EventQueue$3.run(EventQueue.java:691)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.awt.EventQueue$4.run(EventQueue.java:719)
at java.awt.EventQueue$4.run(EventQueue.java:717)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:716)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
生成成功(总时间:21秒),
答
好的,我知道问题出在哪里 它是在代码的开头声明array
字符串,所以它没有改变,当我使用d if语句,所以我用数组ArrayList<String>
注:我之前用这个方法,效果不错 – 2014-10-11 03:53:58
可能重复:http://*.com/questions/2591505/java-lang-classnotfoundexception-com-mysql-jdbc -driver – Nathan 2014-10-11 03:59:46
你有没有添加mysql jar到你的项目? – 2014-10-11 04:18:14