草包书生

__javadeveloper Email:roose2008@gmail.com QQ:79212131

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::

最新评论

共2页: 1 2 下一页 
投票了,但是我想看看这个系统是个什么样子的,怎么看呢
四川理工学院,哈,在我老家的朋友,帮你投一票!
@即兴的灵感
我看了还可以,大家都来帮帮忙吧
别那么见外,我们能在这里相遇就很不容易了.有困难这里都是自己人.会尽量帮助你的
re: 三字经全解 傅金林 2008-11-21 21:45  
留给你个Email,帮我发过来吧(wwwjiji@yeah.net),谢谢!
re: 三字经全解 王艳萍 2008-11-13 11:55  
@草包书生

能不能把全部的也发给我...拜谢
wyp_ang@163.com
re: mysql奇怪现象 草包书生 2008-11-06 14:47  
原来是这样,谢谢了
re: mysql奇怪现象 HEDY 2008-11-06 14:15  
字符串值在标准sql中都要用单引号引起来的,像有些sql开发工具它在解析的时候会自动帮你加上,但不加引号的语句本身是错误的。
re: mysql奇怪现象 工 2008-11-06 13:44  
字符串要用引号引起来。这才是正确的。
查询第M行到第N行的问题,可以试试以下的查询语句:
select 列名,[列名]..
from (select rownum rn, 列名,[列名]..
from(select 列名,[列名]...
from table_name
order by id
)
where rownum <= N

)
where rn >= M;
re: 三字经全解 茵梦湖 2008-10-21 10:22  
@草包书生
能不能给我发全部的三字经全解呢,非常之感谢啊!
re: 三字经全解 草包书生 2008-10-21 01:41  
留一个你的Email,我给你全部发过来
re: 三字经全解 33 2008-10-19 17:28  
还有下面的部分,你写了么?我没找到
问题已解决!基础毛病,类还没被编译就把它添加到了struts.xml中。
另一个问题:在没有用到struts2所有jar包的时候不要把所有jar包全部放到我们的lib下,要不然很有可能出错!
谢谢你!
不要用最新的struts2的架包,有点不稳定啊,
我有一次就是用了最新的struts2的架包,出现了类似的情况。
re: 三字经全解[未登录] 杨文博 2008-10-16 20:15  
你写的真棒,你因该是教授吧,还是......总之我觉得你写的很好!!
re: 三字经全解 姚泽 2008-10-16 20:13  
写的真好,值得表扬!!~~
 1<?xml version="1.0" encoding="UTF-8"?>
 2<web-app id="WebApp_ID" version="2.4"
 3    xmlns="http://java.sun.com/xml/ns/j2ee"
 4    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 5    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
 6    <display-name>Struts2Hello</display-name>
 7    <filter>
 8        <filter-name>struts2</filter-name>
 9        <filter-class>
10            org.apache.struts2.dispatcher.FilterDispatcher
11        </filter-class><!-- 以过虑器的形式出现 -->
12    </filter>
13    <filter-mapping>
14        <filter-name>struts2</filter-name>
15        <url-pattern>/*</url-pattern><!-- 过虑所有内容 -->
16    </filter-mapping>
17    <welcome-file-list>
18        <welcome-file>index.html</welcome-file>
19        <welcome-file>index.htm</welcome-file>
20        <welcome-file>index.jsp</welcome-file>
21        <welcome-file>default.html</welcome-file>
22        <welcome-file>default.htm</welcome-file>
23        <welcome-file>default.jsp</welcome-file>
24    </welcome-file-list>
25</web-app>
26
晕死,错误很明显啊。
严重: Parse error in application web.xml file at jndi:/localhost/Struts2.x/WEB-INF/web.xml
这个错误在多处都有,肯定是WEB.XML配置有问题。
信息: Loading validation rules file from '/WEB-INF/validation.xml'
2008-10-15 22:53:33 org.apache.tomcat.util.digester.Digester fatalError
严重: Parse Fatal Error at line 22 column 1: Premature end of file.

应该是某个xml文件格式有错...
@Ron.Liu
你太聪明了
@Ron.Liu
这种运算也行得通,不过mysql不支持top运算。
不过还是感谢之极
更好的方法:
解1: select top 10 * from A where id not in (select top 30 id from A)
解2: select top 10 * from A where id > (select max(id) from (select top 30 id from A )as A)
强烈建议,不要用游标!!!

可以用top关键字
创建一个临时表,用来需要返回的结果。
先向表中插入top200,再删除top100
最后select中间表返回

sql server
嗯,我的方法要用存储过程
@逝水fox
谢谢,十分感谢。我试着搞一下
thank you
@R_XiaoGuang
谢谢,我要的就是这个!十分感谢!
就是不知道prepareStatement内部封装的SQL语句是什么样的。
感谢
@隔叶黄莺
知道了,马上放
建议放到新手区或提问区
这段代码也许对你有用
源码来自:http://www.blogjava.net/supercrsky/archive/2008/09/23/230723.html

/**
* 查询用户(带分页)
*
* @param startNo
* 开始条数
* @param maxCount
* 最大记录数
* @return
*/
public List<User> getAll(int startNo, int maxCount)
{
Connection conn = DBConnection.getConn();
String sql = "select * from person";
List<User> users = new ArrayList<User>();
try
{
if (this.getAllSize() <= 0)
return null;
PreparedStatement pstmt = conn.prepareStatement(sql,
ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY);
// 最大查询到第几条记录
pstmt.setMaxRows(startNo + maxCount - 1);
ResultSet rs = pstmt.executeQuery();
// 将游标移动到第一条记录
rs.first();
// 游标移动到要输出的第一条记录
rs.relative(startNo - 2);
while (rs.next())
{
User user = new User();
user.setId(rs.getInt("id"));
user.setUsername(rs.getString("username"));
user.setAge(rs.getInt("age"));
user.setRemark(rs.getString("remark"));
users.add(user);
}

} catch (SQLException e)
{
e.printStackTrace();
} finally
{
try
{
conn.close();
} catch (SQLException e)
{
e.printStackTrace();
}
}
return users;
}
这个是没有办法的了 SQLServer和MySQL在这个问题上使用不同的关键字
参考Hibernate的处理
在Loader类里面是
if ( useLimit ) {
sql = dialect.getLimitString( sql.trim(), useOffset ? getFirstRow(selection) : 0, getMaxOrLimit(selection, dialect) );
}
这里可以看到 限制返回行数的SQL他是交给具体的方言对象来处理的dialect
而MySQLDialect
public String getLimitString(String sql, boolean hasOffset) {
return new StringBuffer( sql.length()+20 ).append(sql).append( hasOffset ? " limit ?, ?" : " limit ?").toString();
}
而SQLServerDialect则是使用的
public String getLimitString(String querySelect, int offset, int limit) {
if ( offset > 0 ) {
throw new UnsupportedOperationException( "sql server has no offset" );
}
return new StringBuffer( querySelect.length()+8 ).append(querySelect).insert( getAfterSelectInsertPoint(querySelect), " top " + limit ).toString();
}

顺便一说 OracleDialect是会抛出UnsupportedOperationException异常的

你可以自己参考Hibernate的实现实现这个功能 但是 关键是 数据库方言本身 是需要配置的 你自己程序虽然可以用方言的方式来猜测是哪种数据库 但是 毕竟麻烦
没有长远的方法。
啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊。。。。。。。。。。
问题解决了!原来是。。。。!多个ResultSet不能共享同一个Statement。
基础知识欠缺啊!在jdkAPI中sun公司有没说明这一点。真是库了我。
还好功夫不负有心人。谢谢javablog的兄弟了。再次感谢!
努力,坚持就是胜利!

哎,基础不扎实。
整一个悲字了得。
更奇怪的是第一次调用sid = rs.getInt("sid");能通过
马上第而次sid = rs.getInt("sid");就出现异常了,难道有鬼啊
@隔叶黄莺
org.apache.jasper.JasperException: An exception occurred processing JSP page /delete.jsp at line 53

50: sid = rs.getInt("sid");
51: ResultSet rss = stat.executeQuery("select * from bbsrecord where sid=" + sid);
52: rss.last();
53: out.println(rs.getString("title"));
54: /**
55: if (rss.getRow() == 1) {
56: if (rs.getInt("root") == 0) {

为什么前面的sid = rs.getInt("sid");能执行不会抛出异常,到第二次调用getString()时就抛出异常了?
在第一次调用sid = rs.getInt("sid");后我用
if(rs != null){
out.println("rs is not null");
}
结果为
rs is not null
也就是,rs并不为空。
这是怎么回事?难道是mysql数据库软件本身的问题?吗?
@steveneo
org.apache.jasper.JasperException: An exception occurred processing JSP page /delete.jsp at line 53

50: sid = rs.getInt("sid");
51: ResultSet rss = stat.executeQuery("select * from bbsrecord where sid=" + sid);
52: rss.last();
53: out.println(rs.getString("title"));
54: /**
55: if (rss.getRow() == 1) {
56: if (rs.getInt("root") == 0) {

为什么前面的sid = rs.getInt("sid");能执行不会抛出异常,到第二次调用getString()时就抛出异常了?
在第一次调用sid = rs.getInt("sid");后我用
if(rs != null){
out.println("rs is not null");
}
结果为
rs is not null
也就是,rs并不为空。
这是怎么回事?难道是mysql数据库软件本身的问题?吗?
问题还没解决:
org.apache.jasper.JasperException: An exception occurred processing JSP page /delete.jsp at line 53

50: sid = rs.getInt("sid");
51: ResultSet rss = stat.executeQuery("select * from bbsrecord where sid=" + sid);
52: rss.last();
53: out.println(rs.getString("title"));
54: /**
55: if (rss.getRow() == 1) {
56: if (rs.getInt("root") == 0) {

为什么前面的sid = rs.getInt("sid");能执行不会抛出异常,到第二次调用getString()时就抛出异常了?
在第一次调用sid = rs.getInt("sid");后我用
if(rs != null){
out.println("rs is not null");
}
结果为
rs is not null
也就是,rs并不为空。
这是怎么回事?难道是mysql数据库软件本身的问题?吗?

查看root列的所有值,是不是有null的。首先要搞清楚ResultSet为空,还是rs.getInt() 为空。楼主好好看看,空指针异常都是写代码不严谨导致。。
如果这点基本的除错技能都没有,这个耗你一天,那个耗你若干天,你还要不要做开发了呢?
哎,把那个空的rs.getString("root")打印出来看下是不是空值.

上面的人英语太厉害了,是不是中国人哦.
I almost forget JDBC stuff. But some hints:
Check rs.getInt() return object "Integer" or primary type "int". If former one, rs.getInt() == 0 could throw nullpoint, as JDK5 will do automatically conversion from "Integer" to "int". if Integer is null, here will throw NullPointerExp.

Btw, check database table, column "root" must has some int value, such as 0, rather than "null"
Good luck.
rs.getString(String xxxx)
我把rs打印出来,出了类名之外,没有任何信息。
你们快点来 啊。我快虚脱了
你是说把rs对象的描述输出来么?
何不输出来看看,它长什么样呢?
各位好心人,都来帮帮忙啊?急啊!
共2页: 1 2 下一页