如何在SpringMVC中使用HIbernate检查数据库中的用户名和密码?
我使用带注释的SpringMVC创建了一个登录应用程序。我不是 能够验证在中创建的数据库中的用户名和密码 phpmyadmin使用Hibernate 下面是我的代码如何在SpringMVC中使用HIbernate检查数据库中的用户名和密码?,hibernate,spring-mvc,Hibernate,Spring Mvc,我使用带注释的SpringMVC创建了一个登录应用程序。我不是 能够验证在中创建的数据库中的用户名和密码 phpmyadmin使用Hibernate 下面是我的代码 package Repository; import java.util.Iterator; import java.util.List; import org.hibernate.HibernateException; import org.hibernate.Session; import org.hibernate.Sess
package Repository;
import java.util.Iterator;
import java.util.List;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.AnnotationConfiguration;
import LoginDao.LoginPojo;
import Repository.User;
@SuppressWarnings("deprecation")
public class UserMain {
private static SessionFactory sf;
public void setup() {
try {
sf = new AnnotationConfiguration().configure()
.addPackage("com.registration.domain")
.addAnnotatedClass
(User.class).buildSessionFactory();
} catch (Throwable e) {
System.out.println(e);
}
}
void verifyUser(String usernm,String passwd)
{
Session session = sf.openSession();
Transaction tx = null;
try{
tx = session.beginTransaction();
List<?> lst = session.createQuery("FROM LoginPojo").list();
for (Iterator<?> iterator =
lst.iterator(); iterator.hasNext();){
LoginPojo lpojo = (LoginPojo) iterator.next();
System.out.print("Username: " + lpojo.getUsernm());
System.out.print(" Password: " + lpojo.getPasswd());
if(lpojo.getUsernm().equals(usernm)&& lpojo.getPasswd().equals(passwd))
{
System.out.println("Correct username and password");
}
else
{
System.out.println("Incorrect username and password");
}
}
tx.commit();
}catch (HibernateException e) {
if (tx!=null) tx.rollback();
e.printStackTrace();
}finally {
session.close();
}
}
}
包存储库;
导入java.util.Iterator;
导入java.util.List;
导入org.hibernate.hibernateeexception;
导入org.hibernate.Session;
导入org.hibernate.SessionFactory;
导入org.hibernate.Transaction;
导入org.hibernate.cfg.AnnotationConfiguration;
导入LoginDao.LoginPojo;
导入存储库。用户;
@抑制警告(“弃用”)
公共类UserMain{
私有静态会话工厂sf;
公共作废设置(){
试一试{
sf=新的AnnotationConfiguration().configure()
.addPackage(“com.registration.domain”)
.addAnnotatedClass
(User.class).buildSessionFactory();
}捕获(可丢弃的e){
系统输出打印ln(e);
}
}
void verifyUser(字符串usernm,字符串passwd)
{
Session Session=sf.openSession();
事务tx=null;
试一试{
tx=session.beginTransaction();
List lst=session.createQuery(“来自LoginPojo”).List();
for(迭代器迭代器=
lst.iterator();iterator.hasNext();){
LoginPojo lpojo=(LoginPojo)迭代器.next();
System.out.print(“用户名:”+lpojo.getUsernm());
System.out.print(“密码:+lpojo.getPasswd());
if(lpojo.getUsernm().equals(usernm)和&lpojo.getPasswd().equals(passwd))
{
System.out.println(“正确的用户名和密码”);
}
其他的
{
System.out.println(“不正确的用户名和密码”);
}
}
tx.commit();
}捕获(休眠异常e){
如果(tx!=null)tx.rollback();
e、 printStackTrace();
}最后{
session.close();
}
}
}
定义“无法”。而且,您做得不对:Spring应该以声明的方式为您处理会话处理和事务。您不应该将所有用户加载到内存中只是为了检查其中一个用户的密码:使用更好的查询。密码不应以明文形式存储在数据库中。应该使用强加密算法对它们进行加密和散列。教程中您可能会发现它很有用: