Java - Mysql Getter/Setter

标签 java mysql

我是java新手,我使用getter和setter,作为用户的真实。 - 如何在 getter 和 setter 中添加查询? - 如何使用 ResultSet、Statement 的 getter 和 setter?

请原谅我的英语,非常糟糕。 谢谢您的回复

我的类(class)连接

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

我的用户 getter 和 setter

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

最佳答案

首先,你的整个代码的组成有点糟糕。根本不返回 ResultSetStatement。最好的主意是使用 DAO design pattern这至少可以确保代码干净。

此外,在该示例中,还展示了如何使用 PreparedStatement 来防止 SQL 注入(inject)漏洞。而且你的代码很容易受到攻击。 这是mkyongs还有关于 JDBC 的教程。

这里是my GitHub project about JDBC也。专为像您这样的情况而设计。下载并测试它。

关于Java - Mysql Getter/Setter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20157204/

相关文章:

java - Maven2 字符串索引超出范围 : -1 on getCommonBasedir during rewrite-poms-for-release

mysql - 在 SELECT mysql 中使用 IF 和 JOIN

mysql - SQL:两次使用不同的 where 条件查询表?

java - 您在 Java 中为个人/爱好项目使用什么包命名约定?

mysql - 需要左连接吗? WHERE 条件的行为类似于 INNER JOIN

mysql - 检测数据集中的变化

mysql - 如果计数超过 10 则删除子记录

java - 如何从构造函数中获取 JPanel 的宽度和高度?

java - OSX 中有 src.jar 吗?

java - 反转范围内的数字