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"); } }