JavaWeb,JDBC,Maven

Web:全球广域网,也称为万维网(www),能够通过浏览器访问的网站

JavaWeb:是用Java技术来解决相关web互联网领域的技术栈

1,关系型数据库

优点:

1.都是使用表结构,格式一致,易于维护

2.使用通用的SQL语言操作,使用方便,可用于复杂查询

3.数据存储在磁盘中,安全

2,SQL分类

DDL:操作数据库,表等

DML:对表中的数据进行增删改

DQL:对表中的数据进行查询

DCL:对数据库进行权限控制

3,JDBC

JDBC概念:

JDBC 就是使用Java语言操作关系型数据库的一套API

全称:( Java DataBase Connectivity ) Java 数据库连接

JDBC好处:

各数据库厂商使用相同的接口,Java代码不需要针对不同数据库分别开发

可随时替换底层数据库,访问数据库的Java代码基本不变

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;

public class JDBCDemo {
    public static void main(String[] args) throws Exception {
        //1,注册驱动
        Class.forName("com.mysql.jdbc.Driver");

        //2,获取连接
        String url="jdbc:mysql://127.0.0.1:3306/db1";
        String username="root";
        String password="111111";
        Connection conn= DriverManager.getConnection(url,username,password);

        //3,定义sql
        String sql="update dept set money = 2000 where id =1 ";

        //4,获取sql对象
        Statement stmt =conn.createStatement();

        //5,执行sql
        int count =stmt.executeUpdate(sql);//影响的行数

        //6,处理结果
        System.out.println(count);

        //7.释放资源
        stmt.close();
        conn.close();
    }
}

(1)DriverManager

作用:

1)注册驱动

2)获取数据库连接

(2)Connection

作用:

1)获取执行SQL的对象

1,普通执行SQL对象

statement createStatement()

2,预编译SQL的执行SQL对象:防止SQL注入

PreparedStatement prepareStatement (sql)

3,执行存储过程的对象

CallableStatement prepareCall (sql)

2)管理事务

开启事务: setAutoCommit(boolean autoCommit): true为自动提交事务;false为手动提交事务,即为开启事务

提交事务:commit()

回滚事务:rollback()

(3)Statement

1)执行sql语句

int executeUpdate(sql):执行DML、DDL语句

->返回值:(1) DML语句影响的行数(2) DDL语句执行后,执行成功也可能返回0

ResultSet executeQuery(sql):执行DQL语句

->返回值: ResultSet结果集对象

(4)ResultSet

1)封装了DQL查询语句的结果

ResultSet stmt.executeQuery(sql):执行DQL语句,返回ResultSet对象

获取查询结果:

boolean next():(1)将光标从当前位置向前移动一行(2)判断当前行是否为有效行

返回值:

true:有效行,当前行有数据

false:无效行,当前行没有数据

while(resultSet.next()){///获取每一行
    //获取每一列
    int sid=resultSet.getInt("sid");
    String sname=resultSet.getString("sname");
    int age=resultSet.getInt("age");

    System.out.println(sid+"\t"+sname+"\t"+age);
}

(5)PreparedStatement

PreparedStatement作用:

1.预编译SQL语句并执行:预防SQL注入问题

SQL注入:SQL注入是通过操作输入来修改事先定义好的SQL语句,用以达到执行代码对服务器进行攻击的方法

        String name="zhangsan";
        String pwd="123";

        String sql="select * from tb_user where username = ? and password = ? ";

        PreparedStatement pstmt= conn.prepareStatement(sql);

        pstmt.setString(1,name);
        pstmt.setString(2,pwd);

        ResultSet rs= pstmt.executeQuery();

PreparedStatement 原理:

1.在获取PreparedStatement对象时,将sql语句发送给mysql服务器进行检查,编译(这些步骤很耗时)

2.执行时就不用再进行这些步骤了,速度更快

3.如果sql模板一样,则只需要进行一次检查、编译

(4)数据库连接

好处:

资源重用

提升系统响应速度

避免数据库连接遗漏

标准接口:DataSource

官方(SUN)提供的数据库连接池标准接口,由第三方组织实现此接

功能:获取连接

Connection getConnection()

常见的数据库连接池:

DBCP

C3P0

Driud

4,Maven

主要功能:

提供了一套标准化的项目结构

提供了一套标准化的构建流程(编译,测试,打包,发布…...)

提供了一套依赖管理机制

(1)简介

Apache Maven是一个项目管理和构建工具,它基于项目对象模型(POM)的概念,通过一小段描述信息来管理项目的构建、报告和文档

仓库分类:

本地仓库:自己计算机上的一个目录

中央仓库:由Maven团队维护的全球唯一的仓库

远程仓库(私服):一般由公司团队搭建的私有仓库

当项目中使用坐标引入对应依赖jar包后,首先会查找本地仓库中是否有对应的jar包:

1,如果有,则在项目直接引用;

2,如果没有,则去中央仓库中下载对应的jar包到本地仓库

还可以搭建远程仓库,将来jar包的查找顺序则变为:

本地仓库→远程仓库→中央仓库

(2)常用命令

compile :编译

clean:清理

test:测试

package:打包

install:安装

(3)生命周期

Maven构建项目生命周期描述的是一次构建过程经历经历了多少个事件

Maven对项目构建的生命周期划分为3套

clean:清理工作

default:核心工作,例如编译,测试,打包,安装等

site:产生报告,发布站点等

同一生命周期内,执行后边的命令,前边的所有命令会自动执行

(4)坐标

Maven 中的坐标是资源的唯一标识

使用坐标来定义项目或引入项目中需要的依赖

Maven坐标主要组成:

groupld:定义当前Maven项目隶属组织名称(通常是域名反写,例如: com.itheima)

artifactld:定义当前Maven项目名称(通常是模块名称Ⅰ例如order-service.goods-service)

version:定义当前项目版本号

(5)依赖操作

    
        
            mysql
            mysql-connector-java
            8.0.33
        
    
依赖范围 编译classpath 测试classpath 运行classpath 例子
compile Y Y Y logback
test - Y - junit
provided Y Y - servlet-api
runtime - Y Y jdbc驱动
system Y Y - 存储在本地的jar包
inport 引入DependencyManagement

默认:compile

你可能感兴趣的:(java,开发语言)