为了账号安全,请及时绑定邮箱和手机立即绑定

通过自动回复机器人学Mybatis---基础版

难度中级
时长 4小时30分
学习人数
综合评分9.73
430人评价 查看评价
9.9 内容实用
9.7 简洁易懂
9.6 逻辑清晰
  • OGNL表达式

    查看全部
  • 网页乱码:在talk.jsp页面添加这句;<%@ page contentType="text/html; charset=UTF-8" %>

    查看全部
  • jdbc的数据库连接地址后面加?useUnicode=true&characterEncoding=UTF-8

    Message.xml的select标签中间select语句最后没加where 1=1

    正确的sql语句是select ID,COMMAND,DESCRIPTION,CONTENT from MESSAGE where 1=1 and COMMAND=? 。

    查看全部
    0 采集 收起 来源:列表查询

    2019-08-20

  • jsp介绍

    查看全部
    0 采集 收起 来源:数据展示

    2019-08-19

  • Mybatis 常见问题

    查看全部
    0 采集 收起 来源:常见问题解析

    2019-08-07

  • Mybatis #{} 与 ognl

    建议统一写法:_parameter

    查看全部
  • Mybatis #{} 与 ${}

    1. #{}: 预编译的。自动数据类型转换。防止sql注入,优先使用。

    2. ${}: 直接拼接的。需自行判断数据类型。使用场景:order by,传入数据库对象(如:列名,表明),模糊查询,分页等。

    查看全部
  • Mybatis 常用标签

    查看全部
    0 采集 收起 来源:常用标签

    2019-08-07

  • Mybatis 中的 OGNL 表达式

    查看全部
  • Mybatis 中的 OGNL 表达式

    查看全部
  • Mybatis 之 SqlSession

    查看全部
  • OGNL表达式

    查看全部
  • 【知识点1】

    <a href="">属于GET方式请求,参数通过在路径中传递(可以通过js进行提交,并进行提示,如下图)。

    https://img1.sycdn.imooc.com//5d38ff6b00013c3709690131.jpg

    https://img1.sycdn.imooc.com//5d38ff6c000146bf09150309.jpg

    【知识点2】

    使用<a>标签提交form表单信息,使用js修改提交的action,如下图

    https://img1.sycdn.imooc.com//5d39004e0001b9d307610072.jpg

    https://img1.sycdn.imooc.com//5d39004e0001b02e07440153.jpg


    查看全部
  • 知识点1】

    通过Properties类获取数据信息。

    InputStream is=当前类.class.getClassLoader.getResourceAsStream("Properties文件位置")

    Properties properties=new Properties();

    properties.load(is);

    properties.getProperty("Properties文件的key值");

    【知识点二】

    RequestDispatcher rd=request.getRequestDispatcher();

    该对象的forward(request,response)和include(request,response)的区别?

    这两个方法都是用来跳转资源的,但是forward方法执行完,该Servlet后面的response输出不会被执行,如果跳转的是另一个Servlet,另一个Servlet里也有response输出,则这个输出会执行,这里的不会执行只是执行forward方法的Servlet后面的response输出不会执行。如果换成include方法,则这两个Servlet里response输出都会被执行。如果在跳转的Servlet里把response.getWriter获得的对象close掉,则原来的Servlet也不会进行输出。

    servlet A
    RequestDispatcher disp = request.getRequestDispatcher("B");
    disp.forward(request, response);
    System.out.println("servlet A completed");
    PrintWriter pw = response.getWriter();
    pw.println("servlet A");
    servlet B
    PrintWriter pw = response.getWriter();
    pw.println("servlet B");
    输出结果:
    控制台:servlet A completed

    页面:servlet B
    如果将forward换成include的话,则结果为:
    控制台:servlet A completed
    页面:servlet B servlet A
    PS:如果在servlet B里把pw给close掉了的话,那servlet A 这里就无法输出了,则结果就和第一个一样。

    【知识点三】

    JSTL和EL

    JSTL——

    for循环标签:<c:forEach items=""  var=""  varStatus="">

    items:值为传过来的集合,可以通过EL表达式或者JSP表达式获取(${list}或者<%=request.get...%>)

    var:代表集合中的每一项的名称,如果集合中是基本类型,则可以通过${变量名}取值,如果是自定义的类,则可以通过${变量名.属性名}。

    varStatus:相当于一个变量,它的初始值是0,获取它的值方式,名称.index,通常用它和<if>标签实现隔行变色功能。

    if条件标签:<if test="表达式"></if>它可以嵌在标签里面。

    EL——通过${}获取传到页面的值。

    https://img1.sycdn.imooc.com//5d37c2ff0001c87611180414.jpg


    查看全部
    0 采集 收起 来源:黎明前的黑暗

    2019-07-24

  • Mybatis总结——常见问题解析

    https://img1.sycdn.imooc.com//5d36ec200001946910140594.jpg

    【1】获取自增主键值

    案例描述:一对多新增功能,整个页面一次性提交,后端分别保存主表数据与子表数据,设计表的主键还是自动递增的,否则就不在讨论范围内了,问题的根源是保存主表数据后,需要知道插入这条数据的自增主键值,然后再保存子表数据,因为这个主键值作为子表的外键。

    Mybatis执行insert语句后,获取自增主键值:

    以command表为例,因为command表是一对多关系中的主表,首先插入主表的数据,正常情况下如图1,但是想要获取插入的自增主键值需要使用<insert>标签的useGeneratedKeys属性,把它设置为true,作用是主键采用自动生成,而不是自己指定的主键值。通过<insert>的keyProperty属性Mybatis会获取自动生成的主键,该属性值为填充到映射关系中的哪个属性中,所以为属性名(这样在Command对象传入XML中id是没有值的,当SqlSession调用方法执行完sql以后,这个id属性就有值了并且这个值为新增的主键值)。

    https://img1.sycdn.imooc.com//5d36ee5a0001582a10800144.jpg


    【2】找不到namespace.id的异常效果

    如果不在Mybatis核心配置文件中引入sql的XML文件,或者namespace.id写错都会报该异常,如下图

    https://img1.sycdn.imooc.com//5d36efe00001f0d310850271.jpg

    【3】排查SQL语法错误

    这里可以通过log4j输出的sql语句排查错误(可以把sql语句复制到Navicat中进行验证)。

    https://img1.sycdn.imooc.com//5d36f09a0001bf6910810233.jpg

    【4】不要过度使用${}

    比如做表头排序时会在order by后拼接${},它就像java中用变量拼接字符串一样,有些会习惯写jdbc的代码,直接在java代码里写select...,把它写好后传值给XML,然后XML中直接使用${传进来sql语句字符串},这样的编写风格会出现维护困难,因为这样一部分sql语句在java代码中,一部分语句在XML中。Mybatis提供了把sql语句写在java代码中,这种编写方式称作注解sql,但是这种编写方式很麻烦。

    https://img1.sycdn.imooc.com//5d36f2810001480f10410438.jpg

    【5】乱码问题

    关注文件本身的编码。

    JSP页面设置的编码。

    Servlet接受页面传值时,转换的编码。

    GET请求提交中文参数时,Tomcat里也要进行配置编码。

    除此之外,与数据库进行交互时 ,出现乱码时,应注意以下几处:

    Mybatis核心配置文件里导入数据库的url中指定编码方式。

    https://img1.sycdn.imooc.com//5d36f3d40001f1e107930160.jpghttps://img1.sycdn.imooc.com//5d36f3e30001f1e107930160.jpg

    Mysql安装时,字符集设置应统一。

    https://img1.sycdn.imooc.com//5d36f3ef0001695406660356.jpg





    建立数据库时的编码和建表时的编码。


    https://img1.sycdn.imooc.com//5d36f4400001614e03920295.jpg

    https://img1.sycdn.imooc.com//5d36f44000018c1d04260368.jpg



    查看全部
    0 采集 收起 来源:常见问题解析

    2019-07-26

举报

0/150
提交
取消
课程须知
各位小伙伴们需要有一定Java Web开发基础,至少需要掌握以下内容: 1、JSP、Servlet、JSTL、EL 2、JS/JQUERY 3、JDBC 如果你还是新人,建议先移步网站相关课程,在理解并掌握相关知识之后再回来进修
老师告诉你能学到什么?
1、 Mybatis 的下载与配置 2、 Mybatis 的基本功能应用 3、 融合 Mybatis 的一个完整小案例的实战 4、 Mybatis 的特征总结 5、 Mybatis 常见 QA

微信扫码,参与3人拼团

微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

友情提示:

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