中软实习笔记记录

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约束
用户编号integerPKunique not null
账号varchar(20)unique not null
姓名varchar(20)null
密码varchar(20)not null
生日datenull
性别varchar(4)check ‘m’ or ‘w’
头像varchar(200)
手机varchar(11)
类型varchar(30)
订单表 ordertable
字段名类型FK/PK约束
订单编号varchar(200)PKunique not null
用户编号integerFK关联用户表中的用户编号
订单金额double(10,2)unique not null
下单时间datetimenull
运费double(4,2)not null
快递类型varchar(80)not null
快递编号varchar(50)null(未发货)
订单状态integer0/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>baidu</a>
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值