首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

java操作数据库出现乱码有关问题

2011-12-28 
java操作数据库出现乱码问题?如题代码如下privatevoidLoginInsert(){sqlnameroot sqlpasszhangyang

java操作数据库出现乱码问题?
如题
代码如下


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);

输出的都是正常的值
可是在数据库里就不对了
密码哪项编程乱码了
找不出错误来了
请大家看看那段代码写错了
谢谢了

[解决办法]
你数据获取和SQL是不能放的位置有问题

热点排行