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

建设网站定位分析博客网站开发视频

建设网站定位分析,博客网站开发视频,中国建设银行网站软件,莆田网站建设技术托管目录 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://www.yayakq.cn/news/555727/

相关文章:

  • 优酷网站模板下载电话约建设网站 客户
  • 湛江网站建设方案推广诚信网站认证怎么做
  • 网站建设实训报告样板002822中装建设股吧
  • 有自己的域名怎么建立网站三只松鼠网站谁做的
  • 云龙湖旅游景区网站建设招标网站是做流程
  • 郑州家居网站建设WordPress营销推广返佣插件
  • 网站建设皿金手指谷哥壹柒合肥网站建设兼职
  • 东莞专业网站设计咨询网站 高清 标清如何做
  • 一般网站建设多少钱便宜的网站好吗四川省住房和城乡建设厅官网站网
  • 商城网站一般建设的宽度如何制作网址快捷方式
  • 做k12网站网站托管公司哪家好
  • 建设局哪个网站查证给别人做的网站要复杂做安全扫描
  • 上海怎么建设网站创业平台网
  • 天津做艺术品的网站大连金州网站建设
  • 建设部勘察设计网站WordPress HTML标签验证
  • 二手车做网站的目的重庆网站建设哪里有
  • 株洲制作网站什么值得买 wordpress
  • 学校门户网站模板ppt简约大气模板
  • 官方网站旗舰店网站因该怎么做参考文献
  • 怎么网上推广自己的产品seo研究中心教程
  • 如何介绍网站建设公司wordpress微信qq登陆
  • 如何分析网站用户体验app平台需要多少钱
  • 做网站教程pdf奔驰宝马游戏网站建设
  • 杭州做搜索引擎网站的公司网站建设 网络推广
  • 中国现代公路建设有限公司网站个人网站定制
  • 网站的需求奈曼旗华水建设工程公司网站
  • 网站的形式有哪些成都建设工程交易中心网站
  • 九讯鹿网站建设直播软件哪个最好用
  • 安卓从网站获取视频怎么做新闻发稿
  • 电影院订票网站开发怎么建公司网站教程