SpringHibernate流程个人体会

例如把价格price从前台传到数据库再查询得到

1,让 jsp层$("#editForm").submit();某个inputbox的id=price,输入值

<form id="editForm" method="post" action="registSth.do">
<input type="hidden" id="customCode" name="customCode"/>
</form>

2, 若js层做处理$("#price").val()获得值

补充:

$("#price").val(XXX)可以传值

$("#price").text()可以对应label显示的内容

$("#price").attr("title",$("#price").text()) 添加浮动提示


3, js层 $("#editForm").submit();


4, 进入后台registSth.do(spring映射Controller类)

补充: 构造一个FormBean类,里面就是定义变量和gettersetter,负责存放前台来的数据

貌似会自动映射把前台的值赋给FormBean里?

后台使用时直接FormBean.get,set就行

与数据库交互用DaoBean,与前台交互用FormBean(一般后台会做FormBean与DaoBean间的传值吧...大概)


5, 之后调用DataDao里的方法和数据库交互,把获取了FormBean值的DaoBean作为参数

DataDao分为interface和Impl,感觉不分开也差不多,但说是这样做方便数据库转移时的操作,就那样吧


6, DataDaoImpl里生成sql语句,然后jdbcTemplate.execute(sbSql.toString());算是完成前台对数据库进行变动(不需要数据库返回值的)


从数据库获取price的数据


1, 从js向后台发出请求

用ajax,举个例子,url的方法执行完后会执行success的内容

$.ajax({type     : "POST",
			url      : "init.do",
			dataType : "json",
			async    : false,
			data     : {
				         param   : _param }, //传到后台的参数
			error    : function(msg){ alert(msg); },
			success  : function(data){ 
			       alert(data.priceList[0]); }
	});

2, 进入init.do(返回值为Map<String, Object>)

public Map<String, Object> init(HttpServletRequest request, FormBean formBean)

方法中首先初始化一个map,用来保存查到的数据

然后调用DataDao中的查询函数,此时把前台传来的param作为参数传进去,用formBean.getParam()

(等下再回到init.do)


3, DataDaoImpl里面获取数据

一般是这个形式List<DataDaoBean> init (FormBean formBean)

在里面生成select XXX的语句

然后用

return jdbcTemplate.query(sbSql.toString(), new BeanPropertyRowMapper<DataDaoBean>(DataDaoBean.class));
返回结果

BeanPropertyRowMapper是Spring里自动帮你根据名字填充的工具

4, 回到init.do

拿到了DataDaoBean的List,每个DaoBean对应一条数据

然后扔进map里

map.put("price", resultList.get(0));

最后return map


5, 最后js层返回的map能在success函数里使用,用data.map里设的名字取得就ok

你可能感兴趣的:(SpringHibernate流程个人体会)