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

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

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