暑期集训第十至十三天

前言

第十天:Mysql之前没有学过,这次相当于从零开始,感觉比想象中容易一点。
第十一天:安装了maven,学习了如何使用码云。
第十二天,讲解JDBC。
第十三天,讲解Javaweb前端基础。

第十天——MySQL

创建表格

经实验,一个查询只能建立一个表格,因为我所有代码一起敲进去,就建立了People一个表格,然而我分开打每一段代码,都可以顺利建立,很奇怪。(实际上是不应该这样的,非常奇怪)

 create table person(
 driver_id varchar(50),
 name varchar(50),
 address varchar(50),
 primary key (driver_id)
 );
 
 create table car(
 license_plate varchar(50),
 modle varchar(50),
 year date,
 primary key (license_plate)
 );
 
 create table accident(
 report_number int(50),
 year date,
 location VARCHAR(50),
 primary key (report_number)
 );
 
create table owns(
 driver_id varchar(50),
 license_plate varchar(50),
 primary key (driver_id),
 CONSTRAINT `DRI` FOREIGN KEY (`driver_id`) REFERENCES `person` (`driver_id`) ON DELETE CASCADE ON UPDATE CASCADE
 );
 
create table participated(
 report_number int(50),
 license_plate varchar(50),
 driver_id varchar(50),
 damage_amount int(50),
 primary key (driver_id),
 CONSTRAINT `acc` FOREIGN KEY (`report_number`) REFERENCES `accident` (`report_number`) ON DELETE CASCADE ON UPDATE CASCADE,
  CONSTRAINT `lp` FOREIGN KEY (`license_plate`) REFERENCES `car` (`license_plate`) ON DELETE CASCADE ON UPDATE CASCADE
 );

然后就是,date还是尽量不要去设置范围

查询

select e.ID, person_name from employee as e, works as w, company as с, manages as m where e.lD = w.ID and e.citу = с.city and w.company_name =c.company_nаmе;#a
select e.ID, person_name from employee as e, works as w, company as c,employee as m where e.ID = manages.id and m.street = e .street and m.city = e .city;#b
select er.ID, person_name from employee as er, works as w where er.ID = w.ID and w.salary < (SELECT AVG(w.salary) from employee as e where e.salary = er .salary);#c
select c.company_name from works as w, company as c where c.company_name = w.company_name and w.salary <= (select min(wr.salary) from wr as works where wr.salary = w .salary);#d
select name , course_id
from instructor,teaches
where instructor.ID = teaches.ID;#1
select distinct i.dept_name from instructor as i where i.instructor like '%计算机科学%' and i.salary >=70000;#2
SELECT distinct i.name, i.dept_name, d.building FROM instructor as i,department as d, d join i ON dept_name where d.dept_name = i.dept_name;#3
select distinct T.name
from instructor as T, instructor as S
where T.salary > S.salary and S.dept_name =  '生物系'; #4
SELECT d.dept_name FROM department as d WHERE d.building = '%Watson%';#5
(select course_id
    from  section
    where semester = 'Fall' and year = 2009)
union
(select course_id
    from  section
    where semester = 'Spring' and year = 2010);#6
SELECT i.name FROM instructor as i where i.salary is null;#7

第十一天——maven

maven的下载、镜像的配置等

镜像配置

  • 镜像:mirrors
  • 作用:加速我们的下载
  • 国内建议使用阿里云的镜像

方便下载使用

 <mirror>
    <id>aliyunmaven</id>
    <mirrorOf>*</mirrorOf>
    <name>Nexus aliyun</name>
    <url>https://maven.aliyun.com/repository/public</url>
	</mirror>

配置环境变量

在我们的系统环境变量中配置如下配置:

  • M2_HOME maven目录下的bin目录
  • MAVEN_HOME maven的目录
  • 在系统的path中配置%MAVEN_HOME%\bin

测试Maven是否安装成功,保证必须配置完毕!

本地仓库

在本地的仓库,远程仓库; 建立一个本地仓库:localRepository

<localRepository>D:\Environment\apache-maven-3.8.1\maven-repository</localRepository>

第十二天——JDBC

简介

JDBC全称Java DataBase Connectivity(Java数据库连接),是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。

早期SUN公司的天才们想编写一套可以连接天下所有数据库的API,但是当他们刚刚开始时就发现这是不可完成的任务,因为各个厂商的数据库服务器差异太大了。后来SUN开始与数据库厂商们讨论,最终得出的结论是,由SUN提供一套访问数据库的规范(就是一组接口),并提供连接数据库的协议标准,然后各个数据库厂商会遵循SUN的规范提供一套访问自己公司的数据库服务器的API出现。SUN提供的规范命名为JDBC,而各个厂商提供的,遵循了JDBC规范的,可以访问自己数据库的API被称之为驱动!

小总结

这个是连接池,格式通用,其中的“数据库名称改为自己的数据库名称,用户名和密码也是

import java.sql.*;
import java.util.LinkedList;
import java.util.Queue;

public class JDBCUTIL {
    private static Queue<Connection> pool=new LinkedList<>();

    private static Driver driver;
    //在加载这个类时会自动执行static代码块的代码,这块代码只会在加载这个类的时候执行(即只会执行一次)
    static {
        try {
            driver=new com.mysql.cj.jdbc.Driver();
            //注册驱动类
            DriverManager.registerDriver(driver);
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }
    }
    static String url="jdbc:mysql://localhost:3306/数据库名称?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&useSSL=false&allowPublicKeyRetrieval=true";
    static String user="用户名";
    static String password="密码";

    /**
     * 获取一个数据库连接池
     * @return 数据库连接
     */
    public static synchronized Connection getConnection(){
        if (pool.size()==0){
            try {
                pool.add(DriverManager.getConnection(url,user,password));
            } catch (SQLException throwables) {
                throwables.printStackTrace();
            }
        }
        return pool.poll();
    }

    /**
     * 将用完的连接放回连接池
     * @param connection 要释放的连接
     */
    public static synchronized void release(Connection connection){
        pool.add(connection);
    }
}


    static void ch(int ID, String name, double weight, int birthday) {
        Driver driver = null;
        Statement statement = null;
        Connection connection = null;
        ResultSet rs = null;
        PreparedStatement ps1 = null, ps2 = null, ps3 = null, ps4 = null, ps5 = null;
        JDBCUTIL J = new JDBCUTIL();
        try {
            driver = new com.mysql.cj.jdbc.Driver();
            DriverManager.registerDriver(driver);
            connection = DriverManager.getConnection(J.url, J.user, J.password);
            statement = connection.createStatement();
             //这行以前是固定格式
            String sql = "update Cat set name = ?, weigth = ?, birthday = ? where ID=?;";
            ps1 = connection.prepareStatement(sql);
            ps1.setString(1, name);
            ps1.setDouble(2, weight);
            ps1.setInt(3, birthday);
            ps1.setInt(4, ID);
        }//这行以后是固定格式
        catch (SQLException throwables) {
            throwables.printStackTrace();
        } finally {
            J.release(connection);
            try {
                statement.close();
            } catch (SQLException throwables) {
                throwables.printStackTrace();
            }
            try {
                connection.close();
            } catch (SQLException throwables) {
                throwables.printStackTrace();
            }
        }
    }

第十三天

Javaweb前端知识

发一下我相关系列博客的链接
Javaweb零基础学习(壹)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值