-
Mybatis中的OGNL表达式查看全部
-
Mybatis的SqlSession查看全部
-
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>查看全部
-
OGNL表达式标签查看全部
-
where 1=1是什么意思 啊,有意义吗查看全部
-
应用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,则比该级别高的信息都会输出查看全部
-
<!-- 配置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=&& “”="" ?号的处理是#{查询的属性}--> <if test="command != null and !"".equals(command.trim())"> and COMMAND=#{command} </if> <!-- 这里是模糊匹配,使用模糊匹配的话必须用'%'将传参包起来 --> <if test="description != null and !"".equals(description.trim())"> and DESCRIPTION like '%' #{description} '%' </if>查看全部
-
标签内容查看全部
-
Mybatis配置文件内容: 1)为避免在整个工程中出现重名的id,所以在配置文件中首先指定命名空间。 2)resultMap对应数据库的一个表。其column属性对应表中字段(或者查询语句中字段的别名),property属性对应实体类中的对应字段。(id表示主键,其余字段用result) 3)具体查询语句的配置中,其parameterType指向一个封装好的类,此类用来获取动态sql的查询条件。其后的resultMap指定查询结果使用哪个类返回,这里就是2中的resultMap的id。查看全部
-
sqlsession调用 方法来执行 sql语句 只是输入了select标签的名字,但是并没有输入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对应得实后台数据库除了主键以外的其他字段。查看全部
-
SqlSession查看全部
-
Ps1:配置文件的详细路径:src/test/java/org/apache/ibatis/submiited/complex_property/Configuration.xml Ps2:小技巧:粘贴类名,再粘贴对象名,改大小写即可。 Ps3:顺序(从底层往高层):实体类-->Dao-->Service-->Servlet-->页面。 Ps4:数据库服务启动即可,无需登录数据库操作软件。 Ps5:Dao层一般与表(实体类)相关,命名一般在实体类名+“Dao”即可;Service层命名一般与Servlet命名对应。 【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】 //通过配置文件获取数据库连接信息 Reader reader=Resources.getResourceAsReaser("config/Configuration.xml"); //通过配置信息构建一个sqlSessinfactory SqlSessionFactory sqlSessionFactory=new SqlSessionfactoryBuilder(reader); //通过sqlSessionFactory打开一个数据库回话 SqlSession sqlsession=sqlSessionFactory.openSession();查看全部
-
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。查看全部
-
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/150
提交
取消