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

通过自动回复机器人学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下载
官方微信
友情提示:

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