[英]Spring MVC 4 + JSP + JDBC
我正在使用Spring MVC 4,JSP和MySQL在一个简单的请求中显示数据。
数据库名称: contactdb
表名:联系方式
记录
我的文件夹结构
我在pom.xml文件中添加了以下依赖项:
---> mysql-connector-java-5.1.30
-> spring-jdbc-4.1.6
com.rh.model / Contact.java
public class Contact { private int id; private String name; private String email; private String address; private String telephone; //constructors //getters and setters }
com.rh.dao / ContactDAO.java
public interface ContactDAO { public List<Contact> getAll(); }
com.rh.dao / ContactDAOImpl.java
public class ContactDAOImpl implements ContactDAO{ private DataSource dataSource; public void setDataSource(DataSource dataSource) { this.dataSource = dataSource; } public List<Contact> getAll() { String sqlSelect = "SELECT * FROM contact"; List<Contact> contactList = new ArrayList<Contact>(); Connection conn = null; PreparedStatement ps = null; ResultSet rs = null; try{ conn = dataSource.getConnection(); ps = conn.prepareStatement(sqlSelect); rs = ps.executeQuery(); while(rs.next()){ Contact contact = new Contact(); contact.setId(rs.getInt("contact_id")); contact.setName(rs.getString("name")); contact.setEmail(rs.getString("email")); contact.setAddress(rs.getString("address")); contact.setTelephone(rs.getString("telephone")); contactList.add(contact); } rs.close(); ps.close(); conn.close(); }catch(SQLException e){ e.printStackTrace(); } return contactList; }
com.rh.config / Spring.xml
<bean id="contactDAO" class="com.rh.dao.ContactDAOImpl"> <property name="dataSource" ref="dataSource" /> </bean> <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver" /> <property name="url" value="jdbc:mysql://localhost:3306/contactdb" /> <property name="username" value="root" /> <property name="password" value="" /> </bean>
com.rh.controller / Test1Controller.java
@Controller public class Test1Controller { ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("com.rh.config/Spring.xml"); ContactDAO contactDAO = ctx.getBean("contactDAO", ContactDAO.class); @RequestMapping(value="/") public ModelAndView listContact(ModelAndView model) throws IOException{ List<Contact> listContract = contactDAO.getAll(); model.addObject("listContact", listContract); return model; }
}
的index.jsp
... <c:forEach var="contact" items="${listContact}" varStatus="status"> <tr> <td>${status.index + 1}</td> <td>${contact.name}</td> <td>${contact.email}</td> <td>${contact.address}</td> <td>${contact.telephone}</td> </tr> </c:forEach>
但是,从上面的代码中,我无法获取数据库值。
我写错了哪一部分?
据我所知,没有任何东西显然是错误的。 正如评论所建议的那样,我将使用调试器在旅程的每个步骤中查看DAO和Controller中的值。
纯粹是推测,但我注意到您在Controller中对变量名listContract
有一个小错字:
List<Contact> listContract = contactDAO.getAll();
它不应该影响此示例中的代码,而可能只是仔细检查代码其他区域中的拼写错误?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.