8.15

今天学了

9.2 更新 UserBean 中的代码
在 UserBean 中需要添加两个方法:根据用户 ID 查询及添加用户。这两个方法中使用 的 SQL语句中都包含变量,称为动态 SQL语句。 9.2.1 动态SQL语句的编写 首先应该能够写出静态的 SQL语句,并且使用静态 SQL语句到数据库服务器上验证。 如果静态的 SQL语句没有问题,就把它改造成动态的 SQL语句。 完成查询功能时,需要根据用户 ID 查询,假设使用 userid 保存用户 ID 信息。 第一步,先编写查询用户 ID 为 123 的用户的静态 SQL 语句,代码如下: "select * from usertable where userid='123' " 这个 SQL语句编写完了之后,应该先到数据库服务器上执行一下看看有没有问题。 第二步,把 SQL语句中的常量123 替换成变量 userid,替换后的代码如下: "select * from usertable where userid='userid' " 如果直接执行这个代码,也不会出错,但是查找不到结果,原因是系统把 userid 作为 ID 号了,而不是把 userid 表示的内容作为用户 ID。所以需要把 userid 作为变量处理。 第三步,分割字符串中的常量和变量,常量使用双引号,而变量直接写出即可。修改 后的代码如下: "select * from usertable where userid='" userid "' " 注意:最后一部分是一个字符串,内容是一个单引号。 第四步,把字符串连接起来,这时候我们使用 StringBuffer 来完成字符串的连接,代码 如下: StringBuffer sql = new StringBuffer; sql.append("select * from usertable where userid='"); sql.append(userid); sql.append("'"); 在执行 SQL 语句的时候,使用 toString()方法就可以把 StringBuffer 对象转换成 String 对象了。以前的很多书上都这样写: String sql = "select * from usertable where userid='"+userid+"'"; 从完成功能上来说这样写没有问题,但是会有效率问题。因为 String 类型的对象本身 是一个常量,也就是说内容不能改变。上面的过程实际上生成了很多 String 对象:首先组 成查询语句的 3 部分,都是一个 String 对象;然 后 每 一 次连接都会创建一个新的 String 对象。 而 StringBuffer 对象的内容可以改变。尤其是在需要链接的字符串比较多的时候,更应该选 择使用 StringBuffer,而不是使用多个加号连接字符串。

原文地址:https://www.cnblogs.com/dty602511/p/13573924.html