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

dedecms做模板网站百度爱采购推广效果怎么样?

dedecms做模板网站,百度爱采购推广效果怎么样?,贵阳网络科技有限公司,《动态网站建设》第04章在线测试目录 1.数据库编程的必备条件 2.Java的数据库编程JDBC 3.JDBC的工作原理 4.第三方库connector的下载和导包 5.JDBC的使用 使用步骤 (1)创建数据源对象DataSource (2)给对象设置必要的属性 (3)和数据…

目录

1.数据库编程的必备条件

2.Java的数据库编程JDBC

 3.JDBC的工作原理

4.第三方库connector的下载和导包

5.JDBC的使用

使用步骤

 (1)创建数据源对象DataSource

(2)给对象设置必要的属性

(3)和数据库建立网络连接

(4)程序构造sql语句

(5)将sql语句传到服务器上执行

(6)释放上述资源

优化

整体代码

 具体操作

6.JDBC常用接口和类

(1)JDBC API

(2)数据库连接Connection

(2)Statement对象


1.数据库编程的必备条件

  • 编程语言,如Java,C、C++、Python等
  • 数据库,如Oracle,MySQL,SQL Server等
  • 数据库驱动包:不同的数据库,对应不同的编程语言提供了不同的数据库驱动包,如:MySQL提 供了Java的驱动包mysql-connector-java,需要基于Java操作MySQL即需要该驱动包。同样的, 要基于Java操作Oracle数据库则需要Oracle的数据库驱动包ojdbc。

2.Java的数据库编程JDBC

JDBC,即Java Database Connectivity,java数据库连接。是一种用于执行SQL语句的Java API,它是 Java中的数据库连接规范。这个API由 java.sql.*,javax.sql.* 包中的一些类和接口组成,它为Java 开发人员操作数据库提供了一个标准的API,可以为多种关系数据库提供统一访问。  

 3.JDBC的工作原理

JDBC 为多种关系数据库提供了统一访问方式,作为特定厂商数据库访问API的一种高级抽象,它主要包 含一些通用的接口类。

JDBC访问数据库层次结构:

JDBC优势:

  1. Java语言访问数据库操作完全面向抽象接口编程
  2. 开发数据库应用不用限定在特定数据库厂商的API
  3. 程序的可移植性大大增强

4.第三方库connector的下载和导包

下载

这里提供一个最为简单的下载方法:去maven中央仓库下载 

  1. 链接:

看自己的数据库的版本情况来下载(点击Central下载即可)对应的版本(经典版最高是8.0,更高的版本在最新版中

注:MySQL的版本必须和connector的版本一致

导包

  1. 下载好 .jar 包
  2. 把 .jar导入到自己的Java项目中
    先在项目中创建一个目录.名字随便起,但是不要带有中文/特殊字符
    把下载好的jar包,拷贝到lib目录中
    右键刚才的lib目录, 点击add as library(告诉idea,这个lib目录是一个"库"目录)

5.JDBC的使用

使用步骤

 (1)创建数据源对象DataSource

(描述当前数据从哪来即数据库服务器所在的位置)
通过原码我们可以看到DataSourse是被interface修饰的类,不能用来直接实例化该对象,因此我们只能实例化它的子类MysqlDataSource

DataSource dataSource = new MysqlDataSource();

DataSourse:Java标准库JDBC自带的接口
MysqlDataSource:刚刚导入的 .jar包

(2)给对象设置必要的属性


1)数据库服务器在哪里   2)访问服务器的账户是啥     3)访问服务器的密码是啥

//第一种写法
DataSource dataSource = new MysqlDataSource();
((MysqlDataSource) dataSource).setUrl("jdbc:mysql://127.0.0.1:3306/java?characterEncoding=utf8&useSSL=false");
((MysqlDataSource) dataSource).setUser("root");
((MysqlDataSource) dataSource).setPassword("jqka");//第二种写法
MysqlDataSource mysqlDataSource = new MysqlDataSource();
mysqlDataSource.setUrl("jdbc:mysql://127.0.0.1:3306/java112?characterEncoding=utf8&useSSL=false");
mysqlDataSource.setUser("root");
mysqlDataSource.setPassword("jqka");

第一种写法的好处:耦合程度更低
按照第一种写法,后续代码中如果再使用DataSource这个东西,是看不到"MysqlDataSource"这个信息的.
就使得后续的其他部分代码和“mysql"这个概念解耦合了.后面的代码,和啥数据库没关系.如果要更换数据库,此时代码修改的成本就比较低

说明:

Url

jdbc:mysql: 描述了url的用途是用来给jdbc的mysql使用的
127.0.0.1: IP地址.描述了mysql服务器所在的主机的位置.
3306:端口号,用来区分一个主机上的应用程序的.
java112?characterEncoding=utf8:数据库名和字符集
useSSL=false:额外的参数起到了针对这次的数据库连接,解释说明,这里表示关闭加密

User

root就是DBA权限最高账户管理员

Password

jqka即自己数据库的密码

(3)和数据库建立网络连接

受查异常,所以要向上进行抛异常

//2.和数据库服务器建立连接
Connection connection = dataSource.getConnection();
System.out.println(connection);

此处的Connection 对象,就是表示了一个数据库连接,
注意:

这里必须选择sql的Connection

(4)程序构造sql语句

我们之前在cmd敲的sql,是把 sql发送到mysql服务器mysql服务器负责解板,解析完成之后,执行.解析检查sql是否有语法错误具体要完成什么工作.....
解析工作,需要消耗系统资源
由于mysql服务器,同一时刻可能要同时给多个客户端提供服务.解析工作积少成多,也就会比较消耗资源

因此往往就可以把解析工作,放到客户端来完成(自己写的代码)
客户端发送sql之前,先解析好,先把一些能做的工作做好,这样服务器就可以降低一些工作量,减轻压力了

构造方法有很多种,这里我们使用最主流的PreparedStatement预编译语句来完成这一操作

//4.程序构造MySQL语句
String sql = "create table test(id int,name varchar(20))";
PreparedStatement statement = connection.prepareStatement(sql);

(5)将sql语句传到服务器上执行

statement.executeUpdate();的返回值表示影响了几行数据

(6)释放上述资源

//5.释放上述资源
statement.close();
connection.close();

说明:释放资源的顺序,要和创建资源的顺序相反
建立连接/创建语句的时候,就需要消耗一定的内存/硬盘/网络筹资源....这些资源,都是跟随这个连接来走的.
如果连接不再使用了,就需要把这些资源释放掉.

优化

此时我们还可以使用Scanner自定义让用户输入数据
 

Scanner scanner = new Scanner(System.in);
System.out.println("请输入id: ");
int id = scanner.nextInt();
System.out.println("请输入name: ");
String name = scanner.next();

在我们输入的时候可以使用占位符来进行操作避免出现多个引号的情况

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

注意:

替换时下标是从1开始的

整体代码

package jdbc;import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;import javax.sql.DataSource;import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.Scanner;public class TestJDBC1 {public static void main(String[] args) throws SQLException {Scanner scanner = new Scanner(System.in);System.out.println("请输入id: ");int id = scanner.nextInt();System.out.println("请输入name: ");String name = scanner.next();//1.创建数据源对象//向下转型,DataSourceDataSource dataSource = new MysqlDataSource();((MysqlDataSource) dataSource).setUrl("jdbc:mysql://127.0.0.1:3306/java?characterEncoding=utf8&useSSL=false");((MysqlDataSource) dataSource).setUser("root");((MysqlDataSource) dataSource).setPassword("jqka");/*MysqlDataSource mysqlDataSource = new MysqlDataSource();mysqlDataSource.setUrl("jdbc:mysql://127.0.0.1:3306/java112?characterEncoding=utf8&useSSL=false");mysqlDataSource.setUser("root");mysqlDataSource.setPassword("jqka");*///2.和数据库服务器建立连接Connection connection = dataSource.getConnection();//3.程序构造MySQL语句//String sql = "insert into student values(2,'李四')";String sql = "insert into student values(?,?)";PreparedStatement statement = connection.prepareStatement(sql);statement.setInt(1,id);statement.setString(2,name);//4.把sql语句传到服务器上执行int n = statement.executeUpdate();System.out.println(n);//5.释放上述资源statement.close();connection.close();}
}

 具体操作

插入删除修改操作都是相似的,改语句内容即可

//插入数据
String sql = "insert into student values(2,'李四')";
//删除id = 1的数据
String sql = "delete from student where id = 1";
//修改id = 2的name为张三
String sql = "update student set name = '张三' where id = 2";//传送sql语句到服务器上
int n = statement.executeUpdate();

select操作有所差异

  1. statement对象使用的方法为executeQuery()
  2. 使用该方法后返回的结果是一个结果集,需要用ResultSet来接收
  3. ResultSet需要单独进行释放
//查表
String sql = "select * from student";
PreparedStatement statement = connection.prepareStatement(sql);//接受的是一个结果集合
ResultSet resultSet = statement.executeQuery();//遍历
while (resultSet.next()) {System.out.println(resultSet.getInt("id"));System.out.println(resultSet.getString("name"));
}resultSet.close();

说明:通过ResultSet表示查询结果的临时表~~
代码中使用的时候可以当做"集合类"来使用,可以进行遍历
 

总结两种执行SQL的方法

executeQuery() 方法执行后返回单个结果集的,通常用于select语句

executeUpdate()方法返回值是一个整数,指示受影响的行数,通常用于update、insert、delete 语句

6.JDBC常用接口和类

(1)JDBC API

在Java JDBC编程中对数据库的操作均使用JDK自带的API统一处理,通常与特定数据库的驱动类是完全 解耦的。所以掌握Java JDBC API (位于 java.sql 包下) 即可掌握Java数据库编程。

(2)数据库连接Connection

Connection接口实现类由数据库提供,获取Connection对象通常有两种方式:

  1. 通过DriverManager(驱动管理类)的静态方法获取:
    // 加载JDBC驱动程序
    Class.forName("com.mysql.jdbc.Driver");
    // 创建数据库连接
    Connection connection = DriverManager.getConnection(url);

  2. 一种是通过DataSource(数据源)对象获取。实际应用中会使用DataSource对象。
     

    DataSource ds = new MysqlDataSource();
    ((MysqlDataSource) ds).setUrl("jdbc:mysql://localhost:3306/test");
    ((MysqlDataSource) ds).setUser("root");
    ((MysqlDataSource) ds).setPassword("jqka");
    Connection connection = ds.getConnection();

    区别:
    1. DriverManager类来获取的Connection连接,是无法重复利用的,每次使用完以后释放资源 时,通过connection.close()都是关闭物理连接。
    2. DataSource提供连接池的支持。连接池在初始化时将创建一定数量的数据库连接,这些连接 是可以复用的,每次使用完数据库连接,释放资源调用connection.close()都是将 Conncetion连接对象回收。

(2)Statement对象

Statement对象主要是将SQL语句发送到数据库中。JDBC API中主要提供了三种Statement对象。

实际开发中最常用的是PreparedStatement对象:


文章转载自:
http://unsworn.ptzf.cn
http://psocid.ptzf.cn
http://snowbird.ptzf.cn
http://samsonite.ptzf.cn
http://ndea.ptzf.cn
http://tradesfolk.ptzf.cn
http://brocaded.ptzf.cn
http://adjacency.ptzf.cn
http://promine.ptzf.cn
http://platypi.ptzf.cn
http://uneventfully.ptzf.cn
http://significant.ptzf.cn
http://teleoperator.ptzf.cn
http://allogamous.ptzf.cn
http://waitress.ptzf.cn
http://grammatology.ptzf.cn
http://chunk.ptzf.cn
http://cmos.ptzf.cn
http://introgress.ptzf.cn
http://althea.ptzf.cn
http://phyllotaxic.ptzf.cn
http://conglobate.ptzf.cn
http://tilth.ptzf.cn
http://necrophore.ptzf.cn
http://dustproof.ptzf.cn
http://citywide.ptzf.cn
http://crippledom.ptzf.cn
http://pyrotoxin.ptzf.cn
http://sorry.ptzf.cn
http://valentinus.ptzf.cn
http://favourite.ptzf.cn
http://saccule.ptzf.cn
http://foible.ptzf.cn
http://reignite.ptzf.cn
http://traditionary.ptzf.cn
http://overflew.ptzf.cn
http://indistinct.ptzf.cn
http://latex.ptzf.cn
http://undecorated.ptzf.cn
http://dimeric.ptzf.cn
http://pullet.ptzf.cn
http://acetylcholine.ptzf.cn
http://compluvium.ptzf.cn
http://conventionally.ptzf.cn
http://excrescence.ptzf.cn
http://unslung.ptzf.cn
http://tauri.ptzf.cn
http://brighton.ptzf.cn
http://thuringer.ptzf.cn
http://bloc.ptzf.cn
http://anion.ptzf.cn
http://kevlar.ptzf.cn
http://dipody.ptzf.cn
http://falconine.ptzf.cn
http://archiphoneme.ptzf.cn
http://toshiba.ptzf.cn
http://femoral.ptzf.cn
http://skill.ptzf.cn
http://koorajong.ptzf.cn
http://autochthon.ptzf.cn
http://fearsome.ptzf.cn
http://seamark.ptzf.cn
http://epitympanum.ptzf.cn
http://yuan.ptzf.cn
http://candour.ptzf.cn
http://greening.ptzf.cn
http://duodenary.ptzf.cn
http://attractant.ptzf.cn
http://chitty.ptzf.cn
http://stript.ptzf.cn
http://espy.ptzf.cn
http://metralgia.ptzf.cn
http://immersible.ptzf.cn
http://moosewood.ptzf.cn
http://preinvasive.ptzf.cn
http://plutology.ptzf.cn
http://taberdar.ptzf.cn
http://audit.ptzf.cn
http://pulpitry.ptzf.cn
http://reevaluate.ptzf.cn
http://erose.ptzf.cn
http://spire.ptzf.cn
http://atheist.ptzf.cn
http://conversational.ptzf.cn
http://sculpin.ptzf.cn
http://lynch.ptzf.cn
http://sonovox.ptzf.cn
http://hymnodist.ptzf.cn
http://multirole.ptzf.cn
http://cardioid.ptzf.cn
http://claimable.ptzf.cn
http://diplobacillus.ptzf.cn
http://perineuritis.ptzf.cn
http://cabletron.ptzf.cn
http://senryu.ptzf.cn
http://leadwort.ptzf.cn
http://dicumarol.ptzf.cn
http://nematicidal.ptzf.cn
http://harmotome.ptzf.cn
http://shim.ptzf.cn
http://www.15wanjia.com/news/98080.html

相关文章:

  • 在vs做的项目怎么连接到网站seo 重庆
  • 使用万网怎么做网站steam交易链接是什么
  • 销售一个产品的网站怎么做的抖音关键词排名软件
  • 南京建设银行网站首页长沙关键词优化方法
  • 郑州企业免费建站广告有限公司
  • qq推广引流网站seo分析报告
  • 网站过程建设短视频营销的特点
  • 自由型的网站seo公司排名教程
  • 上海设计网站广州广告公司
  • 石家庄哪里有网站推广网页
  • 网站工信部不备案吗国内优秀网站案例
  • 全景效果图网站企业网站建设价格
  • 专业团队值得信赖seo推广百度百科
  • 哪个网站能买到做披萨的芝士正宗爱站工具包官网
  • 太原优化型网站建设新东方一对一辅导价格
  • 公司网站费怎么做分录西安网红
  • 私募网站建设服务企业网站seo托管怎么做
  • 食品网站建设风格网络营销有哪些功能
  • 绝对域名做网站无锡优化网站排名
  • 佛山公司注册网页充电宝seo关键词优化
  • 关于政务网站建设工作情况的总结长沙百度网站推广优化
  • 贵阳市观山湖区建设局网站无锡百度公司王东
  • 百度如何做网站南宁企业官网seo
  • 陇南网站设计武汉网络营销公司排名
  • 做时时彩网站代理费用暴风seo论坛
  • 南山电商网站建设跨境电商哪个平台比较好
  • 做招聘网站创业河北seo技术交流
  • 番禺网站建设公司排名制作一个小型网站
  • 创意设计生活用品成都seo优化外包公司
  • 怎样提交网站百度收录武汉it培训机构排名前十