JDBC连接Mysql数据库过程【一条命途多舛的SQL】

JDBC连接Mysql数据库在目前的行业和工作中几乎很少用到了,很多新手对此也不以为然,就好比现在我们都小康了,家家户户开轿车了,要啥自行车。但是越是底层的东西,越能体现出它的强大,我们用的很多框架都是封装了而已,就好比手机,你拨个号码就能打电话,但是中间涉及到方方面面的通讯和协议都隐藏起来了。我后期要说的Mybatis也是对JDBC进行了更加友好的封装,所以我们先了解一下JDBC的过程,一步一步一个脚印,搞明白做起来。

废话不多说,至于JDBC是什么,有什么用,用什么语言,请自行百度,我这里使用的是JAVA,下面讲解JDBC的流程

1. 加载驱动

java.sql.Driver 它在MySQL Connector / J 中实现的类的名称 是 com.mysql.jdbc.Driver,也就是驱动程序。

Class.forName(DRIVER_CLASS_NAME)

2. 获取数据库连接

Connection 与数据库建立连接关系,通常为 DriverManager.getConnection(url, username, password)。这里可以很明显的感觉出来,每个元素所产生的作用 

2.1 获取连接的时候需要设置数据库相关的参数

URL: 数据库的地址及库的名称,通用的格式
                protocol//[hosts][/database][?properties]
                protocol:一种连接协议,约定的规则。
                hosts:主机名,通常后跟端口号,例如当前主机默认就是localhost:3306,当然也可以多主机连接,这里暂时不表。
                database:数据库嘛
        username: 数据库连接的用户名
        password: 数据库连接密码

3. 进行数据库操作

3.1 操作数据库一般使用Statement / PreparedStatement / CallableStatement (调用存储过程) , 使用PreparedStatement的情况居多,主要有以下优点:

        3.1.1 Statement每次执行sql语句,相关数据库都要执行sql语句的编译,PreparedStatement是预编译得

        3.1.2 PreparedStatement是预编译的,对于批量处理可以大大提高效率

        3.1.3 不用拼接,易编写易读懂

        3.1.4 防止SQL注入,提高安全性

3.2 有了PreparedStatement,我们就要对sql进行预编译和设置参数

         3.2.1 设置预编译 psst = con.prepareStatement(sql); 其中sql = "insert into user (name, password, sex, phone) VALUES(?,?,?,?)";

         3.2.2 设置参数:根据占位符的位置和数据类型,占位符从1开始,采用相对应的方法,比如设置字符串:psst.setString(1, "我的名字");

3.3 执行sql

         3.3.1 psst.executeQuery() 针对查询而言

         3.3.2 psst.executeUpdate()  针对数据更新

         3.3.3 psst.execute()  不知道是查询还是修改,可以使用这个语句

3.4 返回结果

         3.4.1 针对删除、修改、新增 返回的是影响条数 int

         3.4.2 针对查询,返回的ResultSet 结果集,通过返回的sql对应的字段类型和位置分别获取对应的值:String name = resultSet.getString(2);

4. 关闭相关资源

4.1 关闭返回结果资源(如果有返回结果ResultSet)

4.2 关闭操作资源 PreparedStatement

4.3 关闭数据库连接资源 Connection

JDBC连接Mysql数据库过程【一条命途多舛的SQL】_第1张图片

你可能感兴趣的:(JDBC连接Mysql数据库过程【一条命途多舛的SQL】)