中软实习笔记记录

Day1

购物应用分析 (实体-属性)

1. 用户
  • 属性
    账号 密码 昵称 会员 手机 头像 信誉值 订单集 购物车 (关联关系:一个类以属性方式存在另一个类中)
  • 业务[用户操作]
    登陆
2. 订单

订单号 商品集 金额 下单时间 运费 快递 订单状态

3. 商品

商品编号 商品名 商品单价 数量 图片 折扣 详细介绍

4. 购物车

商品集


Eclipse for Java

  • new -> JavaProject
  • src -> new package
  • 关联has a、继承、
  • 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 数据库层[查询]
  • Java 单继承 多实现

课堂练习 学生选课实体类的分析及代码实现

学生、教师、管理员、专业、院系、课程。
+ 学生:学号、姓名、性别、生日、密码、[院系]、[专业]
+ 教师:工号、姓名、性别、生日、密码、职称、[教授课程]、[院系]
+ 管理员:工号、姓名、性别、生日、密码、权限
+ 专业:专业号码、专业名、辅导员、联系方式、专业介绍、[教师]、[学生]
+ 院系:系号码、系名称、系主任、联系方式、系介绍、[系员工]
+ 课程:课程号码、学时、学分、课程类型、课程介绍、[任课教师]、[选课学生]
管理员业务管理模块
  1. Dao接口类:

    类名:SysManagerDao
    成员变量:
    private int id;--编号
    private String sysaccount;--用户名
    private String syspassword;--密码
    
  2. 接口内方法:

    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();--查询所有管理员信息
    
  3. 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();--查询所有管理员信息
    
院系业务管理模块
  1. Dao接口类:

    类名:SysDepartmentDao
    成员变量:   
    private int id;
    private String depname;
    
  2. 接口内方法:

    int addDepartment(Department dep);-- 添加系
    int deleteDepartment(int id);-- 删除系
    int updateDepartment(Department dep);-- 更新系名称
    Department findDepById(int id);-- 根据编号查找系
    Department findDepByName(String depname);-- 根据名称查找系
    List<Department> findAllDep();--查看所有系
    
  3. 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();--查看所有系
    
专业班级业务管理
  1. 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();
    
  2. 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();
    
  3. 具体实现类个别详解

    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);
    }```
    
    
教师业务管理
  1. 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);
    
  2. 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();
    
课程业务管理
  1. 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);
    
  2. 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);
    
学生业务管理
  1. 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();
    
  2. 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. Dao接口类:TeacherDao
    //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);
    
日志管理
  1. Dao接口类:

    类名: SysLogDao
    成员变量:
    private int id ;
    private String Loginaccount ;
    private String Logintime  ;
    接口内方法:
    //记录登录信息
    public int setLog(Log log);
    //获得所有登录日志
    public List<Log> getLogs();
    
  2. Service接口类

    类名: SysLogService
    接口内方法:
        //记录登录信息
        public boolean setLog(Log log);
        //获得所有登录日志
        public List<Log> getLogs();
    
  3. 实现类

    Dao接口实现类名称:SysLogDaoImpl
    Service实现类名:SysLogServiceImpl
    


Day2

数据库

  • 五大约束
    • 主键约束(Primay Key Coustraint) 唯一性,非空性
    • 唯一约束(Unique Counstraint) 唯一性,可以空,但只能有一个
    • 检查约束(Check Counstraint) 对该列数据的范围、格式的限制(如:年龄、性别等)
    • 默认约束(Default Counstraint) 该数据的默认值
    • 外键约束(Foreign Key Counstraint) 需要建立两表间的关系并引用主表的列
  • 五大约束的语法示例
    • 添加主键约束(将stuNo作为主键)
    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
    
    • 添加检查约束 (对年龄加以限定 15-40岁之间)
    alter table stuInfo
    add constraint CK_stuAge check (stuAge between 15 and 40)
    alter table stuInfo
    add constraint CK_stuSex check (stuSex=’男’ or stuSex=’女′)
    
    • 添加外键约束 (主表stuInfo和从表stuMarks建立关系,关联字段stuNo)
    alter table stuInfo
    add constraint FK_stuNo foreign key(stuNo)references stuinfo(stuNo)
    
用户表 usertable
字段名 类型 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)
订单表 ordertable
字段名 类型 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)

购物车表

编号 商品集(关联关系 )

MySQL安装
$ 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
课堂练习
  • 查询wm001的所有订单、订单编号、下单日期以及订单中的所有商品名称、单价、详细信息
    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"
    );
    

Web前端



Day3

异步交互:当进行信息查看时,浏览器状态栏和标题栏无变化

<a>baidua>

你可能感兴趣的:(中软实习笔记记录)