zoukankan      html  css  js  c++  java
  • 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,而不是使用多个加号连接字符串。

  • 相关阅读:
    搭建非域AlwaysOn win2016+SQL2016
    从0开始搭建SQL Server AlwaysOn 第四篇(配置异地机房节点)
    从0开始搭建SQL Server AlwaysOn 第二篇(配置故障转移集群)
    从0开始搭建SQL Server AlwaysOn 第三篇(配置AlwaysOn)
    从0开始搭建SQL Server AlwaysOn 第一篇(配置域控)
    四、基于Windows 2012配置SQL Server 2014 AlwaysOn
    三、安装SQLserver 2014(For AlwaysOn)
    二、 Windows 2012配置故障转移(For SQLServer 2014 AlwaysOn)
    Mybatis-SQL语句构建器类及日志
    Mybatis-JavaAPI
  • 原文地址:https://www.cnblogs.com/dty602511/p/13573924.html
Copyright © 2011-2022 走看看