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

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

难度中级
时长 4小时30分
学习人数
综合评分9.73
430人评价 查看评价
9.9 内容实用
9.7 简洁易懂
9.6 逻辑清晰
  • sqlsession调用 方法来执行 sql语句 只是输入了select标签的id名字,但是并没有输入sql配置文件的uri,所以要在数据库连接的核心配置文件中 导入 sql配置文件,即<mappers>标签与子标签<mapper> sqlsession调用时会用到这个名字 resultmap属性。对应的是resultmap标签的id mybatis配置文件中的mapper标签 属性是namespace 翻译是命名空间 mapper标签内包含 resultmap标签 是执行完查询语句后返回的结果集 resultmap有子标签 id。 用来配置 有主键约束的行 和result。 用来配置其他行 并列关系 ,都有属性column jdbctype property属性 column看名字 就是数据库的字段名 properry 是数据库对应dao类中的属性 select标签 insert标签 update标签。这些标签里写的都是sql语句 resultMap 中id是标识,是唯一的。resultMap中的子标签中的id表示后台数据库的主键,而result对应的是后台数据库除了主键以外的其他字段。
    查看全部
  • 配置文件的详细路径:src/test/java/org/apache/ibatis/submiited/complex_property/Configuration.xml //通过配置文件获取数据库连接信息 Reader reader = Resources.getResourceAsReader("config/Configuration.xml"); //通过配置信息构建一个SqlSessionFactory SqlSessionFactory sqlSessionFactory = new SqlSessioFactoryBuilder.build(reader); //通过sqlSessionFactory打开一个数据库会话 SqlSession sqlSession = sqlSeesionFactory.openSession();
    查看全部
  • 在Dao层中封装了与数据库有关的操作,在service层调用Dao层来处理业务逻辑,在servlet中调用service层中的对象来得到处理的结果,并且返回给页面 * servlet的几个功能<br> * 1.接受页面的值<br> * 2.向页面传值<br> * 3.(根据业务需要,调用service)<br> * 4.跳转页面
    查看全部
    0 采集 收起 来源:代码重构

    2018-03-22

  • Ctrl Shift y 大写换小写 Ctrl Shift j 添加注释
    查看全部
    0 采集 收起 来源:数据库连接

    2017-01-30

  • JDBC的写法: //加载驱动,连数据库 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); }
    查看全部
    0 采集 收起 来源:数据库连接

    2018-03-22

  • 把*号换成列名可以提高查询效率
    查看全部
    0 采集 收起 来源:数据库连接

    2017-01-30

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

    2017-01-26

  • 一对多关系的配置 //CommandService.java /** * 根据指令查询消息列表 */ public String queryByCommand(String command){ CommandDao commandDao=new CommandDao(); List<Command> commandList=new ArrayList<Command>(); if(Iconst.HELP_COMMAND.equals(command)){ StringBuffer result=new StringBuffer(); commandList=commandDao.queryCommandList(null, null); for (int i = 0; i < commandList.size(); i++) { if(1!=0){ result.append("<br/>"); } result.append("回复["+ commandList.get(i).getName() + "]可以查看"+commandList.get(i).getDescription()); } return result.toString(); } commandList=commandDao.queryCommandList(command, null); if(commandList.size()>0){ /** * 随机获取一条内容 */ List<CommandContent> contentList=commandList.get(0).getContentList(); int i=new Random().nextInt(contentList.size()); return contentList.get(i).getContent(); } return Iconst.NO_MATCHING_CONTENT; }
    查看全部
  • 在子表类的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>
    查看全部
  • 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提交表单!
    查看全部
  • 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>
    查看全部
  • 应用log4j(日志)调试动态SQL: 1、jar包和配置文件 2、log4j.properties <1>log4j.rootLogger=DEBUG,Console:输出级别(级别<由低到高>debug/info/warn/error)和输出位置(控制台) <2>log4j.appender.Console=org.apache.log4j.ConsoleAppender:配置这个类才会输出在控制台(可在别处) <3>log4j.appender.layout=org.apache.log4j.PatternLayout:布局(按照自己的想法去输出)<4>log4j.appender.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n: %d:产生日志的时间 [%t]:产生日志所处线程的线程名称 %-5p:输出日志的级别、 "5":代表输出的字符会占5位字符,不足则会用空格补齐; "-":指的是补齐的空格在右边,没有则在左边. [%c]:指输出这个日志时处于的那个类的全名,包括包名 %m:输出的时候附加的信息 %n输出换行 <5>log4j.logger.org.apache=INFO:为不同包配不同的级别,把总的覆盖,可看到自己想看的信息 log4j配置详解 一、log4j.rootLogger=INFO, stdout, R 第一个参数为等级,后面可跟一到多个参数,为输出的位置; 例句的意思为将等级为INFO的日志信息使用stdout和R进行输出,stdout和R可以自己命名; 等级可分为OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL,OFF是关闭,不输出任何信息,其他级别按这个顺序依次降低,如果 指定一个级别,如INFO,则比该级别高的信息都会输出
    查看全部
  • Mapping.xml常用标签
    查看全部
    0 采集 收起 来源:常用标签

    2017-01-21

  • <!-- 配置sql语言,查询语言,ID+ namespace="Message"为唯一的标识符 这里的parameterType请注意,拼接的sql语句的属性可以是一个string 类型的, 多个必须封装起来例如bean层调用时是她所在的包 一个 --> <select id="queryMessageList" parameterType="com.imooc.bean.Message" resultMap="MessageResult"> select ID,COMMAND,DESCRIPTION,CONTENT from MESSAGE <where> <!-- 我在此处开始使用mybatis的动态拼接了,用的是ognl的表达式,&&=and=&amp;&amp; “”=&quot;&quot; ?号的处理是#{查询的属性}--> <if test="command != null and !&quot;&quot;.equals(command.trim())"> and COMMAND=#{command} </if> <!-- 这里是模糊匹配,使用模糊匹配的话必须用'%'将传参包起来 --> <if test="description != null and !&quot;&quot;.equals(description.trim())"> and DESCRIPTION like '%' #{description} '%' </if
    查看全部
  • 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下载
官方微信
友情提示:

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