直接用Java对数据库进行操作
JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序,同时,JDBC也是个商标名。
首先要在maven里导入跟数据库相连对jar包
百度搜索 Maven --> mvnrepository --> 输入搜索mysql
点击jar即为我们所需要对jar包
然后下载下来 存放到一个位置
1)第一个是DriverManager 她是一个实现类,是一个工厂,我要生成mysql的,我要生成oracle的等等,那就是这个工厂来决定生成对象是什么
2)然后Driver是一个驱动的接口,也就是说我得告诉你,我生成它那我得应用什么呀,应用我mysql的驱动,应用我oracle的驱动
3)通过DriverManager进行链接,连接到数据库,生成connection对象
- 这个connection对象生成之后,就可以生成执行语句,如果他是一个查询结果那么可以把这个结果放到Resultset结果集接口里,由他进行处理
开始实验
首先在项目里把驱动加进来 也就是jar包
有以下的东西就表明加进来了
新建包新建类 开始测试连接
package com.neuedu.dataconnection;
import java.sql.*;
public class MysqlConn {
public static void main(String[] args) {
/*
* 1:加载驱动
* 2:进行连接数据库
* 1)使用DriverManager进行连接
* 2)生成对象Connection
* 3:PareparedStatement对象执行sql
* //4:结果集处理-- 只针对select的 处理
* 而对增删改不作处理,返回的是影响的行数 -- 添加,删除,修改
*
* //5:提交,--使用自动提交
*
* //6:关闭:从内向外
* */
//1:加载驱动
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
// 2:进行连接数据库
Connection connection=null;
PreparedStatement pstm=null;
ResultSet rs=null;
/*
* 1:url: jdbc:mysql://ip:3306/databasename
* jdbc:使用jdbc连接数据库
* mysql:连接的mysql的数据库,使用mysql的驱动
* IP:数据库所在的服务器地址:如果是本地:127.0.0.1|localhost,如果不是本地IP
* 3306:端口号,默认
* databasename:数据库名
* 2:username:数据库用户名
* 3:password:用户名对应的密码
* */
String url="jdbc:mysql://127.0.0.1:3306/hr";
String username="root";
String password="123456";
try {
connection= DriverManager.getConnection(url,username,password);
// 3:PreparedStatement对象执行sql
String sql="select * from employees";
pstm=connection.prepareStatement(sql);//预编译SQL语句
//4:结果集处理 只有select用的query,其他的增删改都用executeUpdate
rs = pstm.executeQuery();
//ResultSet相当于把查询出来的所有数据放到了表格里面,然后它一行一行的读 提取数据
while(rs.next()){
//通过列名列号都可以把数据提取出来
System.out.println(rs.getObject(1)+" "+rs.getObject("salary"));
}
//5:自动提交
/* System.out.println(connection);*/
} catch (SQLException e) {
e.printStackTrace();
}finally {
//6:关闭
try {
if(rs!=null){
rs.close();
}
if(pstm!=null){
pstm.close();
}
if(connection!=null){
connection.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
测试成功如下: