具体spring-jdbc使用前,要导入相应的jar包,在applicationContext.xml中配置dataSource和jdbcTemplate就可以使用它了。
添删查改 *** 作:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public void add(User user){
jdbcTemplate.update("INSERT INTO USER VALUES('"
+ user.getId() + "', '"
+ user.getName() + "', '"
+ user.getSex() + "', '"
+ user.getAge() + "')")
}
public void edit(User user){
jdbcTemplate.update("UPDATE USER SET name = ? WHERE user_id = ?", new Object[] {name, id})
}
public int queryCount(){
int count = jdbcTemplate.queryForInt("SELECT COUNT(*) FROM USER")
}
防止表单重复提交的两种方式1)通过重定向
采取请求转发的方式完成表单内容的添加会造成内容的重复插入。
当向Servlet发送一条增加记录的请求后,servlet首先向数据库增加一条记录,然后又从数据库中查询出所有数据,接着转发到另一个页面,这时,页面上浏览器的地址显示的是servlet的地址,当用户刷新页面时,又会向servlet发送一条添加请求,这样会导致数据库中重复数据不断增加。
解决办法:采用重定向的方式添加数据不会导致数据的重复插入或删除。
向servlet发送一个添加请求时,这个servlet只执行添加 *** 作,然后重定向到另一个servlet进行数据的查询,最后转发到显示页面。
2)通过Session Token(Session令牌)
当客户端第一次向服务器端发送请求的时候,服务器会通过Token标签,并且会将这个字符串放到session中,然后将这个字符串发送给客户端,在提交之前页面上就有了一个字符串,服务器端也有一个字符串,两个字符串的内容是一样的,当你提交的时候,服务器会比较两个字符串是不是一样的,如果是一样的,就是第一次提交,并且更新服务器端的字符串;如果此时再次重复提交,服务器端的字符串已经发生改变而页面中的那个字符串还没有变,这时,你提交的时候两个字符串就不匹配了,服务器端就会认为是第二次提交,这样,服务器就不会再让提交了,进而转向invalid.token那<result>所指向的页面。
其实就是第二次与第一次jsp页面向服务器提交的内容和第一次一模一样,当在浏览器上返回前一页时,表单中提交的内容和第一次也是易语言的,所以这种情况下提交也会失败,当返回前面一夜然后刷新,刷新相当于向服务器发送了一次请求,所以这样提交就可以成功。
springmvc只是视图层控制容器不能直接 *** 作数据库,要通过持久层hibernate或者mybatis等框架对数据库 *** 作。可以不用实体,使用jdbc直接查询数据库也行,查出来转换成json字符串欢迎分享,转载请注明来源:内存溢出
评论列表(0条)