JDBC基本操作

准备工作,下载驱动包,https://dev.mysql.com/downloads/connector/j/

发现没有windows的,可以选择倒数第二个,Platform Independent独立平台

数据库跟驱动包版本最好一致

 

 

jdbc六部曲:

1.导包(IDEA开发工具-File-Project Structure-Libraries-添加+ 驱动jar) 工程里导包实际是个路径,通过路径去找包,理论上可以放在硬盘的任何位置,但为了方便,且不容易丢失,最好跟项目放在一起,

创建lib专门存放外部jar包(1.复制jar包到lib文件夹 2.放在那里识别不了,要产生关联,还需要添加依赖,按照上述添加到Libraries)

 

注意:5.X版本与8.X版本稍有不同,假如报错了有原因

 2.加载驱动

有几种方式,本质相同

Class.forName("com.mysql.cj.jdbc.Driver");//通过反射加载

DriverManager.registerDriver(new Driver());//这个Driver是com.mysql.cj.jdbc.Driver  并非java.sql.Dirver

new Driver();//跟上面这个本质相同,new之前要先加载静态块,其实就调了registerDriver,用上面那个反而多registerDriver了一次

3.获取连接、

String url="jdbc:mysql://localhost:3306/test";//8.x后的版本后边还有。。String url="jdbc:mysql://localhost:3306/test?serverTimezone=CST";
String user="uuu";
String password="123456";
Connection conn=DriverManager.getConnection(url,user,password);
4.创建Statement,它拥有excute等执行sql的方法
5.执行sql
int count=statement.excuteUpdate(sql);//返回受影响的行数,新增,修改,删除
ResultSet rs=statement.excuteQuery(sql);//查询,返回一个类似于Set的结果集 Set<Map<String,Object>>
rs.next();//是否还有下一行记录
rs.getXXX();//获取列的值,getString比较特殊可以获取任何类型的列,它底层或自动转换为String,但其它的getXXX方法必须跟表的列类型对应。
6.关闭
倒着关闭,先关rs.close statement.close conn.close

范例:

package com;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;

public class Main {
    public static void main(String[] args) throws ClassNotFoundException, SQLException {
        //1.导包
        //2.加载驱动
        Class.forName("com.mysql.cj.jdbc.Driver");//加载驱动类,类中的静态元素执行
        //3.获取连接
        String url="jdbc:mysql://localhost:3306/test";
        String user="userNam";//mysql登录用户名
        String password="123456";//登录密码
        Connection conn=DriverManager.getConnection(url,user,password);//类似一个socket,通过地址,用户,密码建立连接
        //4.创建状态参数,类似获取流
        Statement statement=conn.createStatement();
        //5.执行sql
        statement.execute("insert into newtest values(4,\"sf\",now());");
        //6.关闭 先打开的后关
        statement.close();
        conn.close();
        System.out.print("success");



    }
}

 

posted on 2021-03-03 00:42  刀锋93  阅读(67)  评论(0编辑  收藏  举报

导航