初识java-JDBC
2021/7/17 22:06:16
本文主要是介绍初识java-JDBC,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
JDBC
- 一、前言
- 二、通过JAVA操作MySQL (JDBC)
- 1.先得到MySQL的API
- 2.具体流程
- 1.先和数据库建立连接
- 2.拼装SQL语句
- 3.执行SQL语句
- 4.释放申请的资源
- 总结
一、前言
在日常生活中一般使用代码来操作数据库,MySQL会给主流的语言提供各种API(现成的函数/类),MySQL是由C/C++实现的,其他语言要操作数据库就要间接访问,数据库服务器是本体,通过代码写的程序,调用MySQL的API实现的是一个客户端,相当于服务器提供的客户端。即就要按照MySQL服务器的要求,构造出响应的网络请求就行了。
通过代码访问MySQL就是实现一个MySQL客户端(只要能按照人家MySQL的约定的网络请求格式来构造请求)
二、通过JAVA操作MySQL (JDBC)
1.先得到MySQL的API
在这些地方都能得到:
1.官方网站
2.Maven Repository
3.github主页
步骤:
1.在Maven Repository中找到MySQL的包,下载.jar包
2.把.jar包导入项目中
导入进去,记得点击确定,右键目录找到 Add as Library ,检查自己的包是否导入
点击File 之后找到 Project Structure 再点Libraries
这样就是导入成功了
2.具体流程
1.先和数据库建立连接
(1)先创建一个数据源
DataSource dataSource=new MysqlDataSource();
(2)给数据源设置属性,数据源就是告诉代码数据库服务器在哪里。
((MysqlDataSource)dataSource).setUrl("jdbc:mysql://127.0.0.1:3306/homework?characterEncoding=utf8&useSSL=false"); ((MysqlDataSource)dataSource).setUser("root"); ((MysqlDataSource)dataSource).setPassword("123456");
端口号后面的是要连接的数据库的名字
(3)通过getConnection()方法来建立连接, 选择Connection 时一定要选 java.sql后缀的
Connection connection=dataSource.getConnection();
2.拼装SQL语句
1.先写一条SQL语句
String sql="insert into purchase values (1,2,3,5)";
2.实际上我们需要的是一个“语句对象” ,需要使用 PreparedStatement来构造
PreparedStatement statement=connection.prepareStatement(sql);
3.执行SQL语句
根据所执行的SQL语句不同,选择不同的语句执行
如果所执行的语句是insert, delete,update
语句使用executeUpdate()
如果当前语句是select
使用executeQuery()
分类依据就是是否更新,增删改都是更新过的,有更新就选Update
查询没有更新,查询语句就选Query,查询语句不仅仅返回结果正确与否,还要返回查询出的结果。
这是根据插入语句写的,插入,删除,修改语句返回结果1,即成功,返回结果0就是失败了
int ret=statement.executeUpdate(); System.out.println("ret="+ret);
而如果语句是查询语句Select和其他三种都是不同的,需要获取到当前纪录
ResultSet resultSet=statement.executeQuery(); while(resultSet.next()){ //获取到当前纪录,(当前行的每一列) int order_id=resultSet.getInt("order_id"); int customer_id=resultSet.getInt("customer_id"); int goods_id=resultSet.getInt("goods_id"); int nums=resultSet.getInt("nums"); System.out.println(order_id+", "+customer_id+", "+goods_id+", "+nums); }
并且返回的结果中带有数据库的信息。
4.释放申请的资源
statement.close(); connection.close(); resultSet.close();
释放顺序和执行顺序相反
这种和数据库建立连接的方式就是一次只能插入一条数据,是和数据库连接,将数据写死了
我们应该动态建立和数据库的连接就将sql语句中需要插入的部分,写成?占位符,使用statement.set(类型)来给?赋值
总结
服务器可能会收到很多的请求.针对每一个请求,都可以创建Connection,PreparedStatement,ResultSet 对象,但是这些请求之间彼此共用一个 DataSource
如果当前服务器收到的请求很多,那么也一定有很多Connection,PreparedStatement,ResultSet 对象,但是建立Connection对象的开销,远远比其他两个大,因为是要建立连接,所有我们使用.getConnection()方法时并不是每次调用时都创建新的连接对象,就是在数据库连接池中寻找,如果找到了,就不用建立新的连接
可以写一个懒汉式单例来减少创建对象
public class DBUtil { //通过这个类,保证DataSourse 是一个唯一的实例 //其中static 是表明当前是类成员 private static DataSource dataSource=null; public static DataSource getDataSource(){ if(dataSource==null){ dataSource=new MysqlDataSource(); ((MysqlDataSource) dataSource).setUrl("jdbc:mysql://127.0.0.1:3306/homework?characterEncoding=utf8&useSSL=false"); ((MysqlDataSource) dataSource).setUser("root"); ((MysqlDataSource) dataSource).setPassword("123456"); } return dataSource; } }
这篇关于初识java-JDBC的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-22项目:远程温湿度检测系统
- 2024-12-21《鸿蒙HarmonyOS应用开发从入门到精通(第2版)》简介
- 2024-12-21后台管理系统开发教程:新手入门全指南
- 2024-12-21后台开发教程:新手入门及实战指南
- 2024-12-21后台综合解决方案教程:新手入门指南
- 2024-12-21接口模块封装教程:新手必备指南
- 2024-12-21请求动作封装教程:新手必看指南
- 2024-12-21RBAC的权限教程:从入门到实践
- 2024-12-21登录鉴权实战:新手入门教程
- 2024-12-21动态权限实战入门指南