SessionFactory的用法

SessionFactory在spring-common.xml被配置,

controller调用service调用dao调用具体的类文件。

调用时要在spring-common.xml里写上

<bean id="userDao" class="xx.xx.dao.UserDao">
		<property name="sessionFactory" ref="sessionFactory" />
</bean>
<bean id="userService" class="xx.xx.service.UserService">
<span style="white-space:pre">		</span><property name="userDao" ref="userDao" />
</bean>

这次项目,比如说 实现一个获取数据库的数据

首先是Dao类
//声明一个 SessionFactory对象
private SessionFactory sessionFactory;
//从数据库中读取	
public List<Experience> getExperienceByUid(int uid){
	Session session = sessionFactory.openSession();
	Query query = session.createSQLQuery("sql语句");
	query.setString("uid",Integer.toString(uid) );
	List list = query.list();
		
	session.close();
	return list;
}
//不能忘了set方法	
public void setSessionFactory(SessionFactory sessionFactory) {
	this.sessionFactory = sessionFactory;
}
接下来是Service类

private ExperienceDao experienceDao;
public List<Experience> getExperienceList(int uid) {
	List<Experience> list = experienceDao.getExperienceByUid(uid);
	return list;
}
	
	
public void setExperienceDao(ExperienceDao experienceDao) {
	this.experienceDao = experienceDao;
}

最后是controller

int uid = user.getUid();//这个user是User user = (User) request.getSession().getAttribute("user");
mv.setViewName("sender_homepage");
List<Experience> list = experienceService.getExperienceList(uid);
mv.addObject("experiencelist", list);

对,还有界面静态输出表格

<tbody>
                <c:forEach items="${experiencelist}" var="experience">
                     			<tr>
                                <td><a href="experiencedetail.html?eid=${experience[5]}">${experience[0] }</a></td>
                                <td>${experience[1] }</td>
                                <td>${experience[2] }</td>
                                <td>${experience[3] }</td>
                                <td>${experience[4] }</td>
                            </tr>
                     		</c:forEach>
              </tbody>


好了 获取写完了,接着是获取界面输入的内容并存入数据库

//Dao类中
public int addExperienceToDB(Experience object){
		Session session = sessionFactory.openSession();
		Transaction tx = session.beginTransaction();
		try{
			session.save(object);
			tx.commit();
		} catch (ConstraintViolationException e) {
			throw e;
		} finally {
			session.close();
		}
		return object.getEid();
	}
Service类
public int  addExperience(String keyword, String title, String content,
			HttpServletRequest request) {
		Experience experience = new Experience();
		User user =  (User)request.getSession().getAttribute("user");
		experience.setAuthor(user.getUid());
		experience.setKeyword(keyword);
		experience.setContent(content);
		experience.setTitle(title);
		try{
			 int eid = experienceDao.addExperienceToDB(experience);
			 return eid;
		} catch (ConstraintViolationException e) {
			throw e;
		}
	}
Controller

@RequestMapping(value="/send_experience")
	public @ResponseBody String send_experience(@RequestParam(value="keyword") String keyword,
			  @RequestParam(value="title")String title,@RequestParam(value="content") String content,HttpServletRequest request) {
		
		JSONObject json = new JSONObject();
		try{
			int eid = experienceService.addExperience(keyword, title, content, request);
			json.put("status", "0");
			json.put("eid", eid);
		} catch ( ConstraintViolationException e ){
			json.put("status", "-1");
		}
		return json.toString();
	}

js文件

$(document).ready(function(){
	$("#id_btn_send").click(function(){
		var keyword = $("#experience_keyword").val();
		var title = $("#title").val();
		var content = ue.getContent();
		$.ajax({
			type:"POST",
			url:"send_experience",
			data:{
				"keyword":keyword,
				"title":title,
				"content":content
			},
			dataType:"json",
			success:function(data){
				if(data['status']=='0'){
					alert('发送成功!');
					location.href="experiencedetail?eid="+data['eid'];
				} else if( data['status']=='-1' ) {
					alert('发送失败!');
				}
			}
		});
	});
});

好了 ,这样就完成了




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值