数据库常见问题总结

在我之前的项目中,存取数据使用的都是NSCoding方式,这样做避免了复杂的数据库操作,也造成了我数据库使用的困难。

最近做的一个项目中,大量的使用到数据库操作,涨姿势了,记录一下。

一、使用惯例:

(1)使用FMDB第三方库管理数据库

(2)不需要事务时,使用inDatabase

(3)需要使用事务时,使用inTransaction

(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

这个问题很容易理解,但也很容易忘记

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Menlo; color: #31595d }
span.s1 { }
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Menlo; color: #31595d }
span.s1 { }
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Menlo; color: #31595d }
span.s1 { }
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Menlo; color: #000000 }
span.s1 { }
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Menlo; color: #31595d }
span.s1 { }

时间: 2024-10-09 08:38:04

数据库常见问题总结的相关文章

ORACLE数据库常见问题汇总

提交事务的时候提示(数据库被一个用户锁住的解决方法) select object_id,session_id,locked_mode from v$locked_object; select t2.username,t2.sid,t2.serial#,t2.logon_time from v$locked_object t1,v$session t2 where t1.session_id=t2.sid order by t2.logon_time; alter system kill sess

Oracle数据库常见问题总结(一)

1.1. 基本概念 数据库:服务进程(数据库的读写日志进程等)+ 内存(占用的内存)+ 数据库的里文件(数据库等文件). 表空间:就是数据表被存的地方.一个表空间会有相应的.db文件对应 实例:就是你ate database后怎得有的进程和特定的内存对他进行读写等操作吧,这个特定的东西就是实例.也就是数据库概念中的富裕进程+ 内存,只是这个服务进程被打上了一个SID这个特定的标记. 服务:就是用来挂载实例的,当然没有实例,数据库服务也可以单独运行.当一个服务器今次那个选择加载.不过大多情况我们所

Oracle数据库常见问题总结(二)

1.1. PL/SQL配置 工具->首选项->oracle->连接->检查连接 PLSQL配置64位Oracle方法: http://blog.csdn.net/chen_zw/article/details/9292455/ 1.2. 查询语句不能匹配中文问题 在数据库中执行以下查询语句,查出当前的中文编码 select userenv('language') from dual; SIMPLIFIED CHNESE_CHINA.AL32UTF8 我的电脑->属性->

数据库常见问题(一)

问题:ERROR BGJOB_2]com.kingdee.bos.dao.ormapping.SQLAccessException: update data error.Error for batch element #1: The value of a host variable in the EXECUTE or OPEN statement is out of range for its corresponding use.. SQLCODE=-302, SQLSTATE=22001, D

php连接Access数据库错误及解决方法

<?php $connstr="DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" . realpath("data.mdb"); $connid=odbc_connect($connstr,"","",SQL_CUR_USE_ODBC); $issuetime=date("Y-m-d H:i:s"); $sql="insert into test

数据库------&gt;求职必看

关系数据库在数据管理方面的优势和意义, 熟悉关系数据库的建立.修改.优化和维护, 熟练掌握使用 SQL 语句进行数据的增删改查. 熟悉事务.并发控制.死锁.视图.触发器的基本概念及应用, 数据库的三级模式 数据库的二级映像功能和数据独立性 具备使用所学知识解决数据库常见问题的能力.

SQL 笔记 By 华仔

-------------------------------------读书笔记------------------------------- 笔记1-徐 最常用的几种备份方法 笔记2-徐 收缩数据库的大小的方法 笔记3-徐 设置数据库自动增长注意要点 笔记4-徐 模仿灾难发生时还原adventurework数据库 示例 stopat 笔记5-徐 检查日志文件不能被截断的原因 笔记6-徐 检测孤立用户并恢复孤立用户到新的服务器 解决数据库镜像孤立用户问题 笔记7-徐 SQLSERVER日志记录

mysql数据库开发常见问题及优化

mysql 数据库是被广泛应用的关系型数据库,其体积小.支持多处理器.开源并免费的特性使其在 Internet 中小型网站中的使用率尤其高.在使用 mysql 的过程中不规范的 SQL 编写.非最优的策略选择都可能导致系统性能甚至功能上的缺陷. 恰巧就在前几天,本人所在公司的云事业部举办了一场关于 mysql 的技术交流会,其中一个 part 正是聚焦于开发过程中 mysql 数据库设计及使用的常见问题,并提出相关优化方案.根据会议内容并查阅相关资料,本人对这个 part 进行了一次小结,结合自

Oracle数据库备份、恢复及常见问题

通常我们都是使用PL/SQL Developer来对Oracle中的数据对象和数据进行管理.如果我们想方便快速还原或者部署Oracle到新机器上,怎么进行数据库的备份.导入恢复呢? 这里我们必须要考虑的:如何创建Oracle表空间.创建Oracle数据库;如何把Oracle对象.表数据导出到sql脚本中. 1.数据库备份 (1)导出数据库对象 Tools-->ExportUser Objects,选择需要导出的数据库对象,包括:表.序列.存储过程.视图.函数等. (2)导出表数据 Tools--