以前都是直接写数据库怎么创建表,自己写增删改查,今天忽然学到了一个新的方法,直接写script.xml文件来创建表,首先会有一个version版本,这个也是今天遇到的一个坑
<?xml version="1.0" encoding="UTF-8"?>
<entityMapper version="1.6">
<script version = "1.5"
text = "
CREATE TABLE ems_search_info
(
ems_id VARCHAR(32),
user_id VARCHAR(32),
last_data INT(8),
PRIMARY KEY (ems_id)
)
"
/>
后面写了好几个表可是没有把entityMapper version最新的版本改过来,查看代码一个小时来检查搞事情就是没有发现是entityMapper version这个版本的问题,很蛋疼。
还有一个问题就是在script.xml中表中的实体如
<entity className="EmsDataInfo"
tableName="ems_search_info"
tableComment="考试时间信息">
<props elementType="DataProperty">
<prop name="emsId" dbType="VARCHAR(32)" primaryKey="true"
comment="emsId"/>
<prop name="userId" dbType="VARCHAR(32)" comment="用户id"/>
<prop name="lastDate" dbType="INT(8)" comment="最新时间"/>
</props>
</entity>
外面要用这个类EmsDataInfo名来定义三个变量来与这个表的数据进行相互传递,而且这个EmsDataInfo类的属性不能少于表中的字段,可以大于等于。
这必须要一一对应。
当要用主键和其他条件去查询时可以用下面的方法
//获取时间
-(EmsDataInfo *)loadUserDataWithWithExamId:(NSString *)examId{
return [_dbHelper queryForObject:[EmsDataInfo class] sql:@"select * from
ems_search_info where ems_id = ? and user_id = ?",examId,
[_commonService getCurrentUserId]];
}
这样就可以查询到我们想要的字段。
然后就可以去操作是增删改查,首先对数据库表的操作要先查询。
entityMapper version这个值是表的个数的跟新,如果增加了一张表没有把entityMapper version加1的话编译的时候就不会把最新写的一个把创建出来,
补充在拉取代码和上传代码的问题,首先要先commit一下写出修改的内容,然后pull到本地来看看是否有问题再上传打到服务器。
最后遇到的一个蛋疼的问题就是在配置了手机端的启动页面没有配置piad端的启动页面,当piad启动程序跑起来时启动页就是放大的appicon,因为开始运行时建立的表报错一次,以为是自己不小心改了这个东西,后来仔细看看真的没有配置piad的启动页。
![屏幕快照 2017-05-16 下午10.10.58.png](http://upload-images.jianshu.io/upload_images/3678261-3ca9d98f6362791a.png?
imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
主要的居然把数据库的字段写错了