怎么实现mysql对查找的某一结果值进行修改

J2EE 码拜 9年前 (2015-11-16) 3339次浏览
LZ新手,还在学习中,想实现一个小功能,但是一直报错,高手们帮看看是什么问题呢。假如有代码结构,更好的写法等等的其它建议也非常欢迎,谢谢哈
1.预先建了个test表,结构:{varchar name,int cnt},手动写入10条记录。
2.有一个imp方法,会查询数据库中能否有符合传入name的记录。每次调用imp方法,假如有符合条件的结果则输出并且修改该记录中的cnt值,让其+1。

public class test {
	private String DRIVER="com.mysql.jdbc.Driver";
	private String url="jdbc:mysql://localhost:3306/test?characterEncoding=UTF-8";
	private String id="root";
	private String pwd="root";
	private Connection con;
	private Statement s;
	private ResultSet r;
	public String select(String sqlselect) throws SQLException{ 
        String text="";

		con=DriverManager.getConnection(url,id,pwd);
		s=con.createStatement();
		r=s.executeQuery(sqlselect);

		if(r.next()){
			text=r.getString(1);
		}

		return text;
	}

	public void cnt(String name,String sqlselect) throws SQLException{
		int cnt=1;

		con=DriverManager.getConnection(url,id,pwd);
		s=con.createStatement();
		r=s.executeQuery(sqlselect);
		if(r.next()){
			cnt=r.getInt(2);
		}
		s.executeQuery("UPDATE test SET cnt="+(cnt+1)+"WHERE name="""+ name +"""");

	}

	public void imp(String name) throws Exception{
		String text="";
   
			String sqlselect="SELECT * FROM test WHERE name="""+ name +"""";
			Class.forName(DRIVER);

			if(select(sqlselect).length()>0){ 
				cnt(name,sqlselect);
				text=select(sqlselect);  

			    r.close(); 
			    s.close();    
			    con.close(); 
			}
		System.out.println(text);
	}
}
解决方案:40分
报什么错误?
相要修改数据库里的值可以使用数据库语句,update即可

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明怎么实现mysql对查找的某一结果值进行修改
喜欢 (1)
[1034331897@qq.com]
分享 (0)