初学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'。
多谢!
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'。
多谢!
ps: 这里是javascript版 ~
楼主,贴错地方啦!!!
sql语句没错
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
望各位指点。
select userPwd from Userlist as userPwd where username='sonic'。
或者
select x from Userlist as x where username='sonic'。
而真正读取userPwd是在下面的语句:
mUserPwd=ul.getUserpwd();