我需要檢查與用戶名的可用性檢查在數據庫中唯一值約束,這意味着,每個用戶名必須是唯一的,我需要顯示一個消息「該用戶名已在使用中」的時候已存在的相同的用戶名它可以是自動的(生成一個查詢,然後顯示一條消息)或創建一個按鈕來驗證可用性,然後顯示一條消息。我對這個簡單的程序並不清楚。在這種情況下我需要做什麼? 的源代碼是像這樣:從用戶註冊
Person類
@Entity
@Table(name="person")
public class Person {
@Id
@GeneratedValue(strategy=GenerationType.SEQUENCE)
@Column(name="id")
private int id;
@Column(name="firtsname")
private String first_name;
@Column(name="lastname")
private String last_name;
@Column(name="username", unique=true)
private String user_name;
@Column(name="password")
private String password;
// Getters and Setters
}
PersonDao的>> PersonDaoImpl
@Repository("personDao")
public class PersonDaoImpl implements PersonDao {
@Autowired
private SessionFactory sessionFactory;
@Override
public void createPerson(Person person) {
sessionFactory.getCurrentSession().saveOrUpdate(person);
}
@Override
public Person updatePerson(int id) {
return (Person) sessionFactory.getCurrentSession().get(Person.class, id);
}
@Override
public void deletePerson(int id) {
sessionFactory.getCurrentSession().createQuery("DELETE FROM Person WHERE id="+id).executeUpdate();
}
@Override
@SuppressWarnings("unchecked")
public List<Person> listAllPersons() {
return (List<Person>) sessionFactory.getCurrentSession().createCriteria(Person.class).list();
}
}
登記表(registration.jsp):
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<form:form method="POST" action="/userform/saveUser.html">
<p>
<form:input type="hidden" readonly="true" path="id" />
</p>
<p>
<form:label path="first_name" >First name:</form:label>
<form:input path="first_name" />
</p>
<p>
<form:label path="last_name">Last name:</form:label>
<form:input path="last_name" />
</p>
<p>
<form:label path="user_name">Username:</form:label>
<form:input path="user_name" />
</p>
<p>
<form:label path="password">Password:</form:label>
<form:input path="password" />
</p>
<p>
<button type="reset" value="Reset">Reset</button>
<button type="submit" value="Save">Save</button>
</p>
</form:form>
</body>
</html>
非常感謝!
另外的解決方案包含一個select和one insert,考慮select通常認爲是一個沉重的操作,這樣你節省select – nightograph
@EJP你的回答聽起來不錯。你可以用源代碼解釋嗎?從我的用戶註冊表(registrarion.jsp)...我如何檢查數據庫中是否已經存在一個具有相同名稱的用戶名? – user3043914