JDBC&Maven

概念:JDBC(Java数据库连接)
本质:官方(sun公司)定义的一套操作所有关系型数据库的规则,即接口。
          各个数据库厂商去实现这套接口,提供数据库驱动jar包。
          我们可以使用这套接口(JDBC)编程,真正执行的代码是驱动jar包中的实现类。
好处:同一套java代码可以操作不同的关系型数据库,在项目中切换数据库会变的非常简单。
JDBC的简单实现
/*
* JDBC实现步骤:
* 0.创建工程,导入驱动jar包
* 1.注册驱动,告诉程序使用哪个驱动jar包
* 2.获取连接对象Connection
* 3.获取执行SQL的执行者对象PreparedStatement
* 4.执行SQL语句
* 5.处理返回结果
* 6.释放资源
* */
public class JDBCDemo1 {
    public static void main(String[] args) throws ClassNotFoundException, SQLException {
        //1.注册驱动,告诉程序使用哪个驱动jar包
        Class.forName("com.mysql.jdbc.Driver");

        //2.获取连接对象Connection
        String url="jdbc:mysql://localhost:3306/db2?useSSL=false";
        String username="root";
        String password="root";
        Connection conn = DriverManager.getConnection(url, username, password);

        //3.获取执行SQL的执行者对象PreparedStatement
        PreparedStatement ps = conn.prepareStatement("update account set money=1000 where id =1");

        //4.执行SQL语句
        int count=ps.executeUpdate();

        //5.处理返回结果
        System.out.println("影响的行数:"+count);

        //6.释放资源
        ps.close();
        conn.close();
    }
}

JDBC API

作用1

作用2

DriverManager

注册驱动

获取数据库连接

Connection

获取执行SQL的对象

管理事务

PreparedStatement

动态设置参数

执行SQL语句

ResultSet

获取查询结果


DriverManager(驱动管理类)

注册驱动

  • 在开发中,我们不使用DriverManager.registerDriver(new Driver());方法驱动,因为会导致驱动注册两次。

  • MySQL 5之后可以省略注册驱动的步骤。

  • 自动加载jar包中META-INF/services/java.sql.Driver文件中的驱动类

获取数据库连接

Connection

获取执行SQL的对象
普通执行SQl对象,使用Statement对象执行SQL有漏洞

此时name位置可以随便输入,然后在pwd位置输入特定的语句就可以保证sql 永远执行成功。('or'1=1)

预编译SQL功能的执行SQL对象:解决了Statement对象执行SQL的漏洞
执行存储过程的对象
CallableStatement prepareCall(sql)

事务管理
Connection conn = DriverManager.getConnection(url, username, password);
        try {
            //setAutoCommit(boolean autoCommit):true为自动提交事务;false为手动提交事务,即为开启事务。
            conn.setAutoCommit(false);
            PreparedStatement ps1 = conn.prepareStatement("update account set money=money+500 where name='张三'");
            int count1 = ps1.executeUpdate();
            System.out.println("张三影响的行数:"+count1);

            PreparedStatement ps2 =conn.prepareStatement("update account set money=money-500 where name='李四'");
            int count2 = ps2.executeUpdate();
            System.out.println("李四影响的行数:"+count2);

            //提交事务
            conn.commit();
        } catch (SQLException throwables) {
            throwables.printStackTrace();

            //回滚事务
            conn.rollback();
        }

PreparedStatement

动态设置参数

执行SQL语句

ResultSet

ResultSet(结果集对象)作用:封装了DQL查询语句的结果,获取查询结果。

数据库连接池

  • 数据库连接池是个容器,负责分配,管理数据库连接

  • 它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个

  • 实现资源复用和提升系统响应速度

常见的数据库连接池

  1. DBCP

  1. C3P0

  1. Druid

Druid(德鲁伊)
Druid连接池是阿里巴巴开源的数据库连接池项目
功能强大,性能优秀,是Java语言最好的数据库连接池之一
/*
* 1.导入jar包
* 2.创建DruidDataSource对象
* 3.设置连接参数
* 4.获取连接
* 5.使用完之后归还连接
* */
public class DruidDemo1 {
    public static void main(String[] args) throws SQLException {
        //2.创建DruidDataSource对象
        DruidDataSource dataSource=new DruidDataSource();

        //3.设置连接参数
        dataSource.setDriverClassName("com.mysql.jdbc.Driver");
        dataSource.setUrl("jdbc:mysql:///db2?useSSL=false");
        dataSource.setUsername("root");
        dataSource.setPassword("root");

        //4.获取连接
        DruidPooledConnection conn=dataSource.getConnection();

        PreparedStatement ps=conn.prepareStatement("update account set money=3888 where id=1");
        int count=ps.executeUpdate();
        System.out.println("影响的行数是:"+count);
        ps.close();

        // 5.使用完之后归还连接
        conn.close();
    }
}

Maven

Maven是专门用于管理和构建Java项目的工具,它的主要功能有:
提供了一套标准化的项目结构:

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

提供了一套依赖管理机制(也就是管理jar包)

Maven简介

Apache Maven是一个项目管理和构建工具,它基于项目对象模型(POM)的概念,通过一小段描述信息来管理项目的构建,报告和文档。
  1. Maven将java项目看成是一个个对象,也就是项目对象模型,我们通过项目中pom.xml描述项目对象。

  1. 通过pom.xml告诉maven,项目需要哪些资源(jar包),这个叫做依赖管理,jar包都是从仓库中引进来的。

  1. 我们可以通过各种各样的插件来构建项目,例如:编译,测试,打包...


Maven仓库

仓库分类:

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

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

地址:https://repo1.maven.org/maven2/

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

阿里镜像:http://maven.aliyun.com/nexus/content/groups/public/

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

有就在项目中直接引用,没有就去中央仓库下载对应的jar包到本地仓库,如果有私服就先去私服下载。


Maven安装配置

  1. 解压apache-maven-3.6.1-bin.zip即安装完成(我的Maven)

  1. 配置环境变量,配置MAVEN_HOME和path

  1. 配置本地仓库,修改conf/settings.xml中的<localRepository>为一个指定目录

  1. 配置阿里云中央仓库:修改conf/settings.xml中的<mirrors>标签,为其添加子标签。


Maven基本使用

Maven常用命令:

  • compile:编译

  • clean:清理

  • test:测试

  • package:打包

  • install:安装到本地仓库


Maven生命周期:

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

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

  • clean:清理工作

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

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

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值