笔记
2、使用Mybatis注解开发视频列表增删改查 讲解:使用Mybatis3.x注解方式 增删改查实操, 控制台打印sql语句 1、控制台打印sql语句 #增加打印sql语句,一般用于本地开发测试 mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl 2、增加mapper代码 @Select("select * from video") // @Results({ // @Result(column = "cover_img",property = "coverImg"), // @Result(column = "create_time",property = "createTime") // }) List<Video> findAll(); @Select("SELECT * FROM video WHERE id = #{id}") Video findById(int id); @Update("UPDATE video SET title=#{title} WHERE id =#{id}") int update(Video Video); @Delete("DELETE FROM video WHERE id =#{id}") int delete(int id); @Insert("INSERT INTO `video` ( `title`, `summary`, " + "`cover_img`, `view_num`, `price`, `create_time`," + " `online`, `point`)" + "VALUES" + "(#{title}, #{summary}, #{coverImg}, #{viewNum}, #{price},#{createTime}" + ",#{online},#{point});") @Options(useGeneratedKeys=true, keyProperty="id", keyColumn="id") int save(Video video); 3、保存保存 技巧:保存对象,获取数据库自增id @Options(useGeneratedKeys=true, keyProperty="id", keyColumn="id") 4、技巧: 数据库字段下划线和Java实体类映射 # mybatis 下划线转驼峰配置,两者都可以 #mybatis.configuration.mapUnderscoreToCamelCase=true mybatis.configuration.map-underscore-to-camel-case=true开始
把获取到的json格式化 发现有些值是空的
数据库里面的字段是有值的 主要原因是数据内是下划线。实体类里面是驼峰的形式 使用@Result注解映射 这样字段就有值了 如果字段比较多的情况,每次都要写一遍映射就很麻烦。例如create_time这个字段也是需要映射的映射的技巧
4、技巧: 数据库字段下划线和Java实体类映射 # mybatis 下划线转驼峰配置,两者都可以 #mybatis.configuration.mapUnderscoreToCamelCase=true mybatis.configuration.map-underscore-to-camel-case=true 复制到配置文件里面 再次直接访问 img已经自动映射了。但是createTime还有自动映射上。 数据库本身就没有值,需要把数据库内线加上值 所以只要开启下划线转驼峰就可以 不用再写映射 再定义findById的方法 更新和删除的方法
开发Service层
可以直接从mapper类里面复制过来这些方法的定义
service的实现类。实现接口内的方法 @Servie表示它是一个业务类。注入videoMapper 更细和删除修改返回类型为int类型 更新用了PutMappingpostman测试
先用get方式删除试试 提示这个接口不支持get方式提交。 修改为Delete的方式提交数据 更新的语句错了 数据库内给更新成功了。
控制台打印sql语句
1、控制台打印sql语句
#增加打印sql语句,一般用于本地开发测试 mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImplinsert方法
先保存一个title测试 看错误 这里两个问号连在一起 再次保存测试 数据库内有值了 控制台打印的sql语句
获取主键ID
3、保存保存 技巧:保存对象,获取数据库自增id @Options(useGeneratedKeys=true, keyProperty="id", keyColumn="id") 数据库内