JAVA WEB_MVC_学习笔记①
在学习猿地学习的java web,并把一些知识点记下;
而该部分主要是记录一些整体框架如何建立,以及数据库数据的插入选择到页面怎么实现;
- 导入前后台网页模板,即jsp文件以及一些css、js和图片等;然后利用navicat创建数据库,创建表;在eclipse建立实体类,属性名与数据库一致,即JavaBeen,以下为本次实体的属性;
private String USER_ID;
private String USER_NAME;
private String USER_PASSWORD;
private String USER_SEX;
private String USER_BIRTHDAY;
private String USER_IDENITY_CODE;
private String USER_EMAIL;
private String USER_MOBILE;
private String USER_ADDRESS;
private int USER_STATUS;
- 对添加用户页面,提交表单的action地址为/简单商城/manage/admin_douseradd,即DoUserAdd的完整地址;这个servlet通过@WebServlet("/manage/admin_douseradd")来表明自己的name,以便jsp调用;然后在这个servlet里,用request.getParameter()来获取用户在jsp提交上来的数据,括号里的值于jsp文件div定义的name值须一致
//获取用户提交上来的数据
String username = request.getParameter("userName");
String name = request.getParameter("name");
String pwd = request.getParameter("passWord");
String sex = request.getParameter("sex");
String year = request.getParameter("birthday");
String email = request.getParameter("email");
String mobile = request.getParameter("mobile");
String address = request.getParameter("address");
然后再创建用户实体来接受数据到数据库中,成功或失败都得重定向;
//成功或失败重定向到哪里
if(count > 0) {
//如果成功,重定向到用户页面
response.sendRedirect("admin_douserselect");
}else {
//用js代码阐述
PrintWriter out = response.getWriter();
out.write("<script>");
out.write("alert('用户添加失败')");
out.write("location.href='manage/admin_useradd.jsp'");
out.write("</script>");
}
- 创建Basedao类用来连接数据库,定义操作数据库的基本操作以及关闭数据库,再通过定义service包的userdao类来定义具体的数据库操作,包含sql语句和params参数,该参数获取的就是用户输入的数据,再把这些参数传到Basedao用来实现sql语句,再把返回值返回到servlet类去,这样就实现了用户数据的数据库插入;
public class Basedao {
static {
//加载驱动
try {
Class.forName("com.mysql.cj.jdbc.Driver");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//连接数据库
public static Connection getconn() {
//创建一个连接对象
Connection conn = null;
try {
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/simpleshop?useSSL=false&serverTimezone=CST","root","123456");
} catch (SQLException e) {
e.printStackTrace();
}
return conn;
}
//操作数据库
public static int exectuIUD(String sql,Object[] params) {
int count = 0;
Connection conn = Basedao.getconn();
//准备SQL
PreparedStatement ps = null;
//insert into user('''''','')value(?,?,?)?为占位符
try {
//准备SQL语句
ps = conn.prepareStatement(sql);
//循环绑定参数,setObject第一个参数为列,1的时候对应传入来的第一个参数
for(int i=0;i<params.length;i++){
ps.setObject(i+1, params[i]);
}
count = ps.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}finally {
Basedao.closeall(null, ps, conn);
}
//返回更新的语句数
return count;
}
//关闭数据库
public static void closeall(ResultSet rs,PreparedStatement ps,Connection conn) {
try {
if(rs!=null) {
rs.close();
}
if(ps!=null) {
ps.close();
}
if(conn!=null) {
conn.close();
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}