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

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

难度中级
时长 4小时30分
学习人数
综合评分9.73
430人评价 查看评价
9.9 内容实用
9.7 简洁易懂
9.6 逻辑清晰
  • 111
    查看全部
  • Mybatis中的OGNL表达式
    查看全部
  • Configuration.xml
    查看全部
  • MyBatis常用标签
    查看全部
    0 采集 收起 来源:常用标签

    2016-09-06

  • 一、获取自增主键值: <insert id="insert" useGeneratedKeys="true" keyProperty="id" parameterType="com.imooc.bean.Command"> insert into command(name,description) values(#{name},#{description}) </insert> //解析:添加数据(在主外键的关系中)可以使用 useGeneratedKeys="true",可获取自增长的id,并配合keyProperty="id"(java中实体类的属性名)指定该对象的主键值。 二、找不到namespace.id的异常效果: 1、在Configuration.xml没有配置<mappers><mapper resource="*.xml"></mapper></mappers>; 2、在1的配置中或selectList("Message.queryMessageList",message);中,名字写错。 三、排查SQL语法错误:如果控制台出现SQL语句问题,复制到SQL软件上执行,若有参数,手动写上并执行。 四、不要过度使用${}。 五、乱码问题: 1. servlet传参时的编码:request.setCharacterEncoding("utf-8");或直接使用过滤器; 2. Java文件本身的编码; 3. 连接数据库的参数中,设定编码方式:jdbc:mysql://192.168.1.1:3306/cms?characterEncoding=utf-8 4. 数据库、表的编码; 5. 展示页面的编码:<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 6. 浏览器编码问题等。
    查看全部
    0 采集 收起 来源:常见问题解析

    2018-03-22

  • 一、resultMap和resultType:当配置resultType时,就不需要配置resultMap,看似resultType方便,但是会被受限制,没有resultMap开放多。 相同点:都是表示查询结果集的类型。 不同点:resultMap需要手动配置映射关系,而resultType是直接指定java类型或者自定义的实体类型,查询结果集的列名必须和实体属性名称一致(实体类:名称大小写可以忽略;java类型,如Map集合的key大小写要一致,尽量都大小写规范,如果不放心可以select ID id,...)。 优缺点: 1、resultType结果集列名要与java属性名一样,但是resultMap不受限制,因为resultMap有column来规定。 2、由于SQL类型与Java中类型部分不匹配,resultMap可以通过typeHandler=""来匹配(如:SQL中的0和1来表示java中的false和true;Date类型的转换),但是resultType无能为力。 二、parameterMap和patameterType: 表示传入参数的对应关系,前者不推荐使用,只是mybatis为了适应以前的版本。 提示:看到Map字眼的想到映射关系,看到Type字眼的想到类型。 三、#{}和${}: 相同点:都是用来作为占位符。 不同点:#{}在预编译的时候会呗替换为?,而${}在预编译的时候直接将变量的值替换进去,而且没有引号(所以还要加上“'${...}'”),故一般都是用前者,个别情况会使用后者:如需进行排序,且排序字段为参数时可以使用${}(order by后面不喜欢被预编译,所以使用${}更为恰当)。 四、#{}和ognl:在#{}中如果是基本类型,其中的名称可以随便写(不推荐),但一般都用_parameter,因为值唯一,而ognl中必须写成_parameter的方式
    查看全部
  • Ps1: <where><if test=""></if>...</where>标签相当于“where 1=1 and...”,<where>标签和where 1=1不可共存,两者取其一即可。 Ps2: <select> select <include refid="columns"></include> from command </select> <sql id="columns">a.id C_ID,b.id,b.commandId</sql> //作用:增强了维护性,减少代码复用。 Ps3: //解析:<trim>标签在<select>/<update>等内使用。prefix在sql语句最前面加上,suffix在sql语句最后面加上,去掉sql语句最前面prefixOverrides,去掉sql语句最后面suffixOverrides。 <trim prefix="where" suffix="test" prefixOverrides="andor" suffixOverrides=","> //sql语句 </trim> 提示:prefix="where" prefixOverrides="andor"等价于<where>;prefix="set" suffixOverrides=","等价于<set>。 Ps4: <choose> <when test=""></when> <when test=""></when> <otherwise></otherwise> </choose> 理解1:if—else if—else 理解2:switch—case—case—default Ps5: <collection property="主实体类中的List<子实体类>的对象名" resultMap="子xml中mapper中属性namespace名.resultMap的id名"/>//这条语句写在主xml<resultMap>中。 <association property="子实体类中的主实体类的对象名" resultMap="主xml中mapper中属性namespace名.resultMap的id名"/>//这条语句写在子xml<resultMap>中。
    查看全部
    0 采集 收起 来源:常用标签

    2018-03-22

  • 如何在xml的配置文件中反应表结构之间的对应关系呢? 在java中,通过主表的实体类中包含子表的集合来反应一对多的关系,在配置文件中同样是通过集合来配置这种关系的。在主表的映射文件中使用<collection>标签来指定子表的对应关系以及子表的引用,使用resultMap属性来指定子表映射关系的文件,格式是namespace.子表对应关系的id。那么新的问题来了,主表中的id与子表中的id,同时映射到结果集resultMap就会产生问题,所以就需要给任意一个id起一个别名。注意:给表起别名,以及字段的引用,打印出的结果是不包含表名的,比如说 a.id,打印出的结果是没有a的,所以a.id与b.id映射的都是一个属性,所以给字段起一个别名,那么字段名就会改变,配置映射文件的时候,注意数据库字段与java实体类的属性的对应关系。
    查看全部
  • 如果js中Dom对象的值为 ""、null、undefined、0;则if(Dom对象)为false 点击按钮提交请求,判断字符串不为空的话,执行ajax请求。 ajax复习: url:请求后台的路径 type:提交方式 dataType:数据类型 timeout:超时时间 success:成功后的回调函数,函数中的内容是对服务端传递的数据进行处理。 data:请求参数
    查看全部
  • Connection为何不需要commit();因为conn.setAutoCommit(true);设置为自动提交,而我们MyBatis把它封装后,setAutoCommit(false);所以需要手动提交事务。 Ps1:a href="#" 这个在html中有什么作用?跳转到本页面顶部,一般建议写成javascript:void(0);要好一点,点了一点反应都没有,写#点了会跳一下的。 Ps2:servlet拿到什么数据类型就什么类型,至于service不一致时,再service里面去修改,这也是service作用之一。 Ps3:MyEclipse对JS等文件报错处理:http://jingyan.baidu.com/article/ca41422fe094251eae99ede7.html Ps4: /** * 调用后台批量删除方法 */ function deleteBatch(basePath){ $("#mainForm").attr("action",basePath+"DeleteBatchServlet.action"); $("#mainForm").submit(); } 解析:将id为mainForm的表单的action提交路径改为basePath+"DeleteBatchServlet.action"这个并且执行submit提交表单!
    查看全部
  • Ps1: servlet负责接收页面的值和向页面传值。如果有业务逻辑需要处理则调用相应的service; service接收servlet传过来的值,并对其进行处理,做业务的操作,算法等等,如果有需要则调用相应的dao层; dao层完成与数据库的交互,执行相应的SQL语句。 Ps2:basePath后面默认有个“/”。 Ps3: <servlet-mapping><br> <servlet-name>...</servlet-name> <url-pattern>/Servlet.action</url-pattern>//推荐使用这种方式,不推荐使用带“/”方式,因为跳转的时候需要处理。这样一来可以避免这个处理问题。 </servlet-mapping> Ps4:增删改与查询不一样,MyBatis查询默认有事务提交,但增删改需要手动提交事务。sqlSession.commit();
    查看全部
  • log4j.properties说明: 1.debug:输出的级别(为大于等于配置的级别,分别有四个级别(由小到大):debug、info、warning、error),Console输出端的名称(可以“自定义名称”,但是下面的appender.“自定义名称”一致)。 2.输出到控制台。 3.布局。 4.输出格式:%d产生时间,%t线程,%p日志级别(“-”号,空格在最右边(左对齐),去掉“-”号,空格在最左边(右对齐);5:至少占位5个位置),%c日志打印的类,%m输出内容,%n换行。 5.org.apache:该包下的日志级别,第一行是针对所有的日志定义的级别。
    查看全部
  • OGNL表达式支持直接调用java对象的方法 ognl表达式的逻辑表达式需要转义如“&”需要转义为“&amp;”或者用“and”替换,“"”转义为“&quot;” 传参使用#{参数名}
    查看全部
  • Mybatis总的OGNL表达式之二:
    查看全部
  • Mybatis中的OGNL表达式之一
    查看全部

举报

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
您的移动学习伙伴

公众号

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

友情提示:

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