gpt4 book ai didi

java - Spring MVC 4 + JSP + JDBC

转载 作者:行者123 更新时间:2023-11-29 03:31:01 25 4
gpt4 key购买 nike

我正在使用 Spring MVC 4、JSP 和 MySQL 在一个简单的请求中显示数据。

  • 数据库名称:contactdb
    表名 :联系人 enter image description here

  • 记录
    enter image description here

  • 我的文件夹结构
    enter image description here

  • 我在我的 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>
  • 但是,从上面的代码中,我无法获取数据库值。 enter image description here

  • 我哪部分写错了?

最佳答案

在我看来,没有任何明显错误的地方。正如评论所建议的那样,我会使用调试器来查看 DAO 和 Controller 中的值,在旅程的每一步。

纯粹是猜测,但我注意到您在 Controller 中的变量名称 listContract 有一个小错别字:

List<Contact> listContract = contactDAO.getAll();

它不应该影响此示例中的代码,但也许只是仔细检查代码其他区域的拼写错误?

关于java - Spring MVC 4 + JSP + JDBC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30690393/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com