用hibernate3.2跟着书做个登陆学习下
表user 里面放个private UserId id; UserId 里是 name password email
这些都是系统自己生成的.
--------------------
UserId id =new UserId();
id.setUserName(logForm.getUser());
id.setUserPs(logForm.getPassw());
User user=new User();
---------------------
我将这样的user传到了下面方法(也是系统的)可是我登陆里名字密码随便写 List里把我user表里所有东西都返回了...
也就是怎么提交都会登陆成功.
-------------------------------------------------------------------------
public List findByExample(User instance) {
log.debug("finding User instance by example");
try {
List results = getSession().createCriteria("user.User").add(
Example.create(instance)).list();
log.debug("find by example successful, result size: "
+ results.size());
return results;
} catch (RuntimeException re) {
log.error("find by example failed", re);
throw re;
}
}
----------------------------------------------------------------------
登陆验证
public static boolean login(User user){
IUserDAO dao =DAOFactory.getUserDAO();
try{
List userlist= dao.findByExample(user);
if(!userlist.isEmpty()){
System.err.println("用户登录成功!");
return true;
}else{
System.err.println("用户登录失败!");
return false;
}
}catch(HibernateException e){
System.err.println("无法进行登录验证!");
return false;
}finally{
try{
dao.getSession().close();
}catch(Exception e){
System.err.println("Session对象无法关闭");
}
}
}
-------------------------------------------------------------------
能讲下findByexample怎么用最好 找半天也没找到答案
表user 里面放个private UserId id; UserId 里是 name password email
这些都是系统自己生成的.
--------------------
UserId id =new UserId();
id.setUserName(logForm.getUser());
id.setUserPs(logForm.getPassw());
User user=new User();
---------------------
我将这样的user传到了下面方法(也是系统的)可是我登陆里名字密码随便写 List里把我user表里所有东西都返回了...
也就是怎么提交都会登陆成功.
-------------------------------------------------------------------------
public List findByExample(User instance) {
log.debug("finding User instance by example");
try {
List results = getSession().createCriteria("user.User").add(
Example.create(instance)).list();
log.debug("find by example successful, result size: "
+ results.size());
return results;
} catch (RuntimeException re) {
log.error("find by example failed", re);
throw re;
}
}
----------------------------------------------------------------------
登陆验证
public static boolean login(User user){
IUserDAO dao =DAOFactory.getUserDAO();
try{
List userlist= dao.findByExample(user);
if(!userlist.isEmpty()){
System.err.println("用户登录成功!");
return true;
}else{
System.err.println("用户登录失败!");
return false;
}
}catch(HibernateException e){
System.err.println("无法进行登录验证!");
return false;
}finally{
try{
dao.getSession().close();
}catch(Exception e){
System.err.println("Session对象无法关闭");
}
}
}
-------------------------------------------------------------------
能讲下findByexample怎么用最好 找半天也没找到答案
解决方案 »
- Wed Mar 09 17:27:56 CST 2011如何进行格式化
- 如何在jsp页面上显示word文档(直接显示,没有提示保存的窗口)?
- 与数据库有关 下拉框联动的问题
- spring中在配置datasource时,怎么解决连接远程access数据库的问题
- 一个学过J2SE的web开发人员有必要掌握JSTL和EL以及I18N吗?(高手请进)
- 如何实现strName.replaceAll("\","\\")这样的代码?
- 简单jsp程序,回答就给分!!!!
- 怎么让浏览按纽点击后只能浏览特定格式的文件
- json转抽象DTO问题
- jsp文件为啥不能显示,帮帮菜鸟!
- 域名的问题
- 关于JAVAMail的问题
log.debug("finding User instance by example");
try {
List results = getSession().createCriteria("user.User").add(
Example.create(instance)).list();
log.debug("find by example successful, result size: "
+ results.size());
return results;
} catch (RuntimeException re) {
log.error("find by example failed", re);
throw re;
}
}
//关键部分
public List logion(String names, String password){
List list = null;
Users users = new Users();
users.setNames(names);
users.setPasswords(password);
UsersDAO dao = new UsersDAO();
List list2 = dao.findByExample(users);
Iterator or = list2.iterator();
if(or.hasNext()){//如果是对就对 错就错
users = (Users)or.next();
System.out.println("ok");
}else{
System.out.println("no");
}
return list;
}
log.debug("finding User instance by example");
try {
List results = getSession().createCriteria("user.User").add(
Example.create(instance)).list();
log.debug("find by example successful, result size: "
+ results.size());
return results;
} catch (RuntimeException re) {
log.error("find by example failed", re);
throw re;
}
}
//关键部分
public List logion(String names, String password){
List list = null;
Users users = new Users();
users.setNames(names);
users.setPasswords(password);
UsersDAO dao = new UsersDAO();
List list2 = dao.findByExample(users);
Iterator or = list2.iterator();
if(or.hasNext()){//如果是对就对 错就错
users = (Users)or.next();
System.out.println("ok");
}else{
System.out.println("no");
}
return list;
}
你这样findByExample什么都不返回了 可能都会出错 我传过UserId进去
我的意思是返回 user 实例,但是你在判断的时候把 userlist 中的 password 和 username 取出来进行比较。
表user 里面放个private UserId id; UserId 里是 name password email
这里我不知道你为什么将UserId独立出来一个实体类,直接用个User实体类就搞掂了。
还有:
List results = getSession().createCriteria("user.User").add(
Example.create(instance)).list(); CreateCriteria()方法接受的是User.class作为参数吧..................
我也痛苦中..............
表user 里面放个private UserId id; UserId 里是 name password email
这里我不知道你为什么将UserId独立出来一个实体类,直接用个User实体类就搞掂了。
还有:
List results = getSession().createCriteria("user.User").add(
Example.create(instance)).list(); CreateCriteria()方法接受的是User.class作为参数吧..................
我也痛苦中..............
UserId id =new UserId();
id.setUserName(logForm.getUser());
id.setUserPs(logForm.getPassw());
User user=new User();user.setId(id);//这里可能不是这么写 不过这个意思可能写的不对 用的是组合主键么
你只把用户名密码set到UserId里 不把UserId放到user实体里
应该是用空实体user去查 当然是all的结果了
里我不知道你为什么将UserId独立出来一个实体类,--这个我也不明白,是自动生成的。
你下面说的代码也是findByExample里的 都是生成的。
我用的是myeclipse6.5GA 里的hibernate3.2 不过我无论换什么都会有那个userId类
回12
User user=new User(id)
user.setId(id);都用了 不是用的空user 我测试时候 能看到我传的值其实就调了一下findbyexample();传了个user.
3.2 没有用过
2.创建映射文件。生成如下类
AbstractUser 里面只有一个属性private UserId id;
AbstractUserId 里面有3个属性对应表user字段;3属性为 name password email
User 继承 extends AbstractUser
UserId 继承 extends AbstractUserId
IBaseHibernateDAO 接口 方法是public Session getSession();
BaseHibernateDAO 上面的实现类
UserDAO DAO extends BaseHibernateDAO 可以通过getSession()得session
就这几个类
我就是调用public List findByExample(User instance)是UserDAO里的方法。具体实现已经 在copy在上面了。
3.我写个test测试了下。基本上list都返回表user全部内容
package user;
import java.util.List;
public class Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("开始");
UserDAO dao=new UserDAO();
User user=new User();
UserId id=new UserId();
id.setUserName("aff");
id.setUserPs("af");
user.setId(id);
List list=dao.findByExample(user);
if(!list.isEmpty()){
System.out.println("success");
}else{
System.out.println("fail");
}
System.out.println("结束");
}
}
3.1我也生成UserId父子类 你的不生成??