数据库常见问题总结
在我之前的项⽬中,存取数据使⽤的都是NSCoding⽅式,这样做避免了复杂的数据库操作,也造成了我数据库使⽤的困难。
最近做的⼀个项⽬中,⼤量的使⽤到数据库操作,涨姿势了,记录⼀下。
⼀、使⽤惯例:
(1)使⽤FMDB第三⽅库管理数据库
(2)不需要事务时,使⽤inDatabase
(3)需要使⽤事务时,使⽤inTransactionresultset 遍历
(4)inTransaction也可以替换为beginTransaction和commit的配对使⽤
(5)事务不可以嵌套
(6)sql语句使⽤?为占位符,以防sql注⼊问题
⼆、常见使⽤错误:
⼤部分的错误根据FMDataBase输出的错误提⽰,都可轻松解决。但有些错误的提⽰较为模糊,解决可能有⼀定困难,以下为我遇到的⼀部分:
1、there is at least one open result
原因:ResultSet需要⼿动关闭。
⼤部分情况下,通过[resultSet next]⽅法遍历了resultset的所有结果,是不需要关闭的。
但如果没有遍历所有的结果,并且没有⼿动关闭的话,就会报这个警告。⼀般是因为使⽤了if([resultSet next])
2、sql语句中的in语法不能使⽤
只能通过循环⾃⼰实现in语法了
3、误⽤executeQuery、executeUpdate
这个问题很容易理解,但也很容易忘记
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论