实训成绩管理系统总结(一)——后台接口的实现

版权声明: https://blog.csdn.net/qq_40515156/article/details/83896135

1.找不到BaseResultMap类,报错如下:

  <select id="getAllUsers" resultMap="BaseResultMap">
    SELECT * FROM user
  </select>
  <select id="login" resultMap="BaseResultMap" parameterType="map">
    SELECT * FROM user WHERE  id=#{userId} and password = #{password}
  </select>
  <select id="selectById" parameterType="int" resultMap="BaseResultMap">
    SELECT * from user where id = #{userId};
  </select>

解决办法:将第二个select的parameterType改为resultMap

由此特意学习了一下parameterType、prrameterMap、resultMap、resulttype,首先需要明白的就是Map代表着映射,type是java的一种类型,将它们的的区别以及使用情况整理如下:

1.1resultType和resultMap

均表示查询结果集——java对象之间的一种关系,即处理查询结果集,映射到java对象。resultMap表示将查询结果列一一映射到bean对象的各个属性,resultType表示的是bean中的对象类,在查询结果集中的属性和bean对象类中的属性一一对应时,可以省略映射

1.2parameterType和parameterMap

parameterMap和resultMap类似,开发过程中一般使用后者,parameterType直接将查询结果列值类型自动对应到java对象属性类型上,不在配置映射关系一一对应

1.3userMapprer的部分配置文件代码如下:

  <select id="getAllUsers" resultMap="BaseResultMap">
    SELECT * FROM user
<!--Mapper配置文件,从user表获取-->
  </select>
  <select id="login" resultMap="BaseResultMap" parameterType="map">
    SELECT * FROM user WHERE  id=#{userId} and password = #{password}
  </select>

2.注册insert方法写了却失败,但是可以成功查询到已经注册的信息

SQL语句对每一个字段设置与对给定的字段进行设置,在insert方法中为了避免出错,最好使用后者

<insert id="insert" parameter="User">
    INSERT INTO USER VALUES (#(id),#(name),#(password),0)
</insert>
<!--角色role默认为0,学生,管理员直接给-->


<insert id="insert" parameter="User">
    INSERT INTO USER (id,name,password,role) VALUES (#(id),#(name),#(password),0)
</insert>

3.启动Tomcat报JMX端口被其他进程占用

在答辩前10分钟,启动Tomcat时居然报了个JMX1099端口被占用,对于这个问题,以前我的解决方法是打开配置文件修改端口值,这样修改的地方就比较多,最快的解决方案是打开后台的任务管理器,查看哪个进程占用了

使用命令:netstat -aon|findstr 1099
可看到使用此端口的进程

使用命令:taskkill -f -pid 
关闭使用此端口的进程

猜你喜欢

转载自blog.csdn.net/qq_40515156/article/details/83896135