• 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_3-2.使用Mybatis注解开发视频列表增删改查


    笔记


    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")




    数据库内





     

  • 相关阅读:
    高并发编程之基础概念
    使用JAXB实现Bean与Xml相互转换
    python语法(五)—函数
    2018年终总结
    python语法(四)— 文件操作
    excel开发
    spring 常用注解,@primary注解
    spring中InitializingBean和@Bean的初始化,bean初始化
    @PostConstruct 注解
    LocalDateTime java8
  • 原文地址:https://www.cnblogs.com/wangjunwei/p/11465402.html
Copyright © 2020-2023  润新知