答题小程序服务器端后台代码实现

答题小程序服务器端后台代码实现

   最近小伙伴们实现了一个方言类答题的小程序。写点东西做个记录。
   首先是环境:服务器系统是centos+tomcat8.5,大致流程是在本地写好代码,生成可编译的class文件,测试后把项目发布到服务器上。数据库使用的是Mysql8.0,踩过一点点小坑,之后会把踩过的坑也放上来。访问数据库用的是mybaits,比较方便修改。

关于小程序前期调试

 建议先在微信开发者工具先将不校验合法域名去掉,测试本地编写的代码

将不校验合法域名的勾去掉数据库创建,建议直接在脚本里写好语句执行,这样利于复用

代码编写部分:(这次没用到什么框架,下次会学一些框架然后再写些项目)
1,定义实体类,比如用户类,尽量和数据库里的顺序,字段保持一致,利于后期代码编写。
2,写好接口类和实现类,这部分主要是处理业务逻辑和与数据库的交互。
3,利用mybaits写好sql语句。
4,编写servlet类,既处理http传来的参数,也处理返回结果。

下面是踩过的一些坑的记录

mybaits的坑:

 <!-- 启用别名 -->
<typeAliases>
<!-- 指定包下面的所有类自动启用别名,默认别名为类名 -->
    <package name="entity"/>
</typeAliases>

1,启用别名的坑
一般不想写一大串包名会使用这个,然后我这的例子是我要传入一个实体类,然后实体类都放在entity这个包里面,然后我开始的时候以为这要写的是项目名,然后就会报找不到类之类的错误。重要的话说三次,这里应该放包名!包名!包名!
2,传参注意事项
传入参数或返回是int型
parameterType=“java.lang.Integer”
resultType=“java.lang.Integer”
传入参数或返回是String型,同理可得
parameterType=“java.lang.String”
resultType=“java.lang.String”
如果要传入多个参数,建议使用map
3,指定多个xml(类似于下面这样)

    <mappers>
    <mapper resource="mapper/AdminInfoMapper.xml"/>
    <mapper resource="mapper/xxx.xml"/>
</mappers>

mysql的坑:
1, 利用jdbc连接mysql数据库时如果装的mysql是6.0以上版本,则使用com.mysql.cj.jdbc.Driver而不是com.mysql.jdbc.Driver

<environments default="development">
    <environment id="development">
        <transactionManager type="JDBC">
            <property name="" value=""/>
        </transactionManager>
        <dataSource type="POOLED">
            <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
            <property name="url" value="jdbc:mysql://localhost:3306/fangyan?useUnicode=true&amp;characterEncoding=utf-8&amp;serverTimezone=GMT%2B8&amp;useSSL=false&amp;allowPubliKeyRetrieval=true"/>
            <property name="username" value=""/>
            <property name="password" value=""/>
        </dataSource>
    </environment>
</environments>

2,关于排行榜或者分页查询,在弄排行榜这个功能的时候因为只需要前三名,本来想通过排序加top实现,然后发现mysql好像没有top这个函数,不过可以使用limit实现。利用limit也可以实现分页查询。
举个例子:

select userId, nickName, score,sign, @curRank := @curRank + 1 AS ranks FROM users,(SELECT @curRank := 0) t ORDER BY score desc limit #{countId},#{per}

3,insert里面不能使用子查询,但好像可以使用孙子查询(这是个比较形象的说法)
4,记得定时备份
eclipse使用的一些小坑:
1,如果你不小心把下面这个勾去掉了,你可能会出现修改后怎样都不会生成新的class文件
在这里插入图片描述2,导入队友的项目出现红×,提示没有任何错误但点击运行也没有相应的class文件或者运行servlet404的错误。
可以windows->show views->other-Problems,把这个视图调出来,你就能看到你的错误了,然后根据提示修改就可以了。一般极有可能是jar包的问题。

文件上传的小坑:
这个我遇到的其实是系统不同的原因,由于一开始的代码是在本地写的,本地系统是windows,然后服务器系统是 centos,所以就有‘/’,和‘\’的区别,稍作修改就可以了。修改后编译的class文件直接覆盖原来的class文件就可以了。

这是本人第一次写博客,写的不好多见谅哈,写的不对的地方请多多指正,谢谢!后续会认真学习一些框架以及写一些项目练手,也会认真写写博客!

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值