我是java的新手,我使用getter和setter,因为用户是真实的。 - 如何在getter和setter中添加查询? - 如何在getter和setter上使用ResultSet,Statement?
请原谅我的英语,很糟糕。 谢谢你的回复
我的班级连接
public class con {
String driver = "com.mysql.jdbc.Driver";
String url ="jdbc:mysql://localhost:3306/tienda";
String user = "root";
String pw = "";
Connection conn = null;
public ResultSet iList(String iSql){
try{
Class.forName(driver).newInstance();
Connection oCnn = DriverManager.getConnection(url,user,pw);
PreparedStatement oPst = oCnn.prepareStatement(iSql);
ResultSet oRst = oPst.executeQuery();
return oRst;
}catch(Exception e){
return null;
}
}
public String Exen(String iSql){
try{
Class.forName(driver).newInstance();
Connection oCnn = DriverManager.getConnection(url, user, pw);
PreparedStatement oPst = oCnn.prepareStatement(iSql);
int i= oPst.executeUpdate();
return null;
}catch(Exception e){
return "error "+e.getMessage();
}
}
}
我的用户获取和设置器
public class usuario {
conexion cn = new con();
private String id;
private String name;
private String lastn;
private String dir;
private String iPass;
public String Eliminau(){
String cad ="delete from tblusuario where idusuario='" + this.getId() + "'";
return cn.Ejecutar(cad);
}
public String Login(){
String cad = "SELECT * FROM tblusuario WHERE name '" + this.getname() + "' AND pass = '"+
this.getiPass() + "'";
return cn.Ejecutar(cad);
}
public String agregar(){
String cad = "INSERT INTO tblusuario VALUES('" +
this.getId() + "','" + this.getiPass() + "','" + this.getname() + "','" +
this.getlastn() + "','" + this.getDir() +"')";
return cn.Ejecutar(cad);
}
public String getId() { return id;}
public void setId(String id) {this.id = id;}
public String getname() { return name;}
public void setname(String name) {this.name = name;}
public String getlastn() {return lastn;}
public void setlastn(String lastn) {this.lastn = lastn;}
public String getDir() {return dir;}
public void setDir(String dir) {this.dir = dir; }
public String getiPass() { return iPass;}
public void setiPass(String iPass) {
String cript;
cript = DigestUtils.md5Hex(iPass);
this.iPass = cript;
}
}
答案 0 :(得分:0)
首先,你的整个代码有点糟糕。暂时不要返回ResultSet
或Statement
。最好的办法是使用DAO design pattern,这将确保至少清洁代码。
此外,在该示例中,还展示了如何使用PreparedStatement
来防止SQL注入漏洞。你的代码很容易受到攻击。
这里也是关于JDBC的mkyongs教程。
这里也是my GitHub project about JDBC。专为像你这样的案件而制作。下载并测试它。