##封装JDBC登录信息properties代码
driverClass=com.mysql.jdbc.Driver
url=jdbc:mysql:///demo
username=root
password=1234
##封装java链接数据库(SQL)代码
import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import entity.Goods;
import utils.JDBCUtils;
@SuppressWarnings("all")
@WebServlet("/queryGoods")
public class QueryGoodsServlet extends HttpServlet {
public void service(HttpServletRequest request, HttpServletResponse response) throws
ServletException, IOException {
//赋值
Connection conn = null;
PreparedStatement stmt = null;
ResultSet rs = null;
查询代码
/*
try {
// 获取连接
conn = JDBCUtils.getConnection();
// 书写SQL
stmt = conn.prepareStatement("select * from goods");
rs = stmt.executeQuery();
List<Goods> gList = new ArrayList<Goods>();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//遍历把数据存放到数组中 然后遍历输出
while ( rs.next() ) {
String date = rs.getString("createtime");
Date createtime = sdf.parse(date);
Goods goods = new Goods(rs.getInt("id"),
rs.getString("name"),
rs.getDouble("marketprice"),
rs.getDouble("estoreprice"),
rs.getString("cid"),
rs.getInt("num"),
rs.getString("imgurl"),
rs.getInt("ishot"),
rs.getInt("status"),
createtime,
rs.getString("description"));
gList.add(goods);
}
// 将数据保存到request作用域中,仅在当次请求有效
request.setAttribute("gList", gList);
// 跳转(转发、重定向)到goods.jsp
request.getRequestDispatcher("/goods.jsp").forward(request, response);
} catch (Exception e) {
e.printStackTrace();
} finally {
JDBCUtils.release(rs, stmt, conn);
}
}
}
防止SQL注入 获取用户信息
try {
// 获取连接
conn = JDBCUtils.getConnection();
// 书写SQL
String sql = "select * from user where username=? and password=?";
stmt = conn.prepareStatement(sql);
// 设置参数
stmt.setString(1, username);
stmt.setString(2, password);
// 发送SQL
rs = stmt.executeQuery();
// 判断对错
if ( rs.next() ) {// 正确
// 判断是否勾选了记住用户名复选框
// 表单在提交时,如果复选框和单选按钮没有选中,则表单不会提交值,则获取的结果为null
String remember = request.getParameter("remember");
if ( remember != null ) {
// "张三" ===> %E5%BC%A0%E4%B8%89
username = URLEncoder.encode(username, "UTF-8");
Cookie c = new Cookie("username", username);
// 设置生存时间
c.setMaxAge(Integer.MAX_VALUE);
c.setPath(request.getContextPath());
response.addCookie(c);
}
// 取消记住用户名:删除cookie中的用户名
else {
Cookie c = new Cookie("username", null);
// 设置生存时间
c.setMaxAge(0);
c.setPath(request.getContextPath());
response.addCookie(c);
}
// request.getContextPath(): /web36
response.sendRedirect(request.getContextPath() + "/index.html");
}
// err
else {
//response.sendRedirect(request.getContextPath() + "/err.html");
response.setContentType("text/html; charset=UTF-8");
response.getWriter().write("<script>alert('用户名或密码错误!');history.go(-1);</script>");
}
} catch (Exception e) {
e.printStackTrace();
} finally {
JDBCUtils.release(rs, stmt, conn);
}
}
}