accountdaoimp.java
来自「用Hibernate开发的JiveJdon」· Java 代码 · 共 102 行
JAVA
102 行
package com.jdon.jivejdon.dao.hibernate;
import java.util.Iterator;
import java.util.List;
import org.apache.log4j.Logger;
import com.jdon.controller.model.PageIterator;
import com.jdon.jivejdon.dao.AccountDao;
import com.jdon.jivejdon.dao.sql.AccountSSOSql;
import com.jdon.jivejdon.model.Account;
import com.jdon.persistence.DaoCRUD;
import com.jdon.persistence.hibernate.HibernateCRUDTemplate;
import com.jdon.persistence.hibernate.HibernateTemplate;
public class AccountDaoImp implements AccountDao {
private final static Logger logger = Logger.getLogger(AccountDaoImp.class);
private static final String LOAD_BY_USERNAME = "from Account where username = ?";
private static final String LOAD_BY_EMAIL = "from Account where email = ?";
private DaoCRUD daoCRUD;
private AccountSSOSql accountSSOSql;
public AccountDaoImp(DaoCRUD daoCRUD,AccountSSOSql accountSSOSql) {
this.daoCRUD = daoCRUD;
this.accountSSOSql = accountSSOSql;
}
public void createAccount(Account account) throws Exception {
daoCRUD.insert(account);
accountSSOSql.insertSSOServer(account);
}
public void deleteAccount(Account account) throws Exception {
daoCRUD.delete(account);
accountSSOSql.deleteSSOServer(account);
}
public void updateAccount(Account account) throws Exception {
daoCRUD.update(account);
accountSSOSql.updateSSOServer(account);
}
public PageIterator getAccounts(int start, int count) throws Exception {
HibernateTemplate hibernateTemplate = ((HibernateCRUDTemplate)daoCRUD).getHibernateTemplate();
hibernateTemplate.setCacheQueries(true);
Iterator results = hibernateTemplate.find("select count(account) from Account account ")
.iterator();
Long allcount = new Long(0);
while ( results.hasNext() ) {
allcount = (Long) results.next();
}
hibernateTemplate.setFirstResult(start);
hibernateTemplate.setMaxResults(count);
List pageIds = hibernateTemplate.find("select account.userId from Account account " + "order by account.userId");
hibernateTemplate.setFirstResult(0);
hibernateTemplate.setMaxResults(0);
return new PageIterator(allcount.intValue(), pageIds.toArray());
}
public Account getAccount(Long userId) {
logger.debug(" get account " + userId);
Account account = null;
try {
account = (Account)daoCRUD.loadById(Account.class, userId);
} catch (Exception e) {
e.printStackTrace();
}
return account;
}
public Account getAccountByEmail(String email) throws Exception{
HibernateTemplate hibernateTemplate = ((HibernateCRUDTemplate)daoCRUD).getHibernateTemplate();
List l = hibernateTemplate.find(LOAD_BY_EMAIL, email);
if (l == null || l.isEmpty()) {
return null;
} else {
return (Account) l.get(0);
}
}
public Account getAccountByName(String username) throws Exception{
HibernateTemplate hibernateTemplate = ((HibernateCRUDTemplate)daoCRUD).getHibernateTemplate();
List l = hibernateTemplate.find(LOAD_BY_USERNAME, username);
if (l == null || l.isEmpty()) {
return null;
} else {
return(Account) l.get(0);
}
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?