为了账号安全,请及时绑定邮箱和手机立即绑定
  • 封装一个RedisOperator操作类

    40%

    查看全部
  • <dependency>
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-starter-redis</artifactId>
    </dependency>

    application的redis配置,注意:timeout>0

    @Autowired StringRedisTemplate

    template.opsForValue.set("k1","v1")

    template.opsForValue.get("k1")

    对象转Json

    strNotice = new ObjectMapper().writeValueAsString(notice)

    json转对象

    Notice notice2=new ObjectMapper().readValue(strNotice2,Notice.class)

    60%

    查看全部
  • SpringBoot整合持久层事物

    1、事物的隔离级别有多种,这里采用默认的形式。

    http://img1.sycdn.imooc.com//5ddfcaa400012a0209860261.jpg2、事物的传播行为,这里主要使用REQUIRED和SUPPORTS。

    REQUIRED:当有一个操作需要执行的时候,如果有事物,就会把当前这个操作放入到事物中,如果没有事物,那么就要新建一个事物,然后再去执行(适用于增加、删除、修改的操作)。

    SUPPORTS:如果有事物,就把该操作加入当前事物中执行,如果没有事物,就以脱离事物状态去运行(适合读取操作)。

    http://img1.sycdn.imooc.com//5ddfcad30001328b09900189.jpg


    举例:插入一个用户,之后产生一个除0异常,如图。然后把该用户的删除状态由0修改为1,然后再进行修改。

    通过查看:用户是插入进去了,但是没有进行修改,由于这个异常,所以这里需要回滚,所以这里需要使用事物。

    http://img1.sycdn.imooc.com//5ddfcc510001889a08480338.jpg

    这里只需要在执行数据库操作的方法上添加注解@Transactional,并且事物的传播行为REQUIRED,此时就会发现没有进行插入,也就是事物进行了回滚,这也就是事物的作用,要么一组操作全部成功,要不就都失败。

    http://img1.sycdn.imooc.com//5ddfcd1f0001623907570172.jpg


    拓展:SpringMVC事物的使用,需要在配置文件进行配置,如下图,针对特定方法的开头单词进行事物的操作。

    http://img1.sycdn.imooc.com//5ddfce1a0001f48310360520.jpg

    查看全部
  • 整合mybatis-pagehelper实现分页

    实现分页的前提:第一个是当前页数,第二个是每页显示多少条记录数,这里设置每页记录数为10条。

    http://img1.sycdn.imooc.com//5ddfc66e0001204210360428.jpg

    http://img1.sycdn.imooc.com//5ddfc6a90001e14910300439.jpg

    PageHelper的startPage(当前页数,每页显示记录数)实现原理:查询时有一个拦截,拦截后对sql语句进行包装(源码如下),也就是每次执行该方法时,都是查询指定数量记录并进行返回。

    http://img1.sycdn.imooc.com//5ddfc7150001659c10670609.jpg

    注意:这里需要注意如果当前页设置为0,会按当前页为第一页来处理,如果传过去的当前页大于最后一页,则会查询最后一页记录并且返回。

    查看全部
  • 实现CRUD

    首先,需要在项目的启动类上添加@MapperScan(baskPackages="包路径"),用来扫描该包下的映射类,也就是让SpringBoot容器加载这些映射类。

    代码演示:创建service及其实现类,并且接口中有如下方法。

    http://img1.sycdn.imooc.com//5ddfc28d0001e3ae09120321.jpg

    通过查看userMapper(生成的插件),它其中拥有很多方法。

    http://img1.sycdn.imooc.com//5ddfc3540001b13b07110682.jpg







    查看全部
  • SpringBoot整合持久层框架有很多:例如SpringJDBC、Hibernate、Mybatis(这里SpringBoot整合Mybatis时,sql语句写在XML中,这种方式对于后期的维护、优化等方面可读性号,所以这里就不采用注解形式,把sql语句写在实体类中了)。

    一、使用generatorConfig生成mapper以及pojo(SpringBoot官方提供了一套方法,这里使用一种更简洁的方式)。

    步骤1:首先,需要引入一些依赖,如下图,有Mybatis、Mapper、Pagehelper,此外还需要引入数据源(这里使用阿里的druid)、mysql等等。

    http://img1.sycdn.imooc.com//5ddfb47d000138ad08350388.jpg

    http://img1.sycdn.imooc.com//5ddfb5370001aa5608980329.jpg

    http://img1.sycdn.imooc.com//5ddfb5270001dcea09430339.jpg

    步骤2:如果想使用devtools热部署,还需要在application.properties中引入如下两段代码(部署到生产环境中就不用添加了)。

    http://img1.sycdn.imooc.com//5ddfb5970001b1c310190165.jpg


    步骤3:集成Mybatis Generator(这里不使用这种方式,使用更为简洁的方式)

    http://img1.sycdn.imooc.com//5ddfb65d0001b25c09460306.jpg


    这里的generateConfig.xml文件和SpringBoot官方提供的文件相似,需要注意的是这里使用Mybatis3Simple生成mapper的文件,这中方式比较简洁。

    http://img1.sycdn.imooc.com//5ddfb9bb0001acb010680191.jpg

    这里使用一个插件MyMapper来做的。

    http://img1.sycdn.imooc.com//5ddfb9cf00014df508530159.jpg

    这里是数据库配置信息。

    http://img1.sycdn.imooc.com//5ddfb9ea000103ea09160169.jpg

    生成pojo的包在如下图进行配置。

    http://img1.sycdn.imooc.com//5ddfba000001d3a610610135.jpg

    生成mapper的包在如下图进行配置。

    http://img1.sycdn.imooc.com//5ddfba1600012ebb10230128.jpg

    映射类放置在如图中的位置。

    http://img1.sycdn.imooc.com//5ddfba370001f34710480158.jpg

    最后设置逆向生成table的名字放置在如图,一般这个名称设置为数据库中对应的表名,这样运行程序时,就会自动逆向生成。

    http://img1.sycdn.imooc.com//5ddfba68000101b006410123.jpg

    这里使用如图下的类,来逆向生成,这里需要指定逆向生成的文件,在根目录下的generateConfig.xml,运行图中的主方法就会反序列化生成。

    http://img1.sycdn.imooc.com//5ddfbaac0001abe710860582.jpg

    启动:它首先会找到那张表,再找到表中的字段,再逆向生成实体类,和mapper文件。

    http://img1.sycdn.imooc.com//5ddfbb590001a42406090471.jpg

    http://img1.sycdn.imooc.com//5ddfbb780001c0c811560536.jpg

    如图:逆向生成的实体类,实体类中的注释就是数据库中的注释。

    http://img1.sycdn.imooc.com//5ddfbbe6000163a810550596.jpg

    步骤4:application.properties配置,其中mybatis的pojo类定义在tk.mybatis.springboot.model下,mapper文件在mapper文件夹下。还有通用Mapper配置,它是一个有效类,并且可以设置它的方言。这里还涉及分页的配置,分页使用的方言也是mysql

    http://img1.sycdn.imooc.com//5ddfb6830001c80e09080481.jpg

    如果是application.yml配置就是用如下配置

    http://img1.sycdn.imooc.com//5ddfb6bc0001761b12570642.jpg

    步骤5:配置数据源

    http://img1.sycdn.imooc.com//5ddfb6e500015aac08580451.jpg

    二、实现基于mybatis的CRUD功能。

    三、整合mybatis-pagehelper实现分页。


    四、自定义mapper的实现。

    github地址:第一个是课程项目源码,第二个是Mybatis整合SpringBoot的框架。

    http://img1.sycdn.imooc.com//5ddfb36a00014b9810540284.jpg



    查看全部
  • Web异常处理和ajax异常处理结合使用

    步骤:只需要在后端进行一个判断,判断该请求是否是ajax请求,如果是那么则以ajax异常方式处理,如果是web形式则以web异常处理形式处理即可。

    http://img1.sycdn.imooc.com//5dde8990000184a711130668.jpg

    http://img1.sycdn.imooc.com//5dde89550001e7ec10800594.jpg

    查看全部
  • @JsonIgnore, 不返回该字段  @JsonFormat(...) 对时间格式进行注解 ,   @JsonInclude(XXX) 

    查看全部
  • @RestController= @Controller+ @ResponseBody

    查看全部
  • 捕获ajax访问时的异常

    @RestControllerAdvice:拦截异常并统一处理,它通常用于定义@ExceptionHandler, @InitBinder 和 @ModelAttribute 适用于所有@RequestMapping方法的方法,通过它就可以返回我们期望的异常返回格式,如果全部异常返回格式使用json,就可以使用该注解代替@ExceptionHanlder下的@ResponseBody注解。

    @ControllerAdvice:拦截异常并统一处理,它通常用于定义@ExceptionHandler, @InitBinder 和 @ModelAttribute 适用于所有@RequestMapping方法的方法,通过它就可以返回我们期望的异常返回格式,注意:使用它时@ExceptionHandler必须和@ResponseBody一起结合使用。


    @ExceptionHandler:自动捕获controller层出现的指定类型异常,并对该异常进行相应的异常处理。

    Exception的printStackTrace():打印该异常类名、字符串信息和方法调用到异常抛出的轨迹。

    Exception的getMessage():返回异常的字符串信息,也就是异常的构造方法中的参数。如果是自定义异常,需要把字符串需要传给父类的构造器,否则不会输出信息。(除非自己定义这几个方法)

    注意:如果是自己定义的异常类(继承了Exception),字符串信息要传给其父类Exception的构造器,否则

    这里方法返回一个包装类,通过包装类IMoocJSONResult把异常信息进行返回。

    http://img1.sycdn.imooc.com//5dda3a3600012bdc09050396.jpg

    页面中加入debugger;运行的时候相当于产生一个端点,谷歌浏览器下,F10可以继续往下执行,而且可以在右边的watch中输入想要查看的数据。 

    http://img1.sycdn.imooc.com//5dde87ec0001834008180420.jpg

    http://img1.sycdn.imooc.com//5dde885f0001806d03760204.jpg

    查看全部
  • mybatis、mapper、pagehelper

    查看全部
  • <!--freeMark依赖-->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-freemarker</artifactId>
    </dependency>
    <!--ModelAndView-->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>


    查看全部
  • server.port=8888

    server.context-path="/app/cf"

    查看全部
  • @Configuration

    @ConfigurationProperties(prefix="com.cf.resouce.config")//配置项的前缀

    @PropertySource(value="classpath:resource.properties")//配置文件路径

    查看全部
  • <groupId>org.springframework.boot</groupId>

    <artifactId>spring-boot-configuration-processor</artifactId>

    查看全部

举报

0/150
提交
取消
课程须知
学习中需要用到这些工具: —eclipse —redis 你需要有这些基础: —Java 基础 —Spring —Spring MVC
老师告诉你能学到什么?
了解springboot如何从零搭开始搭建一个工程 springboot系统架构体系 springboot与各个技术点的整合

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!