JDBC即Java database connect。
jdbc开发步骤
- 注册驱动
- 获得连接
- 获得语句执行平台
- 执行SQL语句
- 处理结果
- 释放资源
开局基操————
文件右键NEW-> FOLD
建一个文件夹 用于放包
Lib 专门用来放架包的
mysql-connector-java-5.1.37-bin.jar 可以很容易在网上找到
链接:https://pan.baidu.com/s/1Tm64O4_GtiZTfyNIgaiD_Q
提取码:lun0
可能失效的比较快吧 还是建议自己上网找
找到mysql需要的架包复制到LIb中 ctrl+c ctrl+v
(mysql-connector-java-5.1.37-bin.jar)
在lib里找到架包右键build path
出现Referenced Libraries
Referenced Libraries ->com.mysql.jdbc->Driver.class 右键 copy qualified name (复制全路径)
//1.注册驱动
Class.forName("com.mysql.jdbc.Driver");
""内为上复制的全路径去掉 .class
都是一样的 直接记住com.mysql.jdbc.Driver也一样
//1.注册驱动
Class.forName("com.mysql.jdbc.Driver");
//2.获得连接 参数 连接数据库的地址 用户名 密码
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/phone", "root", "123");
System.out.println(conn);
????为你的数据库名 前面应当基本一致
root是我的用户
123是我该用户的密码
Syso验证是否连接成功
此处应import java.sql.Connection;
容易应用错误 import com.mysql.jdbc.Connection; 这个包此处会报错改成上面的就可以
Syso如果报错权限问题
在数据库下改权限
grant all privileges on *.* to 'root' @'%' identified by '????';
flush privileges;
%内为你的 一般为localhost
????为你数据库密码
//3.获得语句执行平台
String sql ="select * from user";
PreparedStatement pre = conn.prepareStatement(sql);
此处应用的包为import java.sql.PreparedStatement;
同上 莫出错
//4&&5.执行sql并处理 以查询为例//查询用executeQuery 增删改用 executeUpdate
ResultSet res = pre.executeQuery();
//由于可能不知道有多少条数据用WHILE
while(res.next()) {
int id = res.getInt("id"); id 为user表内有的属性 NAME AGE SEX 同
String name = res.getString("NAME");
int age = res.getInt("AGE");
String sex = res.getString("SEX");
System.out.println(id+"--"+name+"--"+age+"--"+sex+"--");
}
//释放资源 先开的后关 后开的先关
res.close();
pre.close();
conn.close();
此处应用了import java.sql.ResultSet;
我的user数据库是
增
//获得语句执行平台
String sql ="insert into user values(?,?,?,?)";
几个数据就几个问号
//预编译对象PreparedStatement
PreparedStatement pre = conn.prepareStatement(sql);
pre.setInt(1,9); 第一个问号的值
pre.setString(2, "xiaofan"); 第二个问号的值
pre.setInt(3,80); 第三个问号的值
pre.setString(4, "nv"); 第四个问号的值
int sum = pre.executeUpdate(); 返回都是几行受影响 故结果为设一个整形
System.out.println(sum); 有结果表示成功
改
//获得语句执行平台
String sql ="update user set NAME=? where id=?";
//预编译对象PreparedStatement
PreparedStatement pre = conn.prepareStatement(sql);
pre.setString(1, "dafan"); 第一个问号值
pre.setInt(2,9); 第二个问号值
int sum = pre.executeUpdate();
System.out.println(sum);
删 理解同增改
//获得语句执行平台
String sql ="delete from user where id=?";
PreparedStatement pre = conn.prepareStatement(sql);
pre.setInt(1, 11);
int sum = pre.executeUpdate();
System.out.println(sum);
查 全部代码
// TODO Auto-generated method stub
//1.注册驱动
Class.forName("com.mysql.jdbc.Driver");
//2.获得连接 参数 连接数据库的地址 用户名 密码
Connection conn= DriverManager.getConnection("jdbc:mysql://localhost:3306/phone", "root", "123");
System.out.println(conn);
//获得语句执行平台
String sql ="select * from user";
PreparedStatement pre = conn.prepareStatement(sql);
//执行sql并处理
//查询用executeQuery 增删改用 executeUpdate
ResultSet res = pre.executeQuery();
//由于可能不知道有多少条数据
while(res.next()) {
int id = res.getInt("id");
String name = res.getString("NAME");
int age = res.getInt("AGE");
String sex = res.getString("SEX");
System.out.println(id+"--"+name+"--"+age+"--"+sex+"--");
}
//释放资源 先开的后关 后开的先关
res.close();
pre.close();
conn.close();
增 全部代码
// TODO Auto-generated method stub
//1.注册驱动
Class.forName("com.mysql.jdbc.Driver");
//2.获得连接 参数 连接数据库的地址 用户名 密码
Connection conn= DriverManager.getConnection("jdbc:mysql://localhost:3306/phone", "root", "123");
System.out.println(conn);
//获得语句执行平台
String sql ="insert into user values(?,?,?,?)";
//预编译对象PreparedStatement
PreparedStatement pre = conn.prepareStatement(sql);
pre.setInt(1,9);
pre.setString(2, "xiaofan");
pre.setInt(3,80);
pre.setString(4, "nv");
int sum = pre.executeUpdate();
System.out.println(sum);
pre.close();
conn.close();
改 全部代码
//1.注册驱动
Class.forName("com.mysql.jdbc.Driver");
//2.获得连接 参数 连接数据库的地址 用户名 密码
Connection conn= DriverManager.getConnection("jdbc:mysql://localhost:3306/phone", "root", "123");
System.out.println(conn);
//获得语句执行平台
String sql ="update user set NAME=? where id=?";
//预编译对象PreparedStatement
PreparedStatement pre = conn.prepareStatement(sql);
pre.setString(1, "dafan");
pre.setInt(2,9);
int sum = pre.executeUpdate();
System.out.println(sum);
pre.close();
conn.close();
删 全部代码
//1.注册驱动
Class.forName("com.mysql.jdbc.Driver");
//2.获得连接 参数 连接数据库的地址 用户名 密码
Connection conn= DriverManager.getConnection("jdbc:mysql://localhost:3306/phone", "root", "123");
System.out.println(conn);
//获得语句执行平台
String sql ="delete from user where id=?";
PreparedStatement pre = conn.prepareStatement(sql);
pre.setInt(1, 11);
int sum = pre.executeUpdate();
System.out.println(sum);
pre.close();
conn.close();
以上代码均是放在主函数便可以
抛出异常 引入包便可以使用
以下为完整的代码
package day0706;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
public class Demo {
public static void main(String[] args) throws ClassNotFoundException, SQLException {
// TODO Auto-generated method stub
//1.注册驱动
Class.forName("com.mysql.jdbc.Driver");
//2.获得连接 参数 连接数据库的地址 用户名 密码
Connection conn= DriverManager.getConnection("jdbc:mysql://localhost:3306/phone", "root", "123");
System.out.println(conn);
//获得语句执行平台
String sql ="insert into user values(?,?,?,?)";
//预编译对象PreparedStatement
PreparedStatement pre = conn.prepareStatement(sql);
pre.setInt(1,20);
pre.setString(2, "xiaofan");
pre.setInt(3,80);
pre.setString(4, "nv");
int sum = pre.executeUpdate();
System.out.println(sum);
pre.close();
conn.close();
}
}