环境装好了,我们来学JDBC编程;数据库连接了,我来教操作~

人生之路不会是一帆风顺的,我们会遇上顺境,也会遇上逆境,在所有成功路上折磨你的,背后都隐藏着激励你奋发向上的动机,人生没有如果,只有后果与结果,成熟,就是用微笑来面对一切小事。

导读:本篇文章讲解 环境装好了,我们来学JDBC编程;数据库连接了,我来教操作~,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

目录

JDBC是什么?

所需环境

将下载好的jar包导入到项目中

现在来用Java代码操作MySQL~

1.创建数据源对象,数据源对象就描述了要访问的数据库是什么,在哪?

 2.找地址(URL体现出数据库服务器的位置,以及名字)

3.设置打开数据库的钥匙

4.访问连接

5.用户输入

6.执行sql语句

7.释放关闭相关资源

面试题:

结语:


JDBC是什么?

        全称:Java Database Connectivity(Java数据库连接),是由标准库提供的一套API,使得Java可以通过这些接口实现与数据库的连接,为多种关系数据库提供同一访问。


所需环境

        JDBC在使用的时候,需要下载并导入对应的数据库的驱动包(以下使用Java代码来操作MySQL),建议大家去官网(

环境装好了,我们来学JDBC编程;数据库连接了,我来教操作~

)找到对应的jar包,以下为官网链接

Maven Repository: Search/Browse/Explore (mvnrepository.com)


将下载好的jar包导入到项目中

1.创建一个与.idea同级的包,起个名字叫:“lib”~;

环境装好了,我们来学JDBC编程;数据库连接了,我来教操作~

2. 将jar包拷贝到lib中

环境装好了,我们来学JDBC编程;数据库连接了,我来教操作~

3.右击lib标记成存放库文件(jar包)的目录,然后,IDEA就可以识别目录中的jar包

环境装好了,我们来学JDBC编程;数据库连接了,我来教操作~

 这里可以看到jar包可以展开了,说明IDEA可以对其进行识别

环境装好了,我们来学JDBC编程;数据库连接了,我来教操作~

 以上就是准备过程~


现在来用Java代码操作MySQL~

1.创建数据源对象,数据源对象就描述了要访问的数据库是什么,在哪?

//来自标准库JDBC的接口
import javax.sql.DataSource;
//来自MySQL的驱动包(jar包)
import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;


DataSource dataSource = new MysqlDataSource();

        解释和分析:DataSource描述了在哪里能找到数据库数据,其实也可以使用DriverManager,但是更推荐DataSource,因为DriverManager每次getConnection都需要重新建立连接,而DataSource是内置连接池,类似String的字符串常量池,连接复用,提高效率

 2.找地址(URL体现出数据库服务器的位置,以及名字)

((MysqlDataSource)dataSource).setURL("jdbc:mysql://127.0.0.1:3306/user?characterEncoding=utf8&useSSL=false");

解释和分析:

 jdbc:mysql是协议名称;

//127.0.0.1是IP地址,描述了网络上一个主机的位置,127.0.0.1是一个特殊的地址,无论IP是什么,都可以用127.0.0.1表示自己;

3306是端口号,用来区分主机上的不同应用程序,在安装数据库时,其中一个环节就是配置端口号,默认就是3306;

user是要访问的数据库的名字(通过create database创建的);

characterEncoding=utf8是刻划断使用的字符集,要和服务器那边一致,所以这里使用utf8;

useSSL=false这里表示不加密;

3.设置打开数据库的钥匙

((MysqlDataSource)dataSource).setUser("root");
((MysqlDataSource)dataSource).setPassword("123456");

        解释和分析:输入登录用户名,和密码,用户名一般同一是root,这时MySQL自带的,密码就是安装数据库时设置的密码

4.访问连接

 //建立连接,注意这里要抛异常
 Connection connection = dataSource.getConnection();

解释和分析:和数据库服务器连接,再进行后续操作

5.用户输入

        //通过用户输入来改变数据库中的值a
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入员工ID:");
        int ID = scanner.nextInt();
        System.out.println("请输入员工姓名:");
        String name = scanner.next();
        //执行构造的sql语句
        // ? 是一个占位符,只是占个位置,后面会被替换成其他的东西
        String sql = "insert into staff values(?, ?)";
        PreparedStatement statement = connection.prepareStatement(sql);
        //1 2 数字表示占位符下标,默认从1开始,set方法是一个系列:setXXX(XXX表示类型)
        statement.setInt(1, ID);
        statement.setString(2, name);
        System.out.println(statement);

解释和分析:通过用户输入数据来确定插入的值,注意这里最好不要用字符串拼接的方式:1.代码很乱;2.容易引发SQL注入漏洞——被黑客攻击 

6.执行sql语句

        //执行sql,方法有两种:
        //executeUpdate 对应插入删除修改语句. 返回值表示这次 SQL 操作影响到的行数.
        //executeQuery  对应查询语句. 返回值则是返回的临时表数据.
        int n = statement.executeUpdate();
        System.out.println("n = " + n);

7.释放关闭相关资源

//最后关闭释放相关资源(注意,先创建的后释放,后创建的先释放)
statement.close();
connection.close();

解释和分析:

注意要先创建的后释放,后创建的先释放!

问题:为什么要释放?new一个对象要消耗空间资源,为什么以前没有释放过?

那个是Java内置的GC机制,帮咱释放了,但只是能回收对象,也不是万能的;


面试题:

 1.数据库Statement和PreparedStatement有什么联系和区别?

联系:PreparedStatement继承自Statement,都是接口;

区别:PreparedStatement可以使用占位符,是预编译的,批处理比Statement效率高;

2.数据库连接有哪些方式?分别有什么区别

       1.通过DriverManager(驱动管理类)的静态方法获取;

        2.通过DataSource(数据源)对象获取;

        区别:DriverManager每次getConnection都需要重新建立连接,而DataSource是内置连接池,类似String的字符串常量池,连接复用,提高效率;


结语:

        这里基于JCBC写的代码本质上是一个MySQL客户端,未来工作中大部分的数据库操作,都是通过代码来完成的;实际开发中,很少会直接使用JDBC,代码比较啰嗦,实际开发中会用到一些库/框架 简化这里的数据库操作(MyBatis),各种库和框架本质上又是对JDBC进行的封装;


 环境装好了,我们来学JDBC编程;数据库连接了,我来教操作~

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/124339.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!