企业管理系统定制开发【通关MySQL】Java的JDBC编程

✨哈喽,企业管理系统定制开发进来的小伙伴们,你们好耶!✨

🛰️🛰️系列专栏:【通关MySQL】

✈️✈️本篇内容:Java的JDBC编程。

🚀🚀企业管理系统定制开发代码存放仓库gitee:

⛵⛵作者简介:企业管理系统定制开发一名双非本科大三在读的科班Java编程小白,道阻且长,你我同行!

目录


企业管理系统定制开发在正文开始之前我们首企业管理系统定制开发先来了解一下什么是数企业管理系统定制开发据库编程的必备条件?

1. 企业管理系统定制开发数据库编程的必备条件

编程语言,如 Java C C++ Python 等 。
数据库,如 Oracle MySQL SQL Server 等 。
企业管理系统定制开发数据库驱动包:企业管理系统定制开发不同的数据库,对应不同的编程语言提供了不同的数据库驱动包,如: MySQL
供了 Java 的驱动包 mysql-connector-java ,需要基于 Java 操作 MySQL 即需要该驱动包。同样的,
要基于 Java 操作 Oracle 数据库则需要 Oracle 的数据库驱动包 ojdbc

2、Java的数据库编程—JDBC

一、概念

JDBC是数据库连接是一种用于执行SQL语句的java API,就类似于一个网址,它是java中的数据库连接规范,这个API里面由java.sql.*,javax.sql.*包中的一些类和接口组成,这些都可以为实现sql做基础,这些都为java开发人员操作数据库提供了一个标准的API,可以为多重关系数据库提供同意的访问。

二、jdbc优点

直接底层操作,提供了简单,便捷的访问数据库的方法,跨平台性较强,灵活比较强,可以执行很复杂的SQL语句,说白了就是JDBC要通过Java代码操作数据库,那么如何操作呢?

3、JDBC使用

1、准备数据库驱动包
第一步首先我们需要去MySQL的中央仓库,下载我们的jar包。
step1:复制这个网址等待跳转(根据电脑型号不同进入的时间有长有短),进入到这个界面,在搜索框里输入MySQL,在出来的结果选择红色框框里面这个点进去。

 step2:进入之后选择我们电脑对应的MySQL版本,比如博主使用的就是MySQL5.0系列的,那么选择5开头的任意一个都可以,点击进去。

 step3:进入之后找到这个jar包,注意点击红色箭头这个,点击之后就开始下载了。

 接下来我们就要在项目中导入驱动包。

step1:新建一个项目jdbc,在这个项目下新建一个目录lib。

 step2:复制我们刚才下载的jar包,直接右键复制即可,不用安装,复制到我们的lib目录下。

 step3:接着我们右键lib,找到as library,点击。

 4、JDBC开发实例

一般的jdbc开发分为五大具体步骤,下面博主将一步一步演示。

1、首先我们在src下面新建一个类JdbcTinsertDemo。

 2、首先创建数据源 ,描述了数据库在哪。

 DataSource dataSource = new MysqlDataSource();

 DataSource相当于一个interface ,不能实例化对象,所以我们实现类MysqlDataSource。

设置数据库所在的位置,三条固定写法。

  1. ((MysqlDataSource)dataSource).setUrl("jdbc:mysql://127.0.0.1:3306/test_demo3?characterEncoding=utf8&useSSL=false");
  2. ((MysqlDataSource)dataSource).setUser("root");//设置用户名 固定是root 也可以配置别的
  3. ((MysqlDataSource)dataSource).setPassword("数据库密码");//设置密码 登录数据库密码

注解

jdbc:mysql 表示这个url是给jdbc中的mysql来使用的。

127.0.0.1 表示IP地址-> 这里称为环回IP 表示主机自己(相当于Java中的this)。

3306 代表端口号, 一般默认是3306 这么多程序你要把网络数据交给哪个程序呢?

test_demo3 表示要访问的数据库名。

characterEncoding=utf8 访问的字符编码方式。

useSSL=false useSSL表示加密,此处没必要加密 手动关闭。

url:唯一资源地址符,描述了互联网上唯一的一个资源的位置(也就是咋们生活中的网址)。

3、和数据库建立网络连接

(写的jdbc代码本质上是实现一个MySQL客户端,要通过网络和服务器进行通信)

Connection connection = dataSource.getConnection();

注意是 Connection java.sql 这个连接别搞错了。

Connectrion 是网络通信中的核心概念,叫做连接,即找个地方记录下,哪个客户端和哪个服务器,即将要进行通信了。

4、构造一个SQL语句,来完成插入操作

那么在这一步操作之前我们需要打开我们的数据库,刚才导入的数据库名一定是我这里将要使用的数据库,那么我们以student表为例,这里我们新建一个student表。

假如我们要往student表中插入一条数据。

String sq1 ="insert into student values(1,'张三')";//描述了sql是啥样的

那么真正执行SQL语句用到PreparedStatement这个类库,后面的括号里面传入我们的SQL语句。

PreparedStatement statement = connection.prepareStatement(sq1);//真正的执行语句

5、执行SQL语句 控制客户端给服务器发送请求

那么这里面我们会用到executeUpdate这个函数,它的返回值是一个整数,我们定义一个ret用来接收。

  1. int ret = statement.executeUpdate();
  2. System.out.println("ret = "+ret);

注意这里 针对增 删 改: 使用executeUpdate   针对查:使用executeQuery。

6、断开和数据库的连接,并且释放必要的资源

注意这里资源释放的顺序和创建是相反的。

  1. statement.close();
  2. connection.close();

结果演示:

我们先在idea上运行看一下,成功插入了一条语句。

 在MySQL客户端查询插入成功了没有。

 那么,这样写SQL语句是不是有点呆板,我们能否通过自己输入对应的学号姓名来控制我们想插入的数据呢?答案是:可以的!

7、动态拼接写法

那么这里步骤没有变化,唯一变化的就是我们需要添加输入语句,还有sql的写法:

输入语句:

  1. Scanner sc= new Scanner(System.in);
  2. System.out.println("请输入学号:");
  3. int id = sc.nextInt();
  4. System.out.println("请输入姓名:");
  5. String name = sc.next();

拼接写法SQL:

  1. String sq1 ="insert into student values("+id+",'"+name+"')";
  2. PreparedStatement statement = connection.prepareStatement(sq1);

那么这种字符串拼接的方式 是不是太丑了呢?如何改进?使用下面的动态拼接,注意写法我们通过?的形式这里我们称之为'占位符',实现我们的构造。

  1. String sq1 ="insert into student values(?,?)";//动态拼接
  2. PreparedStatement statement = connection.prepareStatement(sq1);
  3. statement.setInt(1,id);//按照下标依次替换 注意下标从1开始计算
  4. statement.setString(2,name);
  5. System.out.println("sql "+ statement);

结果演示:

MySQL查询一下是否插入成功:

 OK,那么针对JDBC编程的'增'我们这里已经全部演示完毕,那么删和改就是一样的,只需要修改sql语句即可,接下来我们看看查是如何实现的。

代码演示:

  1. import com.mysql.jdbc.Connection;
  2. import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;
  3. import javax.sql.DataSource;
  4. import java.sql.PreparedStatement;
  5. import java.sql.ResultSet;
  6. import java.sql.SQLException;
  7. public class jdbcSelectdemo {
  8. public static void main(String[] args) throws SQLException {
  9. DataSource dataSource = new MysqlDataSource();
  10. ((MysqlDataSource)dataSource).setUrl("jdbc:mysql://127.0.0.1:3306/test_demo3?characterEncoding=utf8&useSSL=false");
  11. ((MysqlDataSource)dataSource).setUser("root");
  12. ((MysqlDataSource)dataSource).setPassword("020719");
  13. Connection connection = (Connection) dataSource.getConnection();
  14. String sq1 = "select * from student";
  15. PreparedStatement statement = connection.prepareStatement(sq1);
  16. //写代码则是让java程序快速地,重复的多次执行一些相对固定的SQL
  17. //实际开发过程中,操作数据库,99.99%都是通过代码来完成自动的操作数据库
  18. //结果集合 类似于迭代器遍历
  19. ResultSet resultSet = statement.executeQuery();
  20. while (resultSet.next()){//next相当于移动一下光标,光标指向下一行
  21. int id = resultSet.getInt("id");
  22. String name = resultSet.getString("name");
  23. System.out.println(id+":"+name);
  24. }
  25. resultSet.close();
  26. statement.close();
  27. connection.close();
  28. }
  29. }

代码大致和增删改差不多,唯一的区别就是SQL执行语句不同还有就是用到一个 ResultSet结果集,Resultset主要用于接收JDBC查询语句返回的数据集对象,ResultSet对象保持一个光标指向其当前的数据行。 最初,光标位于第一行之前。 next方法将光标移动到下一行,并且由于在ResultSet对象中没有更多行时返回false ,因此可以在while循环中使用循环来遍历结果集。

网站建设定制开发 软件系统开发定制 定制软件开发 软件开发定制 定制app开发 app开发定制 app开发定制公司 电商商城定制开发 定制小程序开发 定制开发小程序 客户管理系统开发定制 定制网站 定制开发 crm开发定制 开发公司 小程序开发定制 定制软件 收款定制开发 企业网站定制开发 定制化开发 android系统定制开发 定制小程序开发费用 定制设计 专注app软件定制开发 软件开发定制定制 知名网站建设定制 软件定制开发供应商 应用系统定制开发 软件系统定制开发 企业管理系统定制开发 系统定制开发