读书人

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

发布时间: 2011-12-28 22:45:21 作者: rapoo

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是不能放的位置有问题

读书人网 >J2SE开发

热点推荐