笔记
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类型
更新用了PutMapping
postman测试
先用get方式删除试试
提示这个接口不支持get方式提交。
修改为Delete的方式提交数据
更新的语句错了
数据库内给更新成功了。
控制台打印sql语句
1、控制台打印sql语句
#增加打印sql语句,一般用于本地开发测试
mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
insert方法
先保存一个title测试
看错误 这里两个问号连在一起
再次保存测试
数据库内有值了
控制台打印的sql语句
获取主键ID
3、保存保存
技巧:保存对象,获取数据库自增id
@Options(useGeneratedKeys=true, keyProperty="id", keyColumn="id")
数据库内