有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Hibernate+swing检查登录/密码

你好,我有两个问题。最好的检查/发现方法是存在一些价值。例如,我的dbdb_table

我想登录我的swing应用,有人登录并通过。 如何构建查询? 我在尝试 EntityManagerFactory entityManagerFactory=Persistence.createEntityManagerFactory("library"); EntityManager entityManager = entityManagerFactory.createEntityManager(); entityManager.getTransaction().begin(); Query query = entityManager.createQuery("from users"); //query.setParameter(1,forLogin.getText()); //query.setParameter(2,forPassword.getText()); System.out.println(query.getFirstResult()); 但总是说0。即使我添加的参数值很好,仍然是0。我知道这是功能。find()但只需(?)id参数或我不知道如何使用其他列选择它。第二个问题。我需要在每个类中创建entitymanager+工厂,当我想使用db或其他方式时?因为当我想在其他课堂上使用它时,我会说“课程结束”


共 (1) 个答案

  1. # 1 楼答案

    试试这个。必须替换实体的类以及用户名和密码的字段

    EntityManagerFactory emf = Persistence.createEntityManagerFactory("library");
    EntityManager em = entityManagerFactory.createEntityManager();
    // Query with where clausel
    // I 'lower' the user name and use a TypedQuery
    // the password should be case sensentive
    TypedQuery<User> query = entityManager.createQuery("from users u where lower(u.username) = :name and u.password = :password", User.class);
    query.setParameter("name", "foo");
    query.setParameter("password", "pwd");
    try {
        User user = query.getSingleResult();
        System.out.println("User found");
    } catch( javax.persistence.NoResultException e ){
        System.out.println("No user found");
    }