今天在进行数据库的操作时发现了一些语句上的小错误,导致的运行错误
1、想要在数据库中查找并得到用户名为username的用户的密码,我先写的sql语句为: String sql=”SELECT password FROM user WHERE username =”+username; 发现并不能结果集中并不能得到想要的密码;
在网上查得where应该是这样用的SELECT * FROM Persons WHERE City=’Beijing’,发现username应该加单引号 String sql=”SELECT password FROM user WHERE username =’”+username+”’”;
2、要想得到结果集resultSet里面的数据,要先进行next()操作,将光标位置向后移动一行,再通过一套getXXX()方法,获取当前行中制定列的值。(getDouble(),getFloat(),getInt(),getString())
3、Statement和PreparedStatement的使用区别:两者关系
PreparedStatement接口是继承于Statement的
①创建对象:Statement statement = connection.createStatement();
PreparedStatement preparedstatement =connection.preparedStatement(带有占位符?的sql);
②传递参数:PreparedStatement比Statement
多一步设置参数值的操作,通过
一系列setXXX(位置索引,参数值)函数来设置。
③执行语句和获取查询结果:两者返回的都是一个ResultSet
结果集。
ResultSet resultSet = statement.executeQuery(不带占位符的sql);
ResultSet resultSet =preparedstatement.executeQuery();
注意此时的executeQuery不需要参数