LZ新手,还在学习中,想实现一个小功能,但是一直报错,高手们帮看看是什么问题呢。假如有代码结构,更好的写法等等的其它建议也非常欢迎,谢谢哈
1.预先建了个test表,结构:{varchar name,int cnt},手动写入10条记录。
2.有一个imp方法,会查询数据库中能否有符合传入name的记录。每次调用imp方法,假如有符合条件的结果则输出并且修改该记录中的cnt值,让其+1。
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即可
相要修改数据库里的值可以使用数据库语句,update即可