Spring MVC中怎么实现数据库的增删改查

Spring MVC中怎么实现数据库的增删改查,第1张

spring中提供了 一个spring-jdbc,就是对jdbc的使用简化和扩展,增加一些开发效率。如果要了解更详细,可以搜索spring-jdbc使用详情。

具体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字符串


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10005530.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存