mysql jdbc 更新数据

今天忙了大半天,在更新string类型字段的时候老是提示语法出错,因为mysql的更新语法是 update 表名 set 列名 = '列值' where 语句。这里自己脑袋不开翘啊,就被一个‘’ 难住了,因为列值是一个变量值,用的函数返回值表示的(我写的为String nname = request.getParameter("nname");String name = request.getParameter("name");),不是string常量,所以在写sql的时候用‘’的话它就都不出nname的值了,因为这样它会把nname当作一个常量来解析。可能也是基础不牢靠吧,想了很久才发现用转意字符一下就解决了。sql语句写这一样子就不会报错了:String sql = "update student set name = " + " \' "+ nname +" \' " + " where name = "+ " \' "+ name + "\' "。菜鸟的我还得加油,继续努力。百度了一下所有的转义字符,发现有一篇文章写的不错,搬过来留着:

1.八进制转义序列:\ + 1到3位5数字;范围'\000'~'\377' 
      \0:空字符 
2.Unicode转义字符:\u + 四个十六进制数字;0~65535 
     \u0000:空字符 
3.特殊字符:就3个 
      \":双引号 
     \':单引号 
     \\:反斜线 
4.控制字符:5个 
  
\' 单引号字符 
\\ 反斜杠字符 
\r 回车 
\n 换行 
\f 走纸换页 
\t 横向跳格 
\b 退格 


点的转义:. ==> u002E 
美元符号的转义:$ ==> u0024 
乘方符号的转义:^ ==> u005E 
左大括号的转义:{ ==> u007B 
左方括号的转义:[ ==> u005B 
左圆括号的转义:( ==> u0028 
竖线的转义:| ==> u007C 
右圆括号的转义:) ==> u0029 
星号的转义:* ==> u002A 
加号的转义:+ ==> u002B 
问号的转义:? ==> u003F 
反斜杠的转义: ==> u005C


换行符在不同的系统下有不同的形式:
\n:   Mac os下的文本文件换行符   
\r:   unix下的文本文件换行符   
\r\n:   windows下的文本文件换行符


下面的程序使用了两个Unicode的转义字符,它们是用其十六进制代码来表示Unicode字符。那么,这个程序会打印什么呢? 
Java代码 
public class EscapeRout{   
    public static void main(String[] args){   
        // \u0022 是双引号的Unicode转义字符   
        System.out.println("a\u0022.length()   
+\u0022b".length());   
    }   
}  


public class EscapeRout{ 
    public static void main(String[] args){ 
        // \u0022 是双引号的Unicode转义字符 
        System.out.println("a\u0022.length() 
+\u0022b".length()); 
    } 



        对该程序的一般的分析会认为它应该打印出26,因为在由两个双引号"a\u0022.length()+\u0022b"标识的字符串之间总共有26个字符。 
        稍微深入一点的分析会认为该程序应该打印16,因为两个Unicode转义字符每一个在源文件中都需要用6个字符来表示,但是它们只表示字符串中 的一个字符。因此这个字符串应该比它的外表看其来要短10个字符。 如果你运行这个程序,就会发现事情远不是这么回事。它打印的既不是26也不是16,而是2。 
        Java对在字符串字面常量中的Unicode转义字符没有提供任何特殊处理。编译器在将 程序解析成各种符号之前, 先将Unicode转义字符转换成为它们所表示的字符因此,程序中的第一个Unicode转义字符将作为一个单字符字符串字面常量("a")的结束引号,而第二个Unicode转义字符将作为另一 个单字符字符串字面常量("b")的开始引号。程序打印的是表达式"a".length()+"b".length(),即2。

      \0:空字符 
2.Unicode转义字符:\u + 四个十六进制数字;0~65535 
     \u0000:空字符 
3.特殊字符:就3个 
      \":双引号 
     \':单引号 
     \\:反斜线 
4.控制字符:5个 
  
\' 单引号字符 
\\ 反斜杠字符 
\r 回车 
\n 换行 
\f 走纸换页 
\t 横向跳格 
\b 退格 


点的转义:. ==> u002E 
美元符号的转义:$ ==> u0024 
乘方符号的转义:^ ==> u005E 
左大括号的转义:{ ==> u007B 
左方括号的转义:[ ==> u005B 
左圆括号的转义:( ==> u0028 
竖线的转义:| ==> u007C 
右圆括号的转义:) ==> u0029 
星号的转义:* ==> u002A 
加号的转义:+ ==> u002B 
问号的转义:? ==> u003F 
反斜杠的转义: ==> u005C


换行符在不同的系统下有不同的形式:
\n:   Mac os下的文本文件换行符   
\r:   unix下的文本文件换行符   
\r\n:   windows下的文本文件换行符


下面的程序使用了两个Unicode的转义字符,它们是用其十六进制代码来表示Unicode字符。那么,这个程序会打印什么呢? 
Java代码 
public class EscapeRout{   
    public static void main(String[] args){   
        // \u0022 是双引号的Unicode转义字符   
        System.out.println("a\u0022.length()   
+\u0022b".length());   
    }   
}  


public class EscapeRout{ 
    public static void main(String[] args){ 
        // \u0022 是双引号的Unicode转义字符 
        System.out.println("a\u0022.length() 
+\u0022b".length()); 
    } 



        对该程序的一般的分析会认为它应该打印出26,因为在由两个双引号"a\u0022.length()+\u0022b"标识的字符串之间总共有26个字符。 
        稍微深入一点的分析会认为该程序应该打印16,因为两个Unicode转义字符每一个在源文件中都需要用6个字符来表示,但是它们只表示字符串中 的一个字符。因此这个字符串应该比它的外表看其来要短10个字符。 如果你运行这个程序,就会发现事情远不是这么回事。它打印的既不是26也不是16,而是2。 
        Java对在字符串字面常量中的Unicode转义字符没有提供任何特殊处理。编译器在将 程序解析成各种符号之前, 先将Unicode转义字符转换成为它们所表示的字符因此,程序中的第一个Unicode转义字符将作为一个单字符字符串字面常量("a")的结束引号,而第二个Unicode转义字符将作为另一 个单字符字符串字面常量("b")的开始引号。程序打印的是表达式"a".length()+"b".length(),即2。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQL数据连接JDBCJava Database Connectivity)是一种用于在Java应用程序和MySQL数据库之间建立连接的API。它提供了一组类和接口,使得开发人员可以通过Java代码与MySQL数据库进行交互。 以下是MySQL数据连接JDBC的一般步骤: 1. 导入JDBC驱动程序:首先,需要将MySQL JDBC驱动程序添加到Java项目的类路径中。可以从MySQL官方网站下载并导入相应的JAR文件。 2. 加载驱动程序:使用`Class.forName()`方法加载MySQL JDBC驱动程序。例如,`Class.forName("com.mysql.jdbc.Driver")`。 3. 建立数据库连接:使用`DriverManager.getConnection()`方法创建与MySQL数据库的连接。需要提供数据库的URL、用户名和密码作为参数。例如,`Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydatabase", "username", "password")`。 4. 创建Statement对象:使用连接对象的`createStatement()`方法创建一个Statement对象,用于执行SQL语句。 5. 执行SQL语句:使用Statement对象的`executeQuery()`方法执行查询语句,或者使用`executeUpdate()`方法执行更新语句(如插入、更新、删除等)。 6. 处理结果:对于查询语句,可以使用ResultSet对象来获取查询结果。可以使用ResultSet对象的方法来遍历结果集并提取数据。 7. 关闭连接:在完成数据库操作后,需要关闭连接和相关资源。可以使用`connection.close()`方法关闭连接。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值