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

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

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