读书人

spring mvc跟jdbcTemplate例子

发布时间: 2012-09-15 19:09:28 作者: rapoo

spring mvc和jdbcTemplate例子

用到的包大家可以百度上找,稍后给出所有源代码

jar包下载

1. 建立mysql数据库 名称 test

CREATE TABLE `person` (`id`  int(11) NOT NULL ,`name`  varchar(100) ,`password`  varchar(100),PRIMARY KEY (`id`))

2.在 net.spring.bean下面建立一个实体Person

package net.spring.bean;public class Person {int id;String name;String password;public Person(int id,String name,String password){this.id=id;this.name=name;this.password=password;}public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}}

3.建立一个dao以及imp

package net.spring.dao;import net.spring.bean.Person;public interface PersonDAO {void save(Person person);void del(Person person);void update(Person person);void searchAll();}

package net.spring.dao.imp;import org.springframework.jdbc.core.JdbcTemplate;import net.spring.bean.Person;import net.spring.dao.PersonDAO;public class PersonDAOIMP implements PersonDAO{JdbcTemplate jdbcTemplate;public void del(Person person) {// TODO Auto-generated method stub}public void save(Person person) {// TODO Auto-generated method stubjdbcTemplate.update("insert into person values(?,?,?)",new Object[]{person.getId(),person.getName(),person.getPassword()});}public void searchAll() {// TODO Auto-generated method stub}public void update(Person person) {// TODO Auto-generated method stub}public JdbcTemplate getJdbcTemplate() {return jdbcTemplate;}public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {this.jdbcTemplate = jdbcTemplate;}}

4.修改web.xml

<?xml version="1.0" encoding="UTF-8"?><web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"><display-name>Spring3MVC</display-name><servlet><servlet-name>spring</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name><param-value>classpath*:spring-servlet.xml</param-value></init-param><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>spring</servlet-name><url-pattern>*.html</url-pattern></servlet-mapping><welcome-file-list><welcome-file>index.jsp</welcome-file></welcome-file-list></web-app>


5.建立一个配置文件spring-servlet.xml 路径在web.xml已经定义。在classpath也就是src根目录

<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:mvc="http://www.springframework.org/schema/mvc"xmlns:p="http://www.springframework.org/schema/p"xmlns:context="http://www.springframework.org/schema/context"xmlns:tx="http://www.springframework.org/schema/tx"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd   http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd   http://www.springframework.org/schema/mvc    http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">  <!-- apache.dbcp连接池的配置 --><bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"><property name="driverClassName" value="com.mysql.jdbc.Driver"></property><property name="url" value="jdbc:mysql://localhost:3306/test"></property><property name="username" value="root"></property><property name="password" value="199288"></property><!-- 最大活动连接数 --><property name="maxActive" value="100"></property><!-- 最大可空闲连接数 --><property name="maxIdle" value="30"></property><!-- 最大可等待连接数 --><property name="maxWait" value="500"></property><!-- 默认的提交方式(如果不需要事务可以设置成true,在实际应用中一般设置为false,默认为false) --><property name="defaultAutoCommit" value="true"></property></bean><!-- jdbc注入 --><bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">          <property name="dataSource">              <ref bean="dataSource" />          </property>      </bean> <!-- 启动Spring注解功能 --><mvc:annotation-driven /><mvc:default-servlet-handler /><context:component-scan base-package="net.spring.controller" /><bean id="viewResolver"class="org.springframework.web.servlet.view.UrlBasedViewResolver"><property name="viewClass"value="org.springframework.web.servlet.view.JstlView" /><property name="prefix" value="/WEB-INF/jsp/" /><property name="suffix" value=".jsp" /></bean><!-- dao注入 --><bean id="personDAO" class="net.spring.dao.imp.PersonDAOIMP"><property name="jdbcTemplate" ref="jdbcTemplate"></property></bean></beans>


6.现在离成功还有一步之遥。但是我们得先测试下,jdbc是否能正常工作。这是个良好习惯,

对了,之前的配置文件里面defaultAutoCommit需要配置成true。不然你得再加很大一段事务代码,现在只是举例从简。

没有加入junit.jar包的自己下载来加入

然后创建个测试类

package test;import net.spring.bean.Person;import net.spring.dao.PersonDAO;import net.spring.dao.imp.PersonDAOIMP;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;import junit.framework.TestCase;public class personTest extends TestCase {public void testSave(){ApplicationContext aContext=new ClassPathXmlApplicationContext("classpath:spring*.xml");PersonDAO personDAO=(PersonDAOIMP)aContext.getBean("personDAO");Person p=new Person(2,"你好hello","world");personDAO.save(p);}}

右键 testSave这个方法运行 作为junit运行。成功

然后接下来加上spring mvc
先在webroot下面写一个index.jsp

<%@ page language="java" import="java.util.*" pageEncoding="GBK"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html>  <head>  </head>    <body>   <form action="add.html">   id:<input name="id" type="text"/>   name:<input name="name" type="text"/>   password:<input name="password" type="text"/>   <input value="提交" type="submit"/>   </form>  </body></html>

再在web-inf/jsp/下面写一个hello.jsp当做视图

<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html>  <head>    <base href="<%=basePath%>">        <title>My JSP 'index.jsp' starting page</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0">    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">-->  </head>    <body>   ${person.name}  </body></html>

最后是controld代码


package net.spring.controller;import net.spring.bean.Person;import net.spring.dao.PersonDAO;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;import org.springframework.ui.ModelMap;import org.springframework.web.bind.annotation.PathVariable;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;import org.springframework.web.bind.annotation.RequestParam;import org.springframework.web.context.support.HttpRequestHandlerServlet;@Controllerpublic class HelloWorldController {@AutowiredPersonDAO personDAO;@RequestMapping(value="/add",method={RequestMethod.POST})public String helloWorld(Person person,ModelMap modelMap){personDAO.save(person);System.out.println(person.getName());modelMap.put("person",person);return "/hello";}}


到这里就完了。由于这个是一边编辑,一边修改的文章,因为独到这里,把前面的重写copy一下,我改了几处代码,不然会bug



读书人网 >其他数据库

热点推荐