ssh登录实例.docx
- 文档编号:26565032
- 上传时间:2023-06-20
- 格式:DOCX
- 页数:20
- 大小:19.22KB
ssh登录实例.docx
《ssh登录实例.docx》由会员分享,可在线阅读,更多相关《ssh登录实例.docx(20页珍藏版)》请在冰豆网上搜索。
ssh登录实例
这个例子详细地讲叙了如何通过搭建SSH实现用户登录,通过此例子可以了解springMVC基本的控制流程和思想。
开发环境:
MyEclipse2014,MySql,struts2.1,spring3.1,hibernate3.2
第一步:
新建webproject工程SSH_TEST。
第二步:
导入struts2框架,此步骤请参考本人以前的文章
第三步:
导入spring框架,此步骤请参考本人以前的文章
第四步:
新建数据库logindemo,在此数据库中新建一个表user,字段分别为id(int),username(varchar),password(varchar),配置MySql数据库连接,请参考本人以前的文章:
第五步:
导入hibernate框架,此步骤请参考本人以前的文章:
第六步:
使用hibernate自动生成永久的java文件
在src目录下新建com.ssh.user包,邮件logindemo数据库下user表,选择HibernateReverseEngineering。
弹出一个对话框,此处请参考DataAccessObject(DAO)”
完成对话框的设置,在com.ssh.user下面生成了四个文件,AbstractUser.java,User.jva,User.hbm.xml,UserDAO.java。
同时可以看到hibernate.cfg.xml文件里有了User.hbm.xml的映射。
第七步:
在src下新建com.ssh.dao的包和com.ssh.dao.impl的包,将UserDAO.java移到com.ssh.dao.impl下,在com.ssh.dao包下建一个接口文件,IUserDAO.java。
UserDAO.java的内容:
packagecom.ssh.dao.impl;
importjava.util.List;
importmons.logging.Log;
importmons.logging.LogFactory;
importorg.hibernate.LockMode;
importorg.springframework.context.ApplicationContext;
importorg.springframework.orm.hibernate3.support.HibernateDaoSupport;
importcom.ssh.dao.IUserDAO;
importcom.ssh.user.User;
/**
*Adataaccessobject(DAO)providingpersistenceandsearchsupportforUser
*entities.Transactioncontrolofthesave(),update()anddelete()operations
*candirectlysupportSpringcontainer-managedtransactionsortheycanbe
*augmentedtohandleuser-managedSpringtransactions.Eachofthesemethods
*providesadditionalinformationforhowtoconfigureitforthedesiredtype
*oftransactioncontrol.
*
*@seecom.ssh.user.User
*@authorMyEclipsePersistenceTools
*/
publicclassUserDAOextendsHibernateDaoSupportimplementsIUserDAO{
privatestaticfinalLoglog=LogFactory.getLog(UserDAO.class);
//propertyconstants
publicstaticfinalStringUSERNAME="username";
publicstaticfinalStringPASSWORD="password";
protectedvoidinitDao(){
//donothing
}
/*(non-Javadoc)
*@seecom.ssh.dao.impl.IUserDAO#save(com.ssh.user.User)
*/
@Override
publicvoidsave(UsertransientInstance){
log.debug("savingUserinstance");
try{
getHibernateTemplate().save(transientInstance);
log.debug("savesuccessful");
}catch(RuntimeExceptionre){
log.error("savefailed",re);
throwre;
}
}
publicvoiddelete(UserpersistentInstance){
log.debug("deletingUserinstance");
try{
getHibernateTemplate().delete(persistentInstance);
log.debug("deletesuccessful");
}catch(RuntimeExceptionre){
log.error("deletefailed",re);
throwre;
}
}
/*(non-Javadoc)
*@seecom.ssh.dao.impl.IUserDAO#findById(java.lang.Integer)
*/
@Override
publicUserfindById(java.lang.Integerid){
log.debug("gettingUserinstancewithid:
"+id);
try{
Userinstance=(User)getHibernateTemplate().get(
"com.ssh.user.User",id);
returninstance;
}catch(RuntimeExceptionre){
log.error("getfailed",re);
throwre;
}
}
publicListfindByExample(Userinstance){
log.debug("findingUserinstancebyexample");
try{
Listresults=getHibernateTemplate().findByExample(instance);
log.debug("findbyexamplesuccessful,resultsize:
"
+results.size());
returnresults;
}catch(RuntimeExceptionre){
log.error("findbyexamplefailed",re);
throwre;
}
}
publicListfindByProperty(StringpropertyName,Objectvalue){
log.debug("findingUserinstancewithproperty:
"+propertyName
+",value:
"+value);
try{
StringqueryString="fromUserasmodelwheremodel."
+propertyName+"=?
";
returngetHibernateTemplate().find(queryString,value);
}catch(RuntimeExceptionre){
log.error("findbypropertynamefailed",re);
throwre;
}
}
/*(non-Javadoc)
*@seecom.ssh.dao.impl.IUserDAO#findByUsername(java.lang.Object)
*/
@Override
publicListfindByUsername(Objectusername){
returnfindByProperty(USERNAME,username);
}
publicListfindByPassword(Objectpassword){
returnfindByProperty(PASSWORD,password);
}
publicListfindAll(){
log.debug("findingallUserinstances");
try{
StringqueryString="fromUser";
returngetHibernateTemplate().find(queryString);
}catch(RuntimeExceptionre){
log.error("findallfailed",re);
throwre;
}
}
publicUsermerge(UserdetachedInstance){
log.debug("mergingUserinstance");
try{
Userresult=(User)getHibernateTemplate().merge(detachedInstance);
log.debug("mergesuccessful");
returnresult;
}catch(RuntimeExceptionre){
log.error("mergefailed",re);
throwre;
}
}
publicvoidattachDirty(Userinstance){
log.debug("attachingdirtyUserinstance");
try{
getHibernateTemplate().saveOrUpdate(instance);
log.debug("attachsuccessful");
}catch(RuntimeExceptionre){
log.error("attachfailed",re);
throwre;
}
}
publicvoidattachClean(Userinstance){
log.debug("attachingcleanUserinstance");
try{
getHibernateTemplate().lock(instance,LockMode.NONE);
log.debug("attachsuccessful");
}catch(RuntimeExceptionre){
log.error("attachfailed",re);
throwre;
}
}
publicstaticIUserDAOgetFromApplicationContext(ApplicationContextctx){
return(IUserDAO)ctx.getBean("UserDAO");
}
}
IUserDAO.java的内容:
packagecom.ssh.dao;
importjava.util.List;
importcom.ssh.user.User;
publicinterfaceIUserDAO{
publicabstractvoidsave(UsertransientInstance);
publicabstractUserfindById(java.lang.Integerid);
publicabstractListfindByUsername(Objectusername);
publicabstractListfindByPassword(Objectpassword);
publicabstractvoiddelete(UserpersistentInstance);
}
第八步:
在src下新建包com.ssh.service和com.ssh.service.impl,这里是spring的结构,实现业务逻辑。
在com.ssh.service下新建接口文件IUserService.java,在com.ssh.service.impl新建实现文件UserService.java。
IUserService.java接口的内容:
packagecom.ssh.service;
importcom.ssh.user.User;
publicinterfaceIUserService{
publicUsergetUserById(Integerid);
publicUsergetUserByUsername(Stringusername);
publicUsergetUserByPassword(Stringpassword);
publicvoidaddUser(Useruser);
publicvoidDeleteUser(Useruser);
publicvoidDeleteUserByUsername(Stringusername);
publicvoidUpdateByUsername(Stringusername,Stringpassword_updated);
}
UserService.java实现类的内容:
packagecom.ssh.service.impl;
importjava.util.List;
importcom.ssh.dao.IUserDAO;
importcom.ssh.service.IUserService;
importcom.ssh.user.User;
importorg.hibernate.Transaction;
importorg.hibernate.SessionFactory;
importorg.hibernate.cfg.Configuration;
importorg.hibernate.Session;
publicclassUserServiceimplementsIUserService{
privateIUserDAOuserDAO;
publicvoidaddUser(Useruser){
SessionFactorysf=newConfiguration().configure().buildSessionFactory();
Sessionsession=sf.openSession();
Transactiontx=session.beginTransaction();
//userDAO.save(user);
session.save(user);
mit();
session.clear();
}
publicvoidDeleteUser(Useruser){
SessionFactorysf=newConfiguration().configure().buildSessionFactory();
Sessionsession=sf.openSession();
Transactiontx=session.beginTransaction();
//userDAO.delete(user);
session.delete(user);
mit();
session.clear();
}
publicvoidDeleteUserByUsername(Stringusername){
inti;
Listlist=userDAO.findByUsername(username);
if(list.size()==0)
return;
SessionFactorysf=newConfiguration().configure().buildSessionFactory();
Sessionsession=sf.openSession();
Transactiontx=session.beginTransaction();
try{
for(i=0;i { Useruser=(User)list.get(i); session.delete(user); } //userDAO.delete(user); //session.save(user); mit(); } catch(RuntimeExceptionre){ tx.rollback(); throwre; }finally{ session.clear(); } } publicvoidUpdateByUsername(Stringusername,Stringpassword_updated){ inti; Listlist=userDAO.findByUsername(username); if(list.size()==0) return; SessionFactorysf=newConfiguration().configure().buildSessionFactory(); Sessionsession=sf.openSession(); Transactiontx=session.beginTransaction(); try{ for(i=0;i { Useruser=(User)list.get(i); user.setPassword(password_updated); session.update(user); } //userDAO.delete(user); //session.save(user); mit(); } catch(RuntimeExceptionre){ tx.rollback(); throwre; }finally{ session.clear(); } } publicUsergetUserById(Integerid){ returnuserDAO.findById(id); } publicUsergetUserByUsername(Stringusername){ Listlist=userDAO.findByUsername(username); if(list.size()==0){ returnnull; }else{ return(User)list.get(0); } } publicUsergetUserByPassword(Stringpassword){ Listlist=userDAO.findByPassword(password); if(list.size()==0){ returnnull; }else{ return(User)list.get(0); } } publicIUserDAOgetUserDAO(){ returnuserDAO; } publicvoidsetUserDAO(IUserDAOuserDAO){ this.userDAO=userDAO; } } 在src下新建包com.ssh.struts.action,新建一个类文件BaseAction.java BaseAction.java的内容为: packagecom.ssh.struts.action; importorg.springframework.web.context.WebApplicationContext; importorg.spri
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ssh 登录 实例