实在不会写applicationContext.xml这个配置文件了...求救~~

bear234 2013-09-01 10:34:43
在用hibernate3+struts2+spring做东西
很简单,数据库里就一张表,就俩元素:姓名和密码
完了实现个登录功能就行了

其他都配置好了 就applicationContext.xml不会配置了


hibernate什么的都弄好了 测试过了
就一个class Client
然后一个ClientDAO和ClientDAOImpl

然后写了个class LoginAction 这里面有两个数据Client和ClientDAO 方法execute()就是根据Client和ClientDAO比较名字和密码是否都一致 登录成功就跳到success.jsp 否则跳到fail.jsp 这些也都写好了

就是这个applicationContext.xml不会配置了 注入什么的搞乱了 而且从网上找,发现里面还有个sessionFactory什么的 不太明白 求高人指点啊~~~

下面附上LoginAction的代码:
public class LoginAction extends ActionSupport{
private Client client;
private ClientDAO dao;
private String msg;

//所有的get和set都有 节省空间就不贴了

@Override
public void validate() {
if(this.client.getNom() == null) {
this.addFieldError("username", "username can't be empty!!!");
}
super.validate();
}

@Override
public String execute() throws Exception {
ActionContext context = ActionContext.getContext();
if(dao.FindClientForLogin(this.client.getNom(), this.client.getPwd())) {
msg = "login succeeded";
context.put("message", msg);
return this.SUCCESS;
}
msg = "login failed";
context.put("message", msg);
return this.ERROR;
}
}
...全文
310 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
你下载的spring的包中有spring的小demo直接去看就得了。。。
乔不思 2013-09-14
  • 打赏
  • 举报
回复
配置文件不会写 可以查看文档啊,文档里面应有尽有。
bear234 2013-09-14
  • 打赏
  • 举报
回复
引用 3 楼 houjinxin 的回复:
你这样写就用不到 spring 了 根本没有spring什么事,完全是单独的hibernate开发
那应该怎么写就会用到spring呢?
wind_elf 2013-09-02
  • 打赏
  • 举报
回复
使用spring你要把需要的对象让spring帮你生成,然后配置他们的依赖关系,也就是在ApplicationContext.xml文件里配置。你的程序根本就没有用到spring。
陈芝麻烂谷子 2013-09-02
  • 打赏
  • 举报
回复
你这样写就用不到 spring 了 根本没有spring什么事,完全是单独的hibernate开发
bear234 2013-09-01
  • 打赏
  • 举报
回复
引用 1 楼 houjinxin 的回复:
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean" > <property name="configLocation" value="classpath:hibernate.cfg.xml"></property> </bean> <bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate"> <property name="sessionFactory" ref="sessionFactory"></property> </bean> 在applicationcontext中加入这段就行了,sessionFactory封装了connection,这个对象又被hibernateTemplate引用,hibernateTemplate可以对数据库进行增删改查等操作。然后你就可以实现你的dao层了。 具体使用在每个dao实现类里加入 protected HibernateTemplate hibernateTemplate; 并提供getter、setter方法 然后你就可以spring的方式来写代码了。比如 public void addForum(Forum forum) { hibernateTemplate.save(forum); } 懂了吗?就这么简单!
我在写dao的时候,并没有用hibernatetemplate,可能我用了古老的方法,这也是导致我看不懂网上的applicationContext.xml的原因吧 我是这样实现dao层的: //这个class负责创建session和关闭session public class DBHibernate { private SessionFactory sessionFactory = (new Configuration().configure()).buildSessionFactory(); public Session connect() { return this.sessionFactory.openSession(); } public void close() { this.sessionFactory.close(); } } //interface---dao public interface ClientDAO { Client FindClientByNom(String nom); boolean FindClientForLogin(String nom, String pwd); List<Client> ListAll(); void AddClient(Client client); } //上面的interface的实现 同时继承第一个class public class ClientDAOImpl extends DBHibernate implements ClientDAO { @Override public void AddClient(Client client) { Session session = connect(); Transaction trans = session.beginTransaction(); session.save(client); trans.commit(); session.close(); } @Override public Client FindClientByNom(String nom) { Session session = connect(); Transaction trans = session.beginTransaction(); String sql = "SELECT * FROM client WHERE nom = '" + nom + "'"; @SuppressWarnings("unchecked") List<Client> list = session.createSQLQuery(sql).addEntity(Client.class).list(); trans.commit(); session.close(); if(list.isEmpty()) { return null; } return list.get(0); } @Override public boolean FindClientForLogin(String nom, String pwd) { Session session = connect(); Transaction trans = session.beginTransaction(); String sql = "SELECT * FROM client WHERE nom = '" + nom + "'" + "AND pwd = '" + pwd + "'"; @SuppressWarnings("unchecked") List<Client> list = session.createSQLQuery(sql).addEntity(Client.class).list(); trans.commit(); session.close(); if(list.isEmpty()) { return false; } return true; } @Override public List<Client> ListAll() { Session session = connect(); Transaction trans = session.beginTransaction(); String sql = "SELECT * FROM client"; @SuppressWarnings("unchecked") List<Client> list = (session.createSQLQuery(sql).addEntity(Client.class).list()); trans.commit(); session.close(); return list; } public static void main(String[] args) { ClientDAO dao = new ClientDAOImpl(); Client client = new Client("user2", "123"); dao.AddClient(client); List<Client> list = dao.ListAll(); //Client c = dao.FindClientByNom("admin"); //System.out.println(c); Iterator<Client> it = list.iterator(); while(it.hasNext()) { System.out.println(it.next()); } } } 如果我这样写,该如何写applicationContext.cml呢?(结合上我最一开始的LoginAction代码 这是我全部的java代码了 除了俩jsp没贴过来)
陈芝麻烂谷子 2013-09-01
  • 打赏
  • 举报
回复
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean" > <property name="configLocation" value="classpath:hibernate.cfg.xml"></property> </bean> <bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate"> <property name="sessionFactory" ref="sessionFactory"></property> </bean> 在applicationcontext中加入这段就行了,sessionFactory封装了connection,这个对象又被hibernateTemplate引用,hibernateTemplate可以对数据库进行增删改查等操作。然后你就可以实现你的dao层了。 具体使用在每个dao实现类里加入 protected HibernateTemplate hibernateTemplate; 并提供getter、setter方法 然后你就可以spring的方式来写代码了。比如 public void addForum(Forum forum) { hibernateTemplate.save(forum); } 懂了吗?就这么简单!

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧