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

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

难度中级
时长 4小时30分
学习人数
综合评分9.73
430人评价 查看评价
9.9 内容实用
9.7 简洁易懂
9.6 逻辑清晰
  • 一、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的方式。 【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】
    查看全部
  • 1、注意项目命名规范,用英文命名、不能用全拼; 2、添加合理的注释有助于程序维护; 3、页面放在web-inf下便于控制和管理; 4、通过文件夹合理管理各类文件;
    查看全部
    3 采集 收起 来源:页面跳转

    2015-02-16

  • mybatis动态拼接时,传入参数对应的OGNL表达式的取值写法
    查看全部
  • 在子表类的Sql配置文档的<resultMap>标签下需要添加一个<association>标签来指明当前子表这个类里包含着一个主表类类型的成员变量. 其中<assoication>标签有property、column(可无)、javaType属性、resultMap属性. property属性指明在子表类中的主表类类型的成员变量名. column属性指明数据库中的字段. javaType属性指明主表类的类名. resutlMap属性指明主表类的<resultMap>标签的id属性的属性值. 在<association>标签下有<id>与<result>子标签,他们都有property与column属性.来表明主表类的所有成员变量.或者直接用resultMap属性直接替代,就可以不用写子标签. (在子表的Sql配置文件) <resultMap type="com.imooc.Content" id="Content"> <id column="ID" jdbcType="Integer" property="id"/> <result column="Content" jdbcType="VARCHAR" property="content"/> <result column="CommandId" jdbcType="Integer" property="commandId"/> <association property="command" javaType="com.imooc.Command"> <id column="CID" property="id"/> <result column="name" property="name"/> <result column="description" property="description" /> </association> </resultMap> 等于: <resultMap type="" id=""> <id column="" jdbcType="" property=""/> <result column="" jdbcType="" property=""/> <association property="" resultMap="" /> </resultMap>
    查看全部
  • 如果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提交表单!
    查看全部
  • Mybatis配置文件内容: 1)为避免在整个工程中出现重名的id,所以在配置文件中首先指定命名空间。 2)resultMap对应数据库的一个表。其column属性对应表中字段(或者查询语句中字段的别名),property属性对应实体类中的对应字段。(id表示主键,其余字段用result) 3)具体查询语句的配置中,其parameterType指向一个封装好的类,此类用来获取动态sql的查询条件。其后的resultMap指定查询结果使用哪个类返回,这里就是2中的resultMap的id。
    查看全部
  • 关于输入中文查询然后参数会出现显示??的问题。 在按照条件查询的时候,在查询语句后面添加查询的参数如果是中文,查询语句会显示中文部分为'??',而输入是英文的查询是可以得到结果。 方案如下: 一、将MYSQL编码设置为 utf8_unicode_ci 二、将连接字符串设置成 jdbc:mysql://localhost/myDB?useUnicode=true&characterEncoding=UTF-8
    查看全部
  • 向页面跳转: HttpServletRequest.getRequestDispatcher("jsp页面路路径").forward(HttpServletRequest,HttpServletResponse);
    查看全部
    2 采集 收起 来源:代码重构

    2018-03-22

  • 案例分析 基本功能 接收发送指令 根据指令自动回复对应的内容 模块划分 回复内容列表--->回复维护内容-->对话功能---->回复内容删除
    查看全部
    2 采集 收起 来源:黎明前的黑暗

    2018-03-22

  • 本章主要介绍Mybatis 的下载、基本配置、基本应用以及Mybatis 的特征

    【一】Mybatis官网下载:https://github.com/mybatis/mybatis-3/releases

    mybatis-SNAPSHOT:mybatis快照版,临时开发版本,这里下载开发版本。

    这里需要下载Mybatis源码包,该包中src——>test中有一些参考文件。

    【二】Mybatis配置(Mybatis大部分工作在配置文件中)

    步骤1:导Mybatis包(mybatis-3.3.0.jar)。

    步骤2:Mybatis核心配置文件(可以参照Mybatis源码包中演示代码,只需要修改Configuration.xml中数据库的信息(driver、username、password、url)路径如下图)

    https://img3.sycdn.imooc.com/5d21931500018b4b10680186.jpg

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




    步骤3:读取Mybatis核心配置文件(完成jdbc的操作,这里单独创建一个类提供给Dao层SqlSession)

    【1】:Mybatis提供了解析核心配置文件的方式:

    Reader reader=Resources.getResourceAsReader(“Mybatis核心配置文件路径”);

    【2】:通过配置信息构建SqlSessionFactory

    SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(reader)

    【3】:通过SqlSessionFactory打开数据库会话(SqlSession)。

    SqlSession sqlSession=sqlSessionFactory.openSession();

    https://img2.sycdn.imooc.com/5d219b0f0001650611330400.jpg





    Mybatis相关知识点

    SqlSession介绍:与数据库交互。

    SqlSession作用:

    作用1:向SQL语句传入参数(相当于预处理,设置sql语句中的?,并通过ps.setObject进行预处理)。

    作用2:执行SQL语句

    作用3:获取执行SQL语句的结果

    作用4:事物的控制 

    Mybatis提供给Dao层的SqlSession获取方式:

    1、通过Mybatis核心配置文件获取连接数据库的相关信息。

    2、通过Mybatis配置信息对象构建SqlSessionFactory。

    3、通过SqlSessionFactory打开数据库会话(SqlSession)。


    查看全部
  • <td>
        <a href="#">修改</a>&nbsp;&nbsp;&nbsp;
        <a href="javascript:judgeDelete('<%=basePath%>', ${message.id}, '${command}', '${description}');">删除</a>
        <input type="hidden" id="hiddenId" name="id" />
        <input type="hidden" id="hiddenCommand" name="command" />
        <input type="hidden" id="hiddenDescription" name="description" />
    </td>

    先把jsp内容修改成这样,然后在Body结尾处引入js文件

        <script type="text/javascript" src="<%=basePath%>resources/js/jquery-1.8.0.min.js"></script>
        <script type="text/javascript" src="<%=basePath%>resources/js/deleteOne.js"></script>
    </body>

    下面是deleteOne.js的代码:

    function judgeDelete(basePath,id,command,description){
        if(confirm("确定要删除吗?")) {
            $("#hiddenId").val(id);
            $("#hiddenCommand").val(command);
            $("#hiddenDescription").val(description);
            $("#mainForm").attr("action", basePath + "DeleteOneServlet.action");
            $("#mainForm").submit();
        }
    }


    解释:

    原本老师是通过<a>发出get请求(附带参数id) --> DeleteOneServlet.action

    然后DeleteOneServlet请求转发到List.action,此时command和description参数为空

     -----------

    改:单击<a>,利用Js通过<form>发出post请求 --> DeleteOneServlet.action

    在这个post请求前,偷偷利用Js给几个hidden的input设置值,让它们跟着post一起过去

    接着,DeleteOneServlet再请求转发到List.action,command和description就不会为空了

    查看全部
  • servlet负责接收页面的值和向页面传值。如果有业务逻辑需要处理则调用相应的service。service接收servlet传过来的值,并对其进行处理,做业务的操作,算法等等,如果有需要则调用相应的dao层。dao层完成与数据库的交互,执行相应的SQL语句。 增删改默认按事务处理,Mybatis对事务的控制,默认 是不自动提交的,需要手动提交 sqlSession.commit(); <script type="text/javascript" charset="utf-8" >        //获得动态URL     function getUrl(url){        //获得查询指令名称的值     var command = document.getElementById("command").value;         //获得查询描述的值     var description = document.getElementById("description").value;         //拼接最后的URL地址     var changeUrl = url + "&command=" + command + "&description=" + description;         //跳转页面     window.location.href=changeUrl;     }    </script> 单条删除:<a>用post传值,并弹出确认框 <script type="text/javascript">      function judgeDelete(id)          {               if(confirm("确定要删除吗?"))               {                       window.location.href="DeleteOneServlet.action?id="+id;               }          } </script> <a href="javascript:judgeDelete(${message.id})">删除</a>

    查看全部
  • 使用prepareStatement,对?占位的参数模糊查询 1. %通配符直接写在预准备的sql中,%和?需要使用mysql的字符串拼接(字符串之间用空格分割),例如, String sql = "select name from user where name like %?%";// 错误 String sql = "select name from user where name like '%' ? '%'";// 正确 2. %不写在预准备的sql中,写在要传入参数时 Sting sql = "select name from user where name like ?"; 传参数时:pStmt.setString(1,"%"+pareOfName+"%");
    查看全部
    2 采集 收起 来源:列表查询

    2018-03-22

  • mybatis中的标签作用http://www.mybatis.org/mybatis-3/zh/dynamic-sql.html
    查看全部
    2 采集 收起 来源:常用标签

    2017-10-30

举报

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下载
官方微信
友情提示:

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