初学java编程,在网上找的例子,源码如下:
public ActionForward execute(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response) throws HibernateException {
//获取提交的用户名称和密码
String userName=request.getParameter("userName");
String userPwd=request.getParameter("userPwd");

String mUserPwd=null;
Userlist ul=null;
//创建连接
Session session=HibernateUtil.Session();
//创建事务
Transaction tx=session.beginTransaction();
//创建对话
Query query=session.createQuery("select u from Userlist as u where username='" +
userName + "'");
try{
Iterator it = query.iterate();
ul = (Userlist) it.next();
mUserPwd=ul.getUserpwd();
}catch (Exception e) {
System.out.println(e.getMessage());
}
if(userPwd.equals(mUserPwd))
request.setAttribute("loginOk","Hello  " + ul.getUsername());
else
request.setAttribute("loginOk","Login Error!");
//事务提交
tx.commit();
//关闭连接
HibernateUtil.closeSession();
return (new ActionForward("/index.jsp"));
}}我相信很多人见过这段代码,Userlist 中有两个三个字段:
CREATE TABLE YKMES.USERLIST
(
  ID        NUMBER,
  USERNAME  VARCHAR2(20 BYTE)                   NOT NULL,
  USERPWD   VARCHAR2(30 BYTE)                   NOT NULL
)
而上面代码中为什么写成:
select u from Userlist as u
不这样写,会报错,请高手指点u是从哪里来的,为什么一定要这样写呢。
按照我理解的应该写成
select userPwd from Userlist  where username='sonic'。
多谢!

解决方案 »

  1.   

    u 不就是列名么 ?
    ps: 这里是javascript版 ~
      

  2.   

    java与javascript不一样。
    楼主,贴错地方啦!!!
      

  3.   

    select u from Userlist as u.给Userlist表起一个别名u
      

  4.   

    u就是列名  可以别名
    sql语句没错
      

  5.   

    多谢各位指点,但是表
    CREATE TABLE YKMES.USERLIST
    (
      ID NUMBER,
      USERNAME VARCHAR2(20 BYTE) NOT NULL,
      USERPWD VARCHAR2(30 BYTE) NOT NULL
    )
    并没有u这个列啊,并且我按
    select userPwd from Userlist where username='sonic'。
    写,报错:
    undefined alias: userPwd
    望各位指点。
      

  6.   

    我理解就是一中语法,类似select * from tablename,你可以把u改成任何字符,比如:
    select userPwd from Userlist as userPwd  where username='sonic'。
    或者
    select x from Userlist as x where username='sonic'。
    而真正读取userPwd是在下面的语句:
    mUserPwd=ul.getUserpwd();