【菜鸟之旅】jsp + tomcat + java 实现简单的从…
2018-06-24 00:01:59来源:未知 阅读 ()
通过网上查找资料和求助大神帮助,终于完成了简单的数据有后台传递到前台的操作。
左图,是网页显示结果,右图是数据库中的数据。
工程目录结构
数据库实体类 主要包含了数据库中对应的表的字段(Table.java)。
1 package demo4.entity; 2 3 public class Table { 4 5 private String id; 6 private String name; 7 private int age; 8 private String sex; 9 10 public Table(){} 11 12 public Table(String id, String name, int age, String sex){ 13 this.id = id; 14 this.name = name; 15 this.age = age; 16 this.sex = sex; 17 } 18 19 public String getId() { 20 return id; 21 } 22 23 public void setId(String id) { 24 this.id = id; 25 } 26 27 public String getName() { 28 return name; 29 } 30 31 public void setName(String name) { 32 this.name = name; 33 } 34 35 public int getAge() { 36 return age; 37 } 38 39 public void setAge(int age) { 40 this.age = age; 41 } 42 43 public String getSex() { 44 return sex; 45 } 46 47 public void setSex(String sex) { 48 this.sex = sex; 49 } 50 51 52 }
数据库操作类: (TableDao.java)
package demo4.dao; import java.sql.*; import java.util.*; import demo4.entity.*; public class TableDao { public List readTable(){ List<Table> list = new ArrayList<Table>(); Connection conn = null; PreparedStatement stat = null; ResultSet rs = null; try{ Class.forName("com.mysql.jdbc.Driver"); }catch(ClassNotFoundException e){ e.printStackTrace(); } try { conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/demo01","root","root"); String sql = "select * from user_info"; stat = conn.prepareStatement(sql); rs=stat.executeQuery(); while(rs.next()){ String id = rs.getString("id"); String name = rs.getString("name"); int age = rs.getInt("age"); String sex = rs.getString("sex"); Table t1 = new Table(id, name, age, sex); list.add(t1); } } catch (SQLException e) { e.printStackTrace(); }finally { try { if(rs!=null){ rs.close(); } if(stat!=null){ stat.close(); } if(conn!=null){ conn.close(); } } catch (SQLException e2) { e2.printStackTrace(); } } return list; } }
页面(index.jsp):
<%@page import="java.util.List"%> <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <%@page import="demo4.dao.TableDao,demo4.entity.Table"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Show Table</title> </head> <style> .bbody{ margin-left:300px; margin-top:100px } .bbody > table { height:200px; width:400px; } td{ text-align:center; } </style> <body> <div class="bbody"> <table border="1"> <tr > <td>Id</td> <td>Name</td> <td>Age</td> <td>Sex</td> </tr> <% TableDao dao=new TableDao(); List<Table> list =dao.readTable(); for(Table tl:list) {%> <tr> <td><%=tl.getId() %></td> <td><%=tl.getName() %></td> <td><%=tl.getAge() %></td> <td><%=tl.getSex() %></td> </tr> <%} %> </table> </div> </body> </html>
PS:
第一:首先选择List集合作为返回值,能够更好的管理这些数据。
第二:DriverManager类,Connection接口,Statement接口,ResultSet接口, 这是JDBC链接数据库需要的类和接口。
其中Statement 和 这次选择的PreparedStatement 区别:
PreparedStatement用于使用绑定变量重用执行计划,是预编译的,对于批量处理可以大大提高效率.也叫JDBC存储过程
使用 Statement 对象。在对数据库只执行一次性存取的时侯,用 Statement 对象进行处理。PreparedStatement对象的开销比Statement大,对于一次性操作并不会带来额外的好处。
第三:Class.forName("XXX.XXX.XXX.XXXXX")的作用是要求JVM查找并加载指定的类,也就是说JVM会执行该类的静态代码段
在Class.forName加载完驱动类,开始执行静态初始化代码时,会自动新建一个Driver的对象,并调用DriverManager.registerDriver把自己注册到DriverManager中去。
这是因为在JDBC规范中明确要求这个Driver类必须向DriverManager注册自己。
第四:这是我自己遇到的一个问题,就是程序运行时,提示java.lang.ClassNotFoundException: com.mysql.jdbc.Driver…… 这个错误
原因是在我自己对应的Tomcat中没有对应的MySQL-connection的jar包,
所以解决办法也就是:向Tomcat的lib中导入jar包:mysql-connector-java-5.1.43-bin.jar(这个对应这儿自己)
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- JSP session配置对web应用的影响 2019-12-27
- VUE 采坑之旅-- Mint-ui 按需引入报出Module build failed: 2019-02-21
- 页面添加滚动图片效果 2019-01-01
- jQuery入门第一天-(一个菜鸟的不正经日常) 2018-09-18
- 【C#】OOP之多态那点事 2018-06-27
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash