如题
代码如下private void LoginInsert() { sqlname = "root";
sqlpass = "zhangyang";
String url = "jdbc:mysql://localhost:3306/lucky";
//String url="jdbc:mysql://localhost:3306/lucky?useUncode=true&characterEncoding=GBK"; try {
Class.forName("com.mysql.jdbc.Driver");
con = DriverManager.getConnection(url, sqlname, sqlpass); } catch (ClassNotFoundException e) {
System.out.println("装载驱动程序失败");
e.printStackTrace();
System.exit(1);
} catch (SQLException e) {
System.err.println("无法连接数据库");
e.getMessage();
System.exit(1);
} try {
String strsql; strsql = "select * from user where (name='" + newname + "')";
stmt = con.createStatement(); // 创建一个执行的用于执行静态 SQL 语句并返回它所生成结果的对象。
rs = stmt.executeQuery(strsql);

boolean flags = rs.next();
System.out.println(flags);

if (flags) {
JOptionPane.showMessageDialog(this, "用户名已存在");
username.setText("");
pw1.setText("");
pw2.setText("");
/*mail.setText("");
adress.setText("");*/
return;


else {
try { String str = "insert into user (name,pass,mail,adress) Values('"
+ newname + "','" + newpw + "','" + newmail + "','"
+ newadr + "')"; System.out.println(newname);
System.out.println(newpw);
System.out.println(newmail);
System.out.println(newadr);
stmt = con.createStatement();
int flag=stmt.executeUpdate(str);
//System.out.println(flag); //测试时候查看输出值 
if(flag==1){
JOptionPane.showMessageDialog(this, "注册成功");
}
else{
JOptionPane.showMessageDialog(this,"注册失败");
}

} catch (SQLException e) {
e.printStackTrace();
} }
} catch (SQLException e) {
e.printStackTrace();
} try {
rs.close();
stmt.close();
con.close();
} catch (SQLException e) {
e.printStackTrace();
} } private void check() {
newname = username.getText();
newpw = pw1.getPassword();
newpw1 = pw2.getPassword();
newmail = mail.getText();
newadr = adress.getText();
if (newname.length() == 0) {
JOptionPane.showMessageDialog(this, "用户名不能为空"); } else if (newpw.length == 0) {
JOptionPane.showMessageDialog(this, "密码不能为空"); } else if (newpw1.length == 0) {
JOptionPane.showMessageDialog(this, "确认密码不能为空"); } else if (newmail.length() == 0) {
JOptionPane.showMessageDialog(this, "邮箱不能为空"); } else if (newadr.length() == 0) {
JOptionPane.showMessageDialog(this, "地址不能为空"); } else if (!Arrays.equals(newpw, newpw1)) {
JOptionPane.showMessageDialog(this, "两次输入的密码不相同"); } else {
LoginInsert();// 连接数据库 执行插入语句....

} }
在这里我使用
System.out.println(newname);
System.out.println(newpw);
System.out.println(newmail);
System.out.println(newadr);输出的都是正常的值
可是在数据库里就不对了
密码哪项编程乱码了
找不出错误来了
请大家看看那段代码写错了
谢谢了

解决方案 »

  1.   

    你数据获取和SQL是不能放的位置有问题
      

  2.   

    主要是问什么取值 和插入数据库中的值不一样呢
    而且就是pass字段的值不一样
    就是这一点我想不明白...
    能给点提示吗?
    先谢谢你了.....
      

  3.   

    String pw=String.valueOf(this.txtPassword.getPassword());
      

  4.   

    好了   改过来了
    只要把插入语句中的密码字段的属性改以下就好了
    本来是  newpw  这个是char[]类型的
    我把它转变成String         String.valueOf(newpw)就好了...哈哈   小毛病自己找不到  谢谢yhkyo() 了