当前位置: 首页 > news >正文

做现货黄金的金融网站网站的营销推广

做现货黄金的金融网站,网站的营销推广,网络技术工作室,杭州知名的企业网站建设目录 一、什么是JDBC 二、JDBC的安装 三、JDBC如何导入 四、怎么使用JDBC编写代码 一、什么是JDBC JDBC由Java提供给数据库的一组通用的API。 在平常的业务中,是比较少使用像cmd命令行来操作数据库的,更多的是操作代码(Python&#xff…

目录

一、什么是JDBC

二、JDBC的安装

三、JDBC如何导入

四、怎么使用JDBC编写代码 


一、什么是JDBC

JDBC由Java提供给数据库的一组通用的API。

 在平常的业务中,是比较少使用像cmd命令行来操作数据库的,更多的是操作代码(Python,Java,C++,Go等等),但是还是会使用到sql语句。通过代码操作数据库的时候,数据库要提供一份API,供其他程序来调用。

什么是API?

答: API全名是Application Programming Interface(应用程序编程接口)。我们在写代码的时候并不是从0开始写的,可以调用别人写好的代码,也叫做“库”,这些代码里就有一些“函数‘”接口“”方法“”类“等等(比如Java标准库中提供了String,LIst等等),这就叫做API。

为什么需要用Java提供的呢,不能用自己写的/公司的呢?

 答:数据库中像MySQL、Oracle、SQL Server,他们都是用自己的API,每个都有一套,那么就苦了程序员了,假设你跳槽去一家公司,用的是不同的API,那就需要重新学了。

那么有没有一套标准的API呢,谁都可以用的那种?

答:有,那就是JDBC,Java的提供API,它可以把数据库自己的API转化成Java兼容的API。因为Java是这个咱们编程行业的老大哥,说话有分量,所以数据库需要JDBC来解决上述的问题。

二、JDBC的安装

既然JDBC这么好,怎么安装啊???我们需要下载MySQL Connector,这玩意儿,既不是Java自带的,也不是MySQL自带的。是我们需要自己下载的第三方库。

 我们可以通过以下三种途径安装:
1)官方网站,Oracle官网

2)GitHub

3)maven中央仓库

前两个方案可以用,但是比较麻烦,所以推荐第三种,接下来也是演示第三种。

a)maven中央仓库网址:https://mvnrepository.com

由于是国外的网站,所以进入的时候可能会需要等待个几秒钟 

 打开这个网址如图:

b)在上面的搜索栏输入MySQL关键字,回车 

c)如果你的数据库不是最新款的,那么点击第二个

这里需要注意的是,如果你的MySQL是8的版本,那么要选择8.0.7及以上的,像我的是5.7版本的,只需要选择5以上的版本即可。

如何查看?如图下:

d)下载jar压缩包

e)解压(这个jar包里面其实放了一堆Java的.class文件)

 之后你就能看到很多.class文件了

三、JDBC如何导入

1)下载jar包

2)导入jar包 

        a)现在项目中创建一个目录(名字不要带有中文/特殊字符)

输入一个lib(这个是名字,你想起别的也行) ,这样就多出了一个lib目录了

为什么起lib呢?

答: lib全名是library(图书馆),在咱们计算机中还有个专业名词,叫”“(就是别人写好的代码,我们可以直接调用)

        b)把jar包导入到lib目录里面 (复制jar包,粘贴到lib目录里)

 

在lib目录粘贴,点击确定

        c)右键lib目录,添加库 (告诉idea这是个库,让idea能够读取)

 啥都不用做,点击ok就行了,这时候这个东西就导好了

四、怎么使用JDBC编写代码 

1)创建数据源对象 ,就是描述了数据从哪里来or数据库服务器的位置 

DataSource dataSource=new MysqlDataSource();//向上转型//为了使用这些方法需要向下转型
((MysqlDataSource)dataSource).setURL();
((MysqlDataSource)dataSource).setUser();
((MysqlDataSource)dataSource).setPassword();

或者还有另一种写法:

MysqlDataSource mysqlDataSource=new MysqlDataSource();
mysqlDataSource.setURL();
mysqlDataSource.setUser();
mysqlDataSource.setPassword();

 注意:

DataSource是接口,不能直接实例化对象,只能通过它的子类实例。

那么两种方法哪种好呢?

答:没有谁更好,支持第一种写法的人的原因:这样写耦合程度更低(耦合程度指的是板块与板块之间的影响),因为后续写代码的时候不用mysqldatasource,而是用datasource,如果后面你想更换mysql变为Oracle的话,直接修改几处mysqldatasource就够了。

支持第二种写法:实际开发中更换数据库,本身就是低频操作,为了降低耦合度而写了一大堆转型,那是得不偿失的;并且更换数据库需要综合考察,并非是更换三四个代码这么简单。

什么是URL

答:称为“网络资源唯一定位符”,用来描述网络上一个资源的位置,讲人话那就是“链接”。但是它和我们平常用的网址却有些不同。

((MysqlDataSource)dataSource).setURL("jdbc:mysql://127.0.0.1:3306/javasql?characterEncoding=utf8&useSSL=false");
((MysqlDataSource)dataSource).setUser("root");
((MysqlDataSource)dataSource).setPassword("1024");

像URL我们不用去背,只需要了解里面的组成是什么即可。
1)jdbc:mysql,描述的用途,指的是这个jdbc是给mysql来使用的。

2)127.0.0.1,是IP地址。mysql是客户端服务器结构的程序,客户端和服务器之间是通过网络来通信的,此时就通过IP地址这样的概念,来描述mysql服务器是在那个主机上。127.0.0.1这个ip是一个特殊的地址,表示“你主机”,因为咱们jdbc的代码和mysql服务器都是在同一个机器上,此时ip地址就都固定写作127.0.0.1即可,如果在不同的主机上,就再写其他ip地址。

3)3306,是端口号,用来区分一个主机上的应用程序的,比如我这个机器上,就有好多引用程序在使用网络,比如网易云音乐,qq,微信,mysql服务器,后续发来一个网络的数据,是要交给那个程序的处理呢?这就需要端口好来区别了。mysql在安装的时候默认端口号是3306

4)javasql,是数据库名,就是咱们创建数据库的时候的名字

5)?后面的东西,都是对这次数据库的连接,起解释作用,比如characterEncoding指的是使用字符集utf8,而urlSSL=false指的是关闭  加密。

举个例子:

我在学校开了一家生意,现在在发传单,那么传单上就会写着:

jdbc:mysql://佛山市xxx学校:第5档口/金汤酸菜鱼?加辣吗=加辣&加香菜吗=加香菜

其中,IP地址是佛山xxx学校,端口号是第5档口,数据库是金汤酸菜鱼,解释说明是加辣加香菜。

 root是mysql自带的用户,管理员用户,是权限最高的,password则写你数据库的密码。

 2)和数据库服务器建立网络连接

Connection connection=dataSource.getConnection();

要选第一个 

这时候会画红色波浪线,我们只需要alt+回车,在main方法中抛异常throws SQLException

 检查连接是否成功,打印connection

正确的连接:

不正确的连接:

a)用户名,密码出错

b)数据库名写错

c)IP或端口号写错,或服务器没运行

3)编写sql语句

String sql="insert into student values(1,'张三')";
PreparedStatement preparedStatement=connection.prepareStatement(sql);

为什么需要PreparedStatement这类:

preparedStatement(预编译的语句),基于这类来构造sql语句正常来说,我们在cmd命令行输入sql语句,是把sql语句发送到mysql服务器上面,mysql负责解析(检查语法错误,具体要完成上面工作等等,需要消耗资源)完成后执行,并且我们mysql服务器可能需要为多个客户端服务,解析工作积少成多,是消耗资源的。所以我们往往是先把解析工作做好,放到客户端上面自己完成,这样服务器就能减轻工作了。

PreparedStatement和PreparaStatement区别:

第一个是过去分词+名词,一般表类名

第二个是动词+名词(or动词),一般表方法名

那能不能让用户自己输入添加呢?当然可以:

Scanner scanner=new Scanner(System.in);
System.out.println("请输入用户id");
int id=scanner.nextInt();
System.out.println("请输入用户名");
String s=scanner.next();
PreparedStatement preparedStatement=connection.prepareStatement(sql);

但是以上可能不是很好:

a)阅读性差,写起来也不舒服

b)可能有人输入的时候,会注入攻击,比如他输入这个s的时候,输入‘)drop database xxxx删掉了库。 

 推荐用法:用占位符?(相当于c语言的%d)

String sql="insert into student values(?,?)";
PreparedStatement preparedStatement=connection.prepareStatement(sql);
preparedStatement.setInt(1,id);
preparedStatement.setString(2,s);

4) 执行sql语句

int n = preparedStatement.executeUpdate();

一般使用红圈里面的两个方法,第一个是查询,第二个是更新(可能是delect,insert等等) 

5)释放上述资源(逆序释放) 

我是先创建的connection然后是preparedstatement,所以先释放preparedstatement,再是connection,相当于栈。比如你打开了两扇门,你要离开了,肯定是先关上小门,再是大门。

preparedStatement.close();
connection.close();

建立连接和创造这些语句,都是需要消耗一定的资源的(比如内存/硬盘/网络) 。如果不用了,就需要把这些关掉,去释放掉

 这时候,执行,就插入了:

额外:若要查询操作:

String sql="select * from student";
PreparedStatement preparedStatement=connection.prepareStatement(sql);
ResultSet set=preparedStatement.executeQuery();
//遍历
while(set.next()){System.out.println(set.getInt("id"));System.out.println(set.getString("name"));
}
set.close();
preparedStatement.close();
connection.close();

 总的代码如下:

        //1.创建数据源对象 DataSource dataSource=new MysqlDataSource();//向上转型//为了使用这些方法需要向下转型((MysqlDataSource)dataSource).setURL("jdbc:mysql://127.0.0.1:3306/javasql?characterEncoding=utf8&useSSL=false");((MysqlDataSource)dataSource).setUser("root");((MysqlDataSource)dataSource).setPassword("1024");//2.和数据库服务器建立连接Connection connection=dataSource.getConnection();System.out.println(connection);//3.构造sql语句//preparedStatement(预编译的语句),基于这类来构造sql语句String sql="insert into student values(4,'赵六')";PreparedStatement preparedStatement=connection.prepareStatement(sql);//4.发送到服务器上,让服务器执行//返回值表示这个sql影响到几行preparedStatement.executeUpdate();//5.释放资源preparedStatement.close();connection.close();

http://www.tj-hxxt.cn/news/2904.html

相关文章:

  • 建设一个企业网站到底要多少钱windows优化大师的功能
  • 网站里面那些工作是做晚上兼职的厦门seo排名外包
  • 子域名查询ipaso优化什么意思
  • 兰州手机网站制作头条新闻 最新消息条
  • 网站制作团队分工网站排名分析
  • 乐陵森司特木业重庆店铺整站优化
  • 网站建设是网络工程师吗精准营销的案例
  • 找别人做的淘客网站 会不会有问题赣州seo培训
  • 如何在各网站做推广网站优化软件哪个好
  • 临西做网站哪里便宜郑州网站制作
  • 找公司做网站的好处焊工培训技术学校
  • 仿网站的ppt怎么做域名注册查询
  • 建一个下载网站要什么cms系统网站建站推广
  • 网站备案需要营业执照吗汕头最好的seo外包
  • 全美网站建设公司北京seo推广系统
  • 网站上线注意拼多多跨境电商平台
  • 常州做的网站的公司做网站推广公司
  • 网站建设需要什么书网站搭建步骤
  • 找网络公司做的网站到期后 备案的域名属于备案企业还是网络公司青岛网站排名公司
  • linux怎么做网站百度下载安装
  • 腾讯云免费建站网络推广工作室
  • 威宁网站建设国际新闻消息
  • 网站首页修改南宁百度推广seo
  • 用外服务器做网站比较好的网络推广平台
  • 申请免费的网站seo免费优化软件
  • 国外的做的比较优秀的网站百度怎么投广告
  • 郑州做网站锐网络代运营推广
  • 租凭境外服务器做违规网站杭州优化建筑设计
  • 小型网站维护时事政治2023最新热点事件
  • 网站快照查询seo教程有什么