2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > JDBC编程(Java操作数据库 MySQL)

JDBC编程(Java操作数据库 MySQL)

时间:2021-05-18 23:55:22

相关推荐

JDBC编程(Java操作数据库 MySQL)

数据库提供了各种语言版本的API(一组函数/一组类),调用这些API就能操作数据库

而在Java中,又将各种数据库的api再次抽象封装成一套统一的API——JDBC

在中央仓库Maven Repository: Search/Browse/Explore ()下载jar包

目录

1. 简单导入方法

2. 连接设置

创建一个数据源对象

把数据库位置信息添加到DataSource

设置用户名

设置密码

3. 连接数据库

4. 构造SQL语句

5. 执行SQL并释放资源

⭐案例

Delete删除操作

Update修改操作

Select查找操作

小结(JDBC中常用的类)

1. 简单导入方法

先在要运行的项目中创建一个目录(lib

右击项目名 ->New->Directory

其实就是一个文件夹

把下载好的jar包拷贝到这个目录中,右击jar包,选择Add as Library(库)...

在新的对话框中点击OK

导入成功,这样就可以直接使用了~

2. 连接设置

创建一个数据源对象

DataSource这个概念,表示“数据库在哪”

public static void testInsert() {//1、创建一个数据源对象DataSource dataSource = new MysqlDataSource();}

把数据库位置信息添加到DataSource

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

URL典型结构:

协议名称:jdbc:mysql(jdbc表示使用jdbc访问数据库,mysql表示访问的数据库是mysql)

IP地址:一般写作“点分十进制”

要访问的数据库名:/xxx

额外参数:?characterEncoding=utf8&useSSL=false

指定字符编码:characterEncoding(此处写的是utf8,得和数据库服务器设置的编码方式统一)

useSSL:是否加密

在MySQL Workbench中可以查看 数据库的ip端口 数据名

如下图:127.0.0.1表示本机自身,端口号为安装服务器时手动设置,默认为3306

IP 区分是哪个主机,port端口号 是区分主机上的哪个程序

设置用户名

root表示默认管理员

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

设置密码

MySQL登录密码

((MysqlDataSource)dataSource).setPassword("xxxx");

3. 连接数据库

连接数据库,进行网络通信

import java.sql.Connection; //注意导入标准库中的Connection connection = dataSource.getConnection();

4. 构造SQL语句

构造SQL语句,为插入做准备

// 构造一个SQL语句,为插入做准备!// 本质还是用SQL写// 此处不需要use 数据库,因为在URL中已经设置好数据库的名字String sql = "insert into student values(1,'张三')";// 光搞一个String的 sql 还不够,要想真正运行SQL,还需要一个专门的对象,PreparedStatementPreparedStatement statement = connection.prepareStatement(sql);

5. 执行SQL并释放资源

// 执行SQL//客户端把 SQL 通过网络请求,发送给Mysql服务器//mysql 服务器来解析这个 SQL 请求,执行具体操作,返回响应结果//此处使用 executeUpdate 来完成数据库内容的变更,(变更包含 insert, update, delete)//返回值表示这个操作影响的行数int ret = statement.executeUpdate();System.out.println("ret: "ret);// 执行完 SQL 之后,回收资源statement.close();// 客户端与服务器的连接connection.close();

⭐案例

Delete删除操作

// 删除操作public static void testDelete() throws SQLException {//1. 创建数据源,设置信息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("1230");//2. 和数据库建立连接Connection connection = dataSource.getConnection();//3. 构造 SQLScanner scanner = new Scanner(System.in);System.out.println("请输入要删除的id:");int id = scanner.nextInt();String sql = "delete from student where id = ?";PreparedStatement statement = connection.prepareStatement(sql);statement.setInt(1,id);//4. 执行 SQLint ret = statement.executeUpdate();System.out.println("ret=" + ret);//5. 释放资源statement.close();connection.close();}

Update修改操作

//修改操作public static void testUpdate() throws SQLException {//1.创建数据源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("1230");Connection connection = dataSource.getConnection();// 构造SQLScanner scanner = new Scanner(System.in);System.out.println("请输入要修改的id:");int id = scanner.nextInt();System.out.println("请输入要修改的名字:");String name = scanner.next();String sql = "update student set name = ? where id = ?";PreparedStatement statement = connection.prepareStatement(sql);statement.setString(1,name);statement.setInt(2,id);//执行SQLint ret = statement.executeUpdate();System.out.println("ret: "+ ret);//回收资源statement.close();connection.close();}

Select查找操作

// 查找操作public static void testSelect() throws SQLException {//数据源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("1230");//建立连接Connection connection = dataSource.getConnection();//构造SQLString sql = "select * from student";PreparedStatement statement = connection.prepareStatement(sql);//执行SQLResultSet resultSet = statement.executeQuery();//遍历结果集合,结果集合非常类似于迭代器while (resultSet.next()) {int id = resultSet.getInt("id");String name = resultSet.getString("name");System.out.println("id: "+id+",name: "+name);}//释放资源resultSet.close();statement.close();connection.close();}

小结(JDBC中常用的类)

MySQL是一个"客户端-服务器"结构的程序

服务器是MySQL的本体,负责管理数据

客户端有很多种形态(cmd,workbench,JDBC代码…)

DateSource通用的,能够支持各种数据库MysqlDateSource表示数据源,是MySQL驱动包提供的专门针对MySQL的类,设置用户名、密码、URL…通过DateSource来建立Connection通过Connection创建出了PreparedStatement,通过statement把用户构造的SQL通过网络发送给服务器通过网络,把数据集拿回来

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。