jdbc连接mysql数据库的问题 高悬赏

以下是程序代码可是没有任何异常报错去查询数据库就是没有东西表能自动创建无论表里有什么数据程序就给我清空成null而不是插入我想要的东西不知道怎么了!只要解决悬赏再加还有图... 以下是程序代码 可是没有任何异常 报错 去查询数据库就是没有东西 表能自动创建 无论表里有什么数据 程序就给我清空成null而不是插入我想要的东西 不知道怎么了!只要解决 悬赏再加还有图package com.czf;import java.sql.*;public class addlist { com.mysql.jdbc.Driver a; String sqlAddress="jdbc:mysql://localhost:3306/ourusers?useUnicode=true&characterEncoding=utf-8&useSSL=false"; String sqlname="root"; String sqlpass="178031"; Connection con=null; Statement stmt=null; ResultSet rs=null; public boolean putNamePass(String name,String pass){ boolean ton=true; try { a=new com.mysql.jdbc.Driver(); } catch (SQLException e1) { System.out.println(e1.getMessage()); } try { System.out.println(name+" "+pass); con=DriverManager.getConnection(sqlAddress,sqlname,sqlpass); stmt=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE); stmt.executeUpdate("DROP TABLE IF EXISTS ourusers"); System.out.println("DROP成功"); stmt.executeUpdate("CREATE TABLE ourusers(username varchar(100),userpass varchar(100))"); System.out.println("TABLE成功"); stmt.addBatch("insert into ourusers values('"+name+"','"+pass+"')"); System.out.println("users成功"); } catch (SQLException e) { ton=false; System.out.println(e.getMessage()); } close(rs,stmt,con); return ton; } public boolean getNamePass(String myname, String mypass) { String sql="select username,userpass from ourusers"; boolean ton=false; try { rs=DriverManager.getConnection(sqlAddress,sqlname,sqlpass).createStatement().executeQuery(sql); while(rs.next()){ System.out.println(rs.getString("username")+"\t"+rs.getString("userpass")+"\n"); if(myname.equals(rs.getString("username"))&mypass.equals(rs.getString("userpass"))){ ton=true; } } } catch (SQLException e) { System.out.println(e.getMessage()); ton=false; } return ton; } public static void main(String[] args){ addlist u=new addlist(); if(u.putNamePass("czfzcz", "123456")){ System.out.println("成功"); } } public static void close(ResultSet rs,Statement stmt,Connection con){ if(rs!=null) try { rs.close(); } catch (SQLException e) { e.printStackTrace(); } if(stmt!=null) try { stmt.close(); } catch (SQLException e) { e.printStackTrace(); } if(con!=null) try { con.close(); } catch (SQLException e) { e.printStackTrace(); } } }
方法getnamepass可以忽略 这个方法没有问题 我用来查询的
展开
 我来答
陆俊贤123
2017-02-03 · TA获得超过161个赞
知道小有建树答主
回答量:262
采纳率:78%
帮助的人:98.5万
展开全部
个人感觉是这两句话中少了一行代码
stmt.addBatch("insert into ourusers values('"+name+"','"+pass+"')");
System.out.println("users成功");
因为你只是添加了批处理,但是并没有去执行,所以如果原本数据库存在,而且里面有数据,但是你将其删除之后在创建,里面的数据自然而然就会变为空,所以在addBatch之后需要执行executeBatch才能将数据插入到数据库中。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式