Struts+ibatis-学习总结二
2017-05-19 15:35
441 查看
1封装json
在Action中以传统方式输出JSON数据
这一点跟传统的Servlet的处理方式基本上一模一样,代码如下
Java代码
struts.xml中的配置:
Java代码
注意:这个action没有result,且doAction方法没有返回值!
在Action中以Struts2的方式输出JSON数据
本着“不重复发明轮子”的原则,我们将转换JSON数据的工作交给Struts2来做,那么相对于在Action中以传统方式输出JSON不同的是,Action是需要将注意力放在业务处理上,而无需关心处理结果是如何被转换成JSON被返回客户端的——这些 工作通过简单的配置,Struts2会帮我们做的更好。
Java代码
struts.xml中action的配置:
Java代码
凡是使用Struts2序列化对象到JSON的action,所在的package必须继承自json-default,注意,这里唯一的result,没有指定name属性。
2 sql server分页查询
SELECT A.*
FROM(select *, ROW_NUMBER() over(order by ID) as rows from MyHz.dbo.NCParameterMod)A where A.rows>=5;
3自增长的id重新排列
数据库中把ID自增长重置成1:
一般做法:(太麻烦)
复制表数据->删除原表、新建一张表->粘贴;
新方法一:
数据库中:新建查询->复制、粘贴一下代码->修改表名,执行即可(先把表数据清空);
DBCC CHECKIDENT ('表名', RESEED, 0)
新方法二:
TRUNCATE TABLE 表名
来源:http://blog.csdn.net/u013816709/article/details/26245907
SQLSERVER的最大连接数
如何查看SQLServer的最大连接数?相信很多人对个很有兴趣,一下就给出两种方法:
1. 查询服务器属性
默认服务设置为0(表示不受限制)。
2. SQL查看最大连接数
这里的32767就是服务器的最大连接数了。
如果你想自己设置服务器的最大连接数,可以使用以下SQL
?
参考:http://www.cnblogs.com/rainnight/archive/2013/12/18/3480122.html
异常处理
异常又分为 局部异常处理 和 全局异常处理
在struts.xml中声明捕捉异常,使其转成自定义错误提示界面
局部异常处理,定义在action标签内:
struts.xml
[html] view plain copy
print?
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<package name="struts2" extends="struts-default">
<!-- name="login" 这个名字可以自己定义 要和 提交表单的那个action名字一致 -->
<action name="login" class="com.struts2.LoginAction">
<!-- 局部 异常处理 -->
<exception-mapping result="myexception1"
exception="com.exception.MyException">
</exception-mapping>
<!-- 异常跳转的界面 -->
<result name="myexception1">/error.jsp</result>
<!-- name="success"
这个名字要和LoginAction.java 的 execute() 方法的返回值一致
-->
<result name="success">/result.jsp</result>
</action>
</package>
</struts>
struts.xml
[html] view plain copy
print?
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<package name="struts2" extends="struts-default">
<!-- 全局 异常处理 -->
<global-results>
<result name="myexception1">/error.jsp</result>
</global-results>
<global-exception-mappings>
<exception-mapping result="myexception1"
exception="com.exception.MyException">
</exception-mapping>
</global-exception-mappings>
<!-- name="login" 这个名字可以自己定义 要和 提交表单的那个action名字一致 -->
<action name="login" class="com.struts2.LoginAction">
<!-- name="success"
这个名字要和LoginAction.java 的 execute() 方法的返回值一致
-->
<result name="success">/result.jsp</result>
</action>
</package>
</struts>
4.错误页面error.jsp,
[html] view plain copy
print?
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<html>
<body>
<!-- 这个exception 是 exception="com.exception.MyException" -->
<s:property value="exception.message"/>
</body>
</html>
自定义一个异常,该异常继承Exception父类
[java] view plain copy
print?
package com.exception ;
//自定义异常
public class MyException extends Exception {
private String message;
public MyException(String message)
{
super(message);
this.message = message ;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
}
来源:http://blog.csdn.net/hzc543806053/article/details/7493268
打印日志、sql语句
配置log4j.properties文件,copy如下代码:
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n
log4j.logger.com.ibatis=debug
log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=debug
log4j.logger.com.ibatis.common.jdbc.ScriptRunner=debug
log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=debug
log4j.logger.Java.sql.Connection=debug
log4j.logger.java.sql.Statement=debug
log4j.logger.java.sql.PreparedStatement=debug,stdout
记得加入jar包,common-logging.jar ; log4j.jar,
修改项目名称
右键-重命名 这并不能修改发布的项目名称,需要继续以下操作:
最后保存即可
在Action中以传统方式输出JSON数据
这一点跟传统的Servlet的处理方式基本上一模一样,代码如下
Java代码
public void doAction() throws IOException{ HttpServletResponse response=ServletActionContext.getResponse(); //以下代码从JSON.java中拷过来的 response.setContentType("text/html"); PrintWriter out; out = response.getWriter(); //将要被返回到客户端的对象 User user=new User(); user.setId("123"); user.setName("JSONActionGeneral"); user.setPassword("JSON"); user.setSay("Hello , i am a action to print a json!"); JSONObject json=new JSONObject(); json.accumulate("success", true); json.accumulate("user", user); out.println(json.toString()); // 因为JSON数据在传递过程中是以普通字符串形式传递的,所以我们也可以手动拼接符合JSON语法规范的字符串输出到客户端 // 以下这两句的作用与38-46行代码的作用是一样的,将向客户端返回一个User对象,和一个success字段 // String jsonString="{\"user\":{\"id\":\"123\",\"name\":\"JSONActionGeneral\",\"say\":\"Hello , i am a action to print a json!\",\"password\":\"JSON\"},\"success\":true}"; // out.println(jsonString); out.flush(); out.close(); }
struts.xml中的配置:
Java代码
<package name="default" extends="struts-default" namespace="/"> <action name="testJSONFromActionByGeneral" class="cn.ysh.studio.struts2.json.demo.action.UserAction" method="doAction"> </action> </package>
注意:这个action没有result,且doAction方法没有返回值!
在Action中以Struts2的方式输出JSON数据
本着“不重复发明轮子”的原则,我们将转换JSON数据的工作交给Struts2来做,那么相对于在Action中以传统方式输出JSON不同的是,Action是需要将注意力放在业务处理上,而无需关心处理结果是如何被转换成JSON被返回客户端的——这些 工作通过简单的配置,Struts2会帮我们做的更好。
Java代码
public String testByAction() { // dataMap中的数据将会被Struts2转换成JSON字符串,所以这里要先清空其中的数据 dataMap.clear(); User user = new User(); user.setId("123"); user.setName("JSONActionStruts2"); user.setPassword("123"); user.setSay("Hello world !"); dataMap.put("user", user); // 放入一个是否操作成功的标识 dataMap.put("success", true); // 返回结果 return SUCCESS; }
struts.xml中action的配置:
Java代码
<package name="json" extends="json-default" namespace="/test"> <action name="testByAction" class="cn.ysh.studio.struts2.json.demo.action.UserAction" method="testByAction"> <result type="json"> <!-- 这里指定将被Struts2序列化的属性,该属性在action中必须有对应的getter方法 --> <param name="root">dataMap</param> </result> </action> </package>
凡是使用Struts2序列化对象到JSON的action,所在的package必须继承自json-default,注意,这里唯一的result,没有指定name属性。
2 sql server分页查询
SELECT A.*
FROM(select *, ROW_NUMBER() over(order by ID) as rows from MyHz.dbo.NCParameterMod)A where A.rows>=5;
3自增长的id重新排列
数据库中把ID自增长重置成1:
一般做法:(太麻烦)
复制表数据->删除原表、新建一张表->粘贴;
新方法一:
数据库中:新建查询->复制、粘贴一下代码->修改表名,执行即可(先把表数据清空);
DBCC CHECKIDENT ('表名', RESEED, 0)
新方法二:
TRUNCATE TABLE 表名
来源:http://blog.csdn.net/u013816709/article/details/26245907
SQLSERVER的最大连接数
如何查看SQLServer的最大连接数?相信很多人对个很有兴趣,一下就给出两种方法:
1. 查询服务器属性
默认服务设置为0(表示不受限制)。
2. SQL查看最大连接数
这里的32767就是服务器的最大连接数了。
如果你想自己设置服务器的最大连接数,可以使用以下SQL
?
异常处理
异常又分为 局部异常处理 和 全局异常处理
在struts.xml中声明捕捉异常,使其转成自定义错误提示界面
局部异常处理,定义在action标签内:
struts.xml
[html] view plain copy
print?
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<package name="struts2" extends="struts-default">
<!-- name="login" 这个名字可以自己定义 要和 提交表单的那个action名字一致 -->
<action name="login" class="com.struts2.LoginAction">
<!-- 局部 异常处理 -->
<exception-mapping result="myexception1"
exception="com.exception.MyException">
</exception-mapping>
<!-- 异常跳转的界面 -->
<result name="myexception1">/error.jsp</result>
<!-- name="success"
这个名字要和LoginAction.java 的 execute() 方法的返回值一致
-->
<result name="success">/result.jsp</result>
</action>
</package>
</struts>
全局异常处理,定义在action标签外:
struts.xml
[html] view plain copy
print?
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<package name="struts2" extends="struts-default">
<!-- 全局 异常处理 -->
<global-results>
<result name="myexception1">/error.jsp</result>
</global-results>
<global-exception-mappings>
<exception-mapping result="myexception1"
exception="com.exception.MyException">
</exception-mapping>
</global-exception-mappings>
<!-- name="login" 这个名字可以自己定义 要和 提交表单的那个action名字一致 -->
<action name="login" class="com.struts2.LoginAction">
<!-- name="success"
这个名字要和LoginAction.java 的 execute() 方法的返回值一致
-->
<result name="success">/result.jsp</result>
</action>
</package>
</struts>
4.错误页面error.jsp,
[html] view plain copy
print?
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<html>
<body>
<!-- 这个exception 是 exception="com.exception.MyException" -->
<s:property value="exception.message"/>
</body>
</html>
</struts>
自定义一个异常,该异常继承Exception父类
[java] view plain copy
print?
package com.exception ;
//自定义异常
public class MyException extends Exception {
private String message;
public MyException(String message)
{
super(message);
this.message = message ;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
}
来源:http://blog.csdn.net/hzc543806053/article/details/7493268
打印日志、sql语句
配置log4j.properties文件,copy如下代码:
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n
log4j.logger.com.ibatis=debug
log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=debug
log4j.logger.com.ibatis.common.jdbc.ScriptRunner=debug
log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=debug
log4j.logger.Java.sql.Connection=debug
log4j.logger.java.sql.Statement=debug
log4j.logger.java.sql.PreparedStatement=debug,stdout
记得加入jar包,common-logging.jar ; log4j.jar,
修改项目名称
右键-重命名 这并不能修改发布的项目名称,需要继续以下操作:
最后保存即可
相关文章推荐
- Struts+ibatis-学习总结一
- IBatis学习总结
- IBatis学习总结
- ibatis学习总结
- Ibatis学习总结3--SQL Map XML 映射文件
- Ibatis学习总结2--SQL Map XML 配置文件
- iBatis2学习笔记:SqlMap的配置总结(18条)
- Ibatis学习总结7--SqlMapClient 执行 SQL 语句
- Ibatis学习总结之一对多、多对一的对应关系
- IBatis学习总结之动态拼sql
- Ibatis学习总结
- Ibatis学习总结5--动态 Mapped Statement
- 传智播客JAVA培训2010614 ibatis学习总结
- ibatis入门和学习总结
- iBatis2学习笔记:总结与思考
- iBatis2学习笔记:SqlMap 的配置总结(18条)
- 最近在学习ibatis。感觉还行。。。所以现在总结总结下
- Ibatis学习总结+ibatis与hibernate简单比较+示例
- iBatis2学习笔记:SqlMap的配置总结(18条)
- Ibatis学习总结6--使用 SQL Map API 编程