1.jdbc的概念
- JDBC(Java DataBase Connectivity:java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系型数据库提供统一访问,它是由一组用Java语言编写的类和接口组成的。
- JDBC的作用:可以通过java代码操作数据库
2.JDBC的常用API
- Driver接口:Driver接口是所有JDBC驱动程序必须实现的接口,该接口专门提供给数据库厂商使用。需要注意的是,在编写Java应用程序时,必须把使用的数据库驱动程序(这里指MySQL驱动程序的JAR包)或类库加载到项目的classpath中。
- DriverManager类:用于加载JDBC驱动程序并且创建Java应用程序与数据库的连接。
- Connection接口
- Statement接口
- PreparedStatement接口
- ResultSet接口
3.我们直接用代码实现吧,这里我MySQL用的是HeisiSQL
首先关于HeisiSQL的详细使用我们截图体现一下:
首先新建一个连接,我这里已经写好了,我使用的是localhost,用户名:root
进去之后就是新建数据库了
数据库建完就是建表
建完表以后就是建立表的属性信息,也可以查询里面用代码写
建立表里面的相关属性信息代码是这样子的
CREATE DATABASE test;USE test;
CREATE TABLE teacher
(
number INT,
NAME CHAR(50),
age int
);
然后建立完相关信息后,我再用的查询插入信息,查询结果具体如下:
接下来就是撰写JDBC的代码与MySQL里面的数据连通:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class ConnMySQL {
public static void main(String args[]) throws Exception
{
Statement stmt=null;
ResultSet rs=null;
Connection conn=null;
try{
//1.注册数据库的驱动程序
Class.forName("com.mysql.cj.jdbc.Driver");//这是一个MySQL与JDBC的驱动程序类名,是固定的,初学者会认为cj是命名,从而修改,但这是固定的
//通过DriverManager获取数据库连接
String url="jdbc:mysql://localhost:3306/test"+"?serverTimezone=GMT%2B8&useSSL=false";
String username="root";//数据库用户名
String password="123456";//数据库密码
conn=DriverManager.getConnection(url,username,password);
//通过Connection对象获取Statement对象
stmt=conn.createStatement();
//使用Statement执行SQL语句
String sql="select * from teacher";
rs=stmt.executeQuery(sql);
//操作结果集
System.out.println("number name age");
while(rs.next()){
String number=rs.getString("number");//通过列名获取指定列的值
String name=rs.getString("name");
int age=rs.getInt("age");
System.out.println(number+" "+name+" "+age);
}
}catch (Exception e){
e.printStackTrace();
}finally {
//回收数据库资源
if (rs!=null){
try{
rs.close();
}catch (SQLException e){
e.printStackTrace();
}
rs=null;
}
if(stmt!=null){
try {
stmt.close();
}catch (SQLException e){
e.printStackTrace();
}
stmt=null;
}
if (conn!=null){
try {
conn.close();
}catch (SQLException e){
e.printStackTrace();
}
conn=null;
}
}
}
}
之后运行结果如下: