model对象定义
dao数据访问层
service逻辑层(接口)
Impl逻辑实现
dao层定义方法接口然后在service层和serviceimpl层实现接口方法从而达到操作数据库的目的。
WebContent->WEB-INF->lib需要常用的基础的jar包:
c3p0-0.9.1.2.jar
commons-dbutils-1.3.jar
mysql-connector-java-5.1.37-bin.jar
jstl-1.2.jar
fastjson-1.2.31.jar
WebContent里新建index.jsp(首页)
java Resources->src新建包
com.dao
com.daoimpl
com.servlet
com.util
com.service
com.serviceimpl
com.entity
com.bean
java Resources新建folder
resource导入c3p0-config.xml配置文件(重点:mysql驱动类,连接的数据库、数据库的用户名、密码)
java Resources->src->com.util
新建类JDBCUtils.java复制code(创建连接池对象、获取连接池、释放资源)
com.entity创建实体类
新建类 User.java(根据表名) public 数据类型 名
生成get、set方法、全选 ok
生成tostring方法 ok
构造器:
在pubic构造:source倒数第二个 ok、倒数第三个 ok super()删掉
java Resources->src->com.bean
BasicDao.java(写好了增删改查的功能,直接调用)
删掉错误的导入包,导入自己的包
实现类的dao继承BasicDao.java
basicdaoT是泛型,把实体类放进来(entity)导入包
固定内容:
com.bean(basicdao引入)
com.entity(实体类)
com.dao
com.until(jdbcuntil引入)
登录功能
com.service->新建UserService.java类(这是一个接口)->public interface UserSevice
->public (int)User getLogin(String username,String passward) 接收参数
int->User导入包
新建一个实现:
com.serviceimpl->新建UserServiceImpl.java
->public class UserServiceImpl implements UserService 实现接口
Impl报红线,add添加没有实现的方法
23分
Java Resources->src->com.servlet
新建servlet->LoginServlet.Java->next*2->do post、do get 去掉,选择service->finish
private static final long serialVersionUID = 1L;
protected void service…
之间内容删掉
写提交
WebContent->index.jsp
password:
Java Resources->src->com.servlet->LoginServlet.java
protected void service…
request.getParameter("")->ctrl+1->
String username = request.getParameter(“uname”);
…
调用接口
UserService userService = new UserServiceImpl();
【userService.getLogin(username,password);】->ctrl+1->
int count = userService.getLogin(username, password);
if(count > 0){
//登陆成功 跳到首页 列表页面
//转发
request.getRequestDispatcher(“success.jsp”).forward(request, response);
}else{
//失败 跳转到 登录页面
response.sendRedirect(request.getContextPath() + “/index.jsp”);
或者response.sendRedirect(“index.jsp”);
WebContent->新建success.jsp
title:首页->列表页面
body:success
编码问题(对于多个servlet这个代码是冗余的)
Java Resources->src->com.servlet->LoginServlet.java
protected void service…下面
复制request.setCharacterEncoding(“UTF-8”);
response.setContentType(“text/html;charset=UTF-8”);
String username = request.getParameter(“uname”);
…
Java Resources->src->新建包com.filter->新建类EncodingFilter.java
public class EncodingFilter implements Filter 导入包
红线add没有实现的方法
arg0.1.2改成前面字段开头小写
chain下面写
chain.doFilter(request,response);
chain上面解决编码问题
复制request.setCharacterEncoding(“UTF-8”);
response.setContentType(“text/html;charset=UTF-8”);
WebContent->WEB-INF->web.xml
xy
EncodingFilter
com.filter.EncodingFilter
//右键ctrlc下面复制全类名,ctrl左键可以追踪
EncodingFilter
/*
index.jsp
登陆成功
Java Resources->src->com.servlet->LoginServlet.java
UserService userService = new UserServiceImpl();
int count = userService.getLogin(username, password);
getLogin->ctrl左键->UserService.java->ctrl左键第二个实现->UserServiceImpl.java
->return 1
接口不能写具体方法,接口需要实现关键字implements
写数据库
Java Resources->src->com.serviceimpl->UserServiceImpl.java
public class …
UserDao userDao = new UserDao(); //实现
public (int)User getLogin(String username, String passward) {下面
int->User导入包
String sql = “”; //sql
userDao.scalar(sql, objects); \userDao.scalar(sql,username,password);
//objects直接把上面的String参数往里面放,不写也不报错
红线try/catch抛出异常
userDao.scalar((sql, objects);->ctrl+1->
Object scalar = userDao.scalar(sql, objects);->
User user = userDao.querySingle(sql, objects);
ruturn 1->return user;
String sql = “”;下面->User user =new User();
User user = userDao.querySingle((sql, objects);->
user = userDao.querySingle(sql, objects);//删掉开头的User
Java Resources->src->com.servlet->LoginServlet.java
int count = userService.getLogin(username, password);->
userService.getLogin(username, password);->ctrl+1->
User user = userService.getLogin(username, password);
下面加上int count =0;
if(count > 0)-> if (user !=null)
删掉int count =0;
System.out.println("user -> " + count);
添加System.out.print(“user ->”+ user);
//打印user
视频1 53分开始写sql
Java Resources->src->com.serviceimpl->UserServiceImpl.java
String sql = "SELECT * FROM t_user WHERE username = ? AND password = ? ";
参数用?代替
到此关联了数据库