JABC (Java DataBase Connectivity),连接数据库和JAVA语言,需要加载专门的驱动来实现。
1.在java项目配置里面导入jar包
2.在JAV中调用驱动接口
加载驱动
public static final String url = "jdbc:mysql://127.0.0.1:3306/learn?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&useSSL=false";
public static final String account="root";
public static final String password="123456";
try {
//新版 需加关键字jc
Class.forName("com.mysql.jc.jdbc.Driver");
}catch(ClassNotFoundException e) {
e.printStackTrace();
}
URL的主要需要提供数据库端口以及数据库名称,这里mysql数据库端口是3306,我使用的数据库名字是learn。
不同的数据库写法不同
Oracle:jdbc:oracle:thin:@localhost:1521:learn
SqlServer:jdbc:microsoft:sqlserver://localhost:1433; DatabaseName=learn
MySql:jdbc:mysql://localhost:3306/learn
在8.0.11的JDBC中新版本有几点改动
1.加载方式变为Class.forName("com.mysql.jc.jdbc.Driver"); 多了jc
2.出现时间及ssl错误加上定义 &serverTimezone=GMT%2B8&useSSL=false
3.完整实例
这里只要正常在语句里面使用JDBC就可以了,贴上完整代码
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class my_jdbc {
//固定开头 跟数据库的名字 本地我设置了三个数据库 选一个
public static final String url = "jdbc:mysql://127.0.0.1:3306/learn?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&useSSL=false";
public static final String account="root";
public static final String password="123456";
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
//新版 需加关键字jc
Class.forName("com.mysql.jc.jdbc.Driver");
}catch(ClassNotFoundException e) {
e.printStackTrace();
}
try
{
Connection c = DriverManager.getConnection(url,account,password);
Statement stmt = c.createStatement();
ResultSet rs = stmt.executeQuery("select * from customers");
while(rs.next()) {
//rs的遍历结果下标是从1开始的
System.out.println("id: " + rs.getInt(1) + " name: "+
rs.getString(2));
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
4.增删改查
根据字符串进行简单的增删改查的方法
executeQuery(String sql) 用于向数据发送查询语句。
executeUpdate(String sql) 用于向数据库发送insert、update或delete语句
execute(String sql) 用于向数据库发送任意sql语句
addBatch(String sql) 把多条sql语句放到一个批处理中。
executeBatch() 向数据库发送一批sql语句执行。
传入String 直接调用就可以了
结果存放在ResultSet类里面,在数据元组里面进行滚动,得到指定行的数据
next():移动到下一行
Previous():移动到前一行
absolute(int row):移动到指定行
beforeFirst():移动resultSet的最前面。
afterLast() :移动到resultSet的最后面
滚动之后就可以调用方法查询当前行中的列数据
getString() getInt getDate() getTime()等,支持传入列序号以及列名两种方式
如
getString(1)//获取第一列数据
getString("name")//获取列名是name的数据
注:滚动是在表格的行之间滚动,get是在某行的列之间进行get