一.需求:
1.创建3表(设编码集utf-8)
2.使用原生的JDBC连接数据库,连接数据库的信息从db.properties文件中读取。
3.定义一个index.html,里面包含以下功能的超链接按钮:
3.1查询Menu表所有列
3.2订单详情(需要3表连视图)
二.分析:
先 成功连接数据库 创建好JDBCUtils
开始写前端页面index.jsp
根据此中的菜单栏写出跳转的响应servlet
servlet中调service service调dao 拿到数据List
数据保存在作用域
响应数据并转发页面到响应jsp
jsp用jstl遍历出List中对象的属性并展现
三.代码实现:
我的IDEA目录结构:
1、配置文件db.properties
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/eesy?useUnicode=true&characterEncoding=utf8&useSSL=false
username=root
password=007
2、JDBCUtils
package utils;
import com.alibaba.druid.pool.DruidDataSourceFactory;
import com.mchange.v2.c3p0.ComboPooledDataSource;
import javax.sql.DataSource;
import java.io.IOException;
import java.io.InputStream;
import java.sql.*;
import java.util.Properties;
/**工具方法:
* 获取连接
* 关流
*/
public class JDBCUtils {
/**
* 获取连接
* @return Connection
*/
public static Connection getCon() {
try {
//通过 类加载器 读取db.properties获取数据库资源
InputStream inps = JDBCUtils.class.getClassLoader().getResourceAsStream("db.properties");
Properties pro = new Properties();
pro.load(inps);
Class.forName(pro.getProperty("driver"));
return DriverManager.getConnection(
pro.getProperty("url"),
pro.getProperty("username"),
pro.getProperty("password")
);
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
/**
* 关流:
* 关2个、关3个 ————用重载
* @param st
* @param con
*/
//
public static void close2(Statement st,Connection con){
if(st!=null){
try {
st.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(con!=null){
try {
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
public static void close3(ResultSet rs, Statement st, Connection con){
if(rs!=null){