账号
密码
昵称
会员
手机
头像
信誉值
订单集
购物车
(关联关系:一个类以属性方式存在另一个类中)登陆
订单号
商品集
金额
下单时间
运费
快递
订单状态
商品编号
商品名
商品单价
数量
图片
折扣
详细介绍
商品集
new
-> JavaProject
src
-> new package
Right mouse button
-> Source
-> Getters and Setters
-> all build
//创建类后生成get set 方法Ctrl + Shift + F
//自动排版create class userinfo
public class userInfo{ //用户类
private String Id;
//...
//订单
private List<orderInfo> orderList; //Ctrl + Shift + O 导包 java.util 关联关系 数据库1->M
//购物车
private buyCar goodsCar; //关联关系 数据库1->1
}
create class orderinfo
public class orderInfo{ //订单类
//...
//商品
private List<Product> orderProducts; //Ctrl + Shift + O 导包
//Alt + / 自动补全
//建立 get set 方法
}
create class product
public class Product{ //商品类
private String probId;
private String proName;
private double proPrice; //商品单价
private int proNum; //商品数量
private String proPhoto;
private double discount; //折扣
private String proinfo; //详细介绍
}
create class buyCar
public class buyCar{ //购物车
private String carNum;
private List<Product> proList; //商品集
//get set
}
implete interface user
public interface UserServiceInter{ //用户业务接口
//登陆
public UserInfo login(String userAccount, String userPass);
//注册
public boolean userReg(UserInfo user);
//修改密码
public boolean alterPass(UserInfo user);
}
implete interface order
public interface OrderServiceInter{ //订单业务接口
//下单
public boolean order(OrderInfo order);
//确认收货
public void commitGetPro(String orderId);
//取消订单
public void orderDel(String[] orderId);
}
create class to implete interface
public class UserServiceImp implements UserServiceInter{
}
public interface UserDaoInter{
//用户添加
public boolean userAdd(userInfo user);
//用户修改
public boolean userAlter(userInfo user);
//用户查询
public boolean userSelectByAccount(String userAccount);
public List<OrderInfo> userSelect();
//用户删除
public boolean userDel(String userAccount);
}
public interface OrderDaoInter{
//添加订单
public boolean orderAdd(orderInfo order);
//修改订单
public boolean orderAlter(orderInfo order);
//查询订单
public boolean orderSelectById(String orderId);
public List<OrderInfo> orderSelect(String userAccount);
//删除订单
public boolean orderDel(String userAccount);
}
视图 控制
Model View Controller
│ │ |
└── ○ Entrv
└── ○ Service 业务层[登陆 注册]
└── ○ Dao 数据库层[查询]
+ 学生:学号、姓名、性别、生日、密码、[院系]、[专业]
+ 教师:工号、姓名、性别、生日、密码、职称、[教授课程]、[院系]
+ 管理员:工号、姓名、性别、生日、密码、权限
+ 专业:专业号码、专业名、辅导员、联系方式、专业介绍、[教师]、[学生]
+ 院系:系号码、系名称、系主任、联系方式、系介绍、[系员工]
+ 课程:课程号码、学时、学分、课程类型、课程介绍、[任课教师]、[选课学生]
Dao接口类:
类名:SysManagerDao
成员变量:
private int id;--编号
private String sysaccount;--用户名
private String syspassword;--密码
接口内方法:
Manager managerLogin(String sysaccount,String syspassword);--根据帐号和密码查询管理员
int addManager(Manager m);-- 添加管理员
int deleteManager(int id);-- 删除管理员
int updateManager(Manager m);-- 修改管理员密码
Manager findManagerById(int id);-- 根据id查询管理员
Manager findManagerByAccount(String sysaccount);-- 根据帐号查询管理员
List<Manager> findAllManager();--查询所有管理员信息
Service接口类
类名:SysManagerService
Manager managerLogin(String sysaccount,String syspassword);-- 根据帐号和密码查询管理员
boolean addManager(Manager m);-- 添加管理员
boolean deleteManager(int id);-- 删除管理员
boolean updateManager(Manager m);-- 修改管理员密码
Manager findManagerById(int id);-- 根据id查询管理员
Manager findManagerByAccount(String sysaccount);-- 根据帐号查询管理员
List<Manager> findAllManager();--查询所有管理员信息
Dao接口类:
类名:SysDepartmentDao
成员变量:
private int id;
private String depname;
接口内方法:
int addDepartment(Department dep);-- 添加系
int deleteDepartment(int id);-- 删除系
int updateDepartment(Department dep);-- 更新系名称
Department findDepById(int id);-- 根据编号查找系
Department findDepByName(String depname);-- 根据名称查找系
List<Department> findAllDep();--查看所有系
Service接口类
类名:SysDepartmentService
boolean addDepartment(Department dep);-- 添加系
boolean deleteDepartment(int id);-- 删除系
boolean updateDepartment(Department dep);-- 更新系名称
Department findDepById(int id);-- 根据编号查找系
Department findDepByName(String depname);-- 根据名称查找系
List<Department> findAllDep();--查看所有系
Dao接口类:
类名: SysClassDao
成员变量:
private int id;
private String classname;
接口内方法:
//添加班级
public int addClassBean(ClassBean classbean);
//删除班级
public int deleteClassBean(int id);
//修改班级
public int updateClassBean(ClassBean classbean);
//根据编号查找班级
public ClassBean findClassBeanById(int id);
//根据名称查找班级
public ClassBean findClassBeanByName(String classname);
//查看所有班级
public List<ClassBean> findAllClass();
Service接口类
类名: SysClassService
接口内的方法:
//添加班级
public boolean addClassBean(ClassBean classbean);
//删除班级
public boolean deleteClassBean(int id);
//修改班级
public boolean updateClassBean(ClassBean classbean);
//根据编号查找班级
public ClassBean findClassBeanById(int id);
//根据名称查找班级
public ClassBean findClassBeanByName(String classname);
//查看所有班级
public List<ClassBean> findAllClass();
具体实现类个别详解
Dao接口实现类名称:SysClassDaoImpl
//通过班级名称来找到班级
public ClassBean findClassBeanByName(String classname) {
Connection conn =DBConnection.getConnection();
ClassBean clsb = null;
String sql = "use selectivedb select * from t_class where classname= '"+classname+"'";
ResultSet rs =null;
try{
rs =ExecuteSql.executeQuery(sql, conn);
while(rs.next()){
clsb = new ClassBean();
clsb.setId(rs.getInt("id"));
clsb.setClassname(rs.getString("classname"));
}
}catch(Exception e){
e.printStackTrace();
}
DBConnection.closeConn(conn);
return clsb;
}
Service实现类名:SysClassServiceImpl
//通过班级名称来找到班级
public ClassBean findClassBeanByName(String classname) {
return c.findClassBeanByName(classname);
}```
Dao接口类:
类名: TeacherDao
成员变量:
TeacherView:
private int tid;
private String tpassword;
private String tname;
private String tsex;
private int tage;
private String tjob;
private String depname;
Teacher:
private int tid;
private String tpassword;
private String tname;
private short tsex;
private int tage;
private String tjob;
private int tdepartment;
接口内方法:
//1.登录
public Teacher teacherLogin(int tid, String tpassword);
//2.修改密码
public int updatePassword(int tid, String tpassword);
//3.查看自己的任课信息
public List<Course> findCourseByTeacher(int tid);//根据教师编号查询教师任课信息
//4.查看选课信息(某门课有哪些学生选修)
public List<StudentView> findSelectCourseByCid(int cid);//根据课程号查询选课信息
//5.录入成绩
public int updateScore(SelectCourse sc);//根据学号,课程号,录入或修改成绩
//6.成绩信息查看(某门课成绩)
public List<SelectCourseView> findCourseScoreByCid(int cid);
Service接口类
类名: SysTeacherService
类中方法:
//添加教师
public boolean addTeacher(Teacher tea);
//删除教师
public boolean deleteTeacher(int tid);
//修改教师
public boolean updateTeacher(Teacher tea);
//根据教师工号查找
public TeacherView findTeaById(int tid);
//查看所有教师
public List<TeacherView> findAllTeacher();
Dao接口类:
类名: SysCourseDao
成员变量:
CourseView:
private int id;
private String coursename;
private int credit;
private String ctime;
private String caddress;
private String tname;
private int limitnumber;
private int truenumber;
Course:
private int id;
private String coursename;
private int credit;
private String ctime;
private String caddress;
private int teacher;
private int limitnumber;
private int truenumber;
接口内方法:
//添加课程
public int addCourse(Course cou);
//根据课程编号删除课程
public int deleteCourse(int id);
//修改课程
public int updateCourse(Course cou);
//根据课程名查找课程
public CourseView findCouByName(String coursename);
//查看所有课程
public List<CourseView> findAllCourse();
public boolean findCouByAll(Course cou);
Service接口类
Service实现方法名:
//添加课程
public boolean addCourse(Course cou);
//删除课程
public boolean deleteCourse(int id);
//修改课程
public boolean updateCourse(Course cou);
//根据课程名查找课程
public CourseView findCouByName(String coursename);
//查看所有课程
public List<CourseView>findAllCourse();
public boolean findCouByAll(Course cou);
Dao接口类:
类名: SysStudentDao
成员变量:
StudentView:
private int sid;
private String sname;
private String spassword;
private String ssex;
private int sage;
private String classname;
private String depname;
Student:
private int sid;
private String sname;
private String spassword;
private short ssex;
private int sage;
private int sclass;
private int sdepartment;
接口内方法:
//添加学生
public int addStudent(Student stu);
//删除学生
public int deleteStudent(int sid);
//修改学生
public int updateStudent(Student stu);
//根据学号查找学生
public StudentView findStuById(int sid);
//查找所有学生
public List<StudentView> findAllStudent();
Service接口类
类名: SysStudentService
接口内方法:
//添加学生并返回学号
public boolean addStudent(Student stu);
//删除学生
public boolean deleteStudent(int sid);
//修改学生
public boolean updateStudent(Student stu);
//根据学号查找学生
public StudentView findStuById(int sid);
//查找所有学生
public List<StudentView> findAllStudent();
//1.登录
public Teacher teacherLogin(int tid, String tpassword);
//2.修改密码
public int updatePassword(int tid, String tpassword);
//3.查看自己的任课信息
public List<Course> findCourseByTeacher(int tid);//根据教师编号查询教师任课信息
//4.查看选课信息(某门课有哪些学生选修)
public List<StudentView> findSelectCourseByCid(int cid);//根据课程号查询选课信息
//5.录入成绩
public int updateScore(SelectCourse sc);//根据学号,课程号,录入或修改成绩
//6.成绩信息查看(某门课成绩)
public List<SelectCourseView> findCourseScoreByCid(int cid);
Dao接口类:
类名: SysLogDao
成员变量:
private int id ;
private String Loginaccount ;
private String Logintime ;
接口内方法:
//记录登录信息
public int setLog(Log log);
//获得所有登录日志
public List<Log> getLogs();
Service接口类
类名: SysLogService
接口内方法:
//记录登录信息
public boolean setLog(Log log);
//获得所有登录日志
public List<Log> getLogs();
实现类
Dao接口实现类名称:SysLogDaoImpl
Service实现类名:SysLogServiceImpl
主键约束(Primay Key Coustraint)
唯一性,非空性唯一约束(Unique Counstraint)
唯一性,可以空,但只能有一个检查约束(Check Counstraint)
对该列数据的范围、格式的限制(如:年龄、性别等)默认约束(Default Counstraint)
该数据的默认值外键约束(Foreign Key Counstraint)
需要建立两表间的关系并引用主表的列alter table stuInfo
add constraint PK_stuNo primary key (stuNo)
alter table stuInfo
add constraint UQ_stuID unique(stuID)
alter table stuInfo
add constraint DF_stuAddress default (‘地址不详’) for stuAddress
alter table stuInfo
add constraint CK_stuAge check (stuAge between 15 and 40)
alter table stuInfo
add constraint CK_stuSex check (stuSex=’男’ or stuSex=’女′)
alter table stuInfo
add constraint FK_stuNo foreign key(stuNo)references stuinfo(stuNo)
字段名 |
类型 |
FK/PK |
约束 |
---|---|---|---|
用户编号 |
integer |
PK |
unique not null |
账号 |
varchar(20) |
unique not null | |
姓名 |
varchar(20) |
null | |
密码 |
varchar(20) |
not null | |
生日 |
date |
null | |
性别 |
varchar(4) |
check ‘m’ or ‘w’ | |
头像 |
varchar(200) |
||
手机 |
varchar(11) |
||
类型 |
varchar(30) |
字段名 |
类型 |
FK/PK |
约束 |
---|---|---|---|
订单编号 |
varchar(200) |
PK |
unique not null |
用户编号 |
integer |
FK |
关联用户表中的用户编号 |
订单金额 |
double(10,2) |
unique not null | |
下单时间 |
datetime |
null | |
运费 |
double(4,2) |
not null | |
快递类型 |
varchar(80) |
not null | |
快递编号 |
varchar(50) |
null(未发货) | |
订单状态 |
integer |
0/1/2/3/… |
一对一
一对多
多对多
商品编号 商品名称 商品单价 商品数量 商品图片 折扣 详细介绍 图片
字段名 类型 FK/PK 约束
商品编号 integer PK unique not null
商品名称 varchar(100) not null
商品单价 double(10,2) not null
商品数量 integer
商品图片 varchar(200)
折扣 double(10,2)
详细介绍 varchar(200)
图片 varchar(200)
编号 商品集(关联关系 )
$ sudo apt-get update
$ sudo apt-get install mysql-server -y
$ sudo systemctl status mysql.service
● mysql.service - MySQL Community Server
看到 “Active: active (running)”。如果没有,使用下列命令去开始这个服务:sudo systemctl start mysql.service
$ sudo mysql_secure_installation
设置密码 一路y
$ mysql -u hyper -phc162315
mysql: [Warning] Using a password on the command line interface can be insecure.
ERROR 1045 (28000): Access denied for user 'hyper'@'localhost' (using password: YES)
解决方案
mysql> UPDATE mysql.user SET authentication_string=PASSWORD('hc.162315'), PLUGIN='mysql_native_password' WHERE USER='root';
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
mysql> UPDATE mysql.user SET authentication_string=PASSWORD('Hc.162315'), PLUGIN='mysql_native_password' WHERE USER='root';
Query OK, 1 row affected, 1 warning (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 1
SELECT proId,proName,proPrice,proInfo
FROM proTable
WHERE proId IN
(
SELECT proId
FROM ord_proTable
WHERE orderId IN
(
SELECT orderId
FROM orderTable
WHERE userId = 'wm001'
)
)
连接查询 内连接 外连接SELECT res.*
FROM
(
SELECT ortb.userId,ortb.orderId,ortb.orderdate,pro.proName,proPrice
FROM orderTable ortb
INNER JOIN orderproTable odpr
USING (orderId)
INNER JOIN productTable pro
USING (proId)
)
res
WHERE res.userId =
(
SELECT userId
FROM userTable
WHERE userAccount = "wm001"
);
异步交互:当进行信息查看时,浏览器状态栏和标题栏无变化
<a>baidua>