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

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

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

    执行sql语句

    获取结果并封装结果信息

    返回结果

    查看全部
  • OGNL表达式

    查看全部
  • OGNL表达式

    查看全部
  • 啊三妻四妾

    查看全部
  • Mybatis常用标签

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

    2018-05-13

  • var content;

    //content 为‘’    null     undeifend    0时,if(content) 意为 if(false)

    查看全部
  • mybatis的下载地址:https://github.com/mybatis/mybatis-3/releases如何分层,为什么要分层。一个servlet类包含了太多代码,把数据库相关表操作放到了dao层,把业务相关操作放到了service层,service层依赖dao层的对象,这里是直接new出来,如果采用spring框架,可以通过依赖注入dao的对象。servlet依赖service对象,一样是new的,不过这样分层不同功能的代码就分出去了。servlet作为一个控制类,基本做这几样事情:一些配置,例如设置编码,这部分重复工作可以通过过滤器统一处理。获取请求参数,当然也可以通过过滤器处理,这也是其他一些mvc框架,例如struts,springmv要做的数据绑定功能,然后是调用业务类处理业务,一个项目主要就是在写业务了。最后就是跳转页面。所以servlet应该只做控制的事情

    查看全部
  • 应该专门设置一个类,专门来获取SqlSession对象. 如果是路径的话就不能写点,都用/代替. public SqlSession getSqlSession(){    //读取配置文件 Reader reader=Resources.getResourceAsReader("配置文件所在路径"); //构造SqlSessionFactory对象     SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(reader);     //通过会话工厂打开会话     SqlSession sqlSession=sqlSessionFactory.openSession();     return sqlSession; } SqlSession用完也需要关闭. 异常中的finally子句: finally可以没有,也可以只有一个.无论有没有发生异常,它总会在这个异常处理结构的最后运行.即使你在try块内用return返回了,在返回前finally总是要执行,这以便让你有机会能够在异常处理最后做一些清理工作.如关闭数据库连接等等.


    Mybatis之SqlSession(核心) SqlSession的作用: 1、向 SQL 语句传入参数 2、执行SQL语句 3、获取执行SQL语句的结果 4、事务的控制 如何得到SqlSession: 1、通过配置文件获取数据库连接相关信息 2、通过配置信息构建SqlSessionFactory 3、通过SqlSessionFactory打开数据库会话 //通过配置文件获取数据库连接信息 Reader reader=Resources.getResourceAsReaser("config/Configuration.xml"); //通过配置信息构建一个sqlSessinfactory SqlSessionFactory sqlSessionFactory=new SqlSessionfactoryBuilder(reader); //通过sqlSessionFactory打开一个数据库回话 SqlSession sqlsession=sqlSessionFactory.openSession();

    查看全部
  • 在Dao层中封装了与数据库有关的操作,在service层调用Dao层来处理业务逻辑,在servlet中调用service层中的对象来得到处理的结果,并且返回给页面 * servlet的几个功能<br> * 1.接受页面的值<br> * 2.向页面传值<br> * 3.(根据业务需要,调用service)<br> * 4.跳转页面


    各个层的功能 Model: 数据表对应的模型; DAO:每个表对应一个DAO,对该表的一些操作。 Service:或Logic层,跟Servlet对应,一些相关的业务功能。 Servlet: 设置编码/过滤器;接受页面的值;向页面传值;业务需要调用service;跳转页面。 ps: 1,jsp页面传值可以使用超链接形式为:地址?参数=要传的值! 2,servlet总采用request.getParameter("参数”)接收; 3,jdbc中对占位符?的复制采用setInt(index,参数)的方式index代表第几个?。

    查看全部
    0 采集 收起 来源:代码重构

    2018-05-10

  • Trim  Trim()   功能删除字符串首部和尾部的空格。   语法Trim ( string )   参数string:string类型,指定要删除首部和尾部空格的字符串返回值String。函数执行成功时返回删除了string字符串首部和尾部空格的字符串,发生错误时返回空字符串("")。如果任何参数的值为NULL,Trim()函数返回NULL。


    String 字符串常量 StringBuffer 字符串变量(线程安全) StringBuilder 字符串变量(非线程安全) 简要的说, String 类型和 StringBuffer 类型的主要性能区别其实在于 String 是不可变的对象, 因此在每次对 String 类型进行改变的时候其实都等同于生成了一个新的 String 对象,然后将指针指向新的 String 对象,所以经常改变内容的字符串最好不要用 String ,因为每次生成对象都会对系统性能产生影响,特别当内存中无引用对象多了以后, JVM 的 GC 就会开始工作,那速度是一定会相当慢的。 在大部分情况下 StringBuilder > StringBuffer

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

    2018-05-10

  • @关键代码(技巧): StringBuilder sql=new StringBuilder(" select ID,COMMAND,DESCRIPTION,CONTENT from message where 1=1 "); List<String> paramList=new ArrayList<String>(); if(command!=null&&!"".equals(command.trim())){ sql.append(" and COMMAND=? "); paramList.add(command); } if(description!=null&&!"".equals(description.trim())){ sql.append(" and DESCRIPTION like '%' ? '%' ");//MySql语法:'%'空格?空格'%' paramList.add(description); } PreparedStatement pstmt=conn.prepareStatement(sql.toString()); for(int i=0;i<paramList.size();i++){ pstmt.setString(i+1,paramList.get(i)); } ResultSet rs=pstmt.executeQuery(); 注意1:PreparedStatement语句要在sql语句还没准备好后面,但要在循环前面。 注意2:为何不直接在if语句后写“?”的内容呢?因为不知道问号序号是多少,不好控制。 Ps1:Tomcat启动一般用Debug,只要不要设置断点,效果与Run是一样的,这样一来,如果想调试就设置断点即可,不需要再切换到Debug模式(Ps:Debug模式下,修改Java代码会自动上传到服务器,无需重新启动Tomcat) Ps2:sql+="";//这样写不好,因为原来的字符串占用内存还在,推荐使用StringBuffer、StringBuilder。



    List<Message> messageList=new ArrayList<Message>(); while(rs.next()){ Message message=new Message(); messageList.add(message); message.setId(rs.getString("ID")); ... } 注意:先放数据,再添加到容器;或者先添加到容器,再放数据。都是一样的,因为它放进去是引用类型,并不是对象本身。 select * from...//1 select id,name,...(所有列名) from...//2 注意:2的效率和安全性比1要高。 Ps1: Alt+Shift+J:自动添加类的文档注释。 Ctrl+Shift+Y:大写转小写 Ctrl+Shift+X:小写转大写 Ps2:varStatus=""中变量名支持自定义。

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

    2018-05-10

  • 1.载入JSTL中的c标签:<%@ taglib prefix="c" uri="http://java.sum.com/jsp/jstl/core" %> 2.利用c标签来进行foreach循环和if判断 <c:forEach items="${messageList}" var="message" varStatus="status"><!-- varSatus属性,可以通过其属性值获取到本次循环的状态,如其中的index可以获取循环的次数(从0开始),可配合if标签做隔行换色的效果 --> <tr <c:if test="${status.index % 2 != 0}">style='background-color:#ECF6EE;'</c:if>> <td><input type="checkbox" name="id" value="${message.id}"/></td> <td>${status.index + 1}</td> <td>${message.command}</td> <td>${message.description}</td> <td> </c:forEach>

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

    2018-05-10

  • //加载驱动,连数据库 Class.forName("com.mysql.jdbc.Driver"); Connection conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/message","root","123123");   //操作数据库并声明 String sql = "select ID ,COMMAND,DESCRIPTION,CONTENT from MESSAGE"; PreparedStatement statement = conn.prepareStatement(sql.toString()); //查询数据库 ResultSet rs = statement.executeQuery(); //查询结果放在一个集合中 List<Message> messageList = new ArrayList<Message>(); while(rs.next()) {   Message message = new Message(); messageList.add(message); message.setId(rs.getString("ID")); message.setCommand(rs.getString("COMMAND")); message.setDescription(rs.getString("DESCRIPTION")); message.setContent(rs.getString("CONTENT")); } //向页面传值 req.setAttribute("messageList", messageList); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { } //跳转 req.getRequestDispatcher("/WEB-INF/jsp/back/list.jsp").forward(req, resp); }


    alt+shift+j 自动加载类的注释

    查看全部
    0 采集 收起 来源:数据库连接

    2018-05-10

  • 文件在WebRoot目录下就相当于在工程项目下 1.凡是写在WebRoot文件夹中的jsp文件,必须通过后台的servlet才能访问到, 如果只是在地址栏中输入,是无法访问到的 (也就是说我们可以直接不用加Web-Root就可以访问到在此文件夹下的直接文件如:Index.jsp) (以MicroMessage这个项目为例:) 2.jsp中的basePath的值是:http://localhost:8080/MicroMessage/ 3.jsp中的path的值是:/MicroMessage 4.在servlet中: request.getRequestDispatcher("/WEB-INF/jsp/back/list.jsp").forward( request, response); 这里的/代表的是项目的根目录,所以不用加上Web-Root,就像我们访问index.jsp不用加上 Web-Root一样

    查看全部
    0 采集 收起 来源:页面跳转

    2018-05-10

  • 案例分析 基本功能 接收发送指令 根据指令自动回复对应的内容 模块划分 回复内容列表--->回复维护内容-->对话功能---->回复内容删除

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

    2018-05-10

举报

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

公众号

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

友情提示:

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