DriverManager
方法都是静态的
注册驱动
在Mysql5之后我们就不用注册驱动了
在jar包里已经写好了
读取文件
第二个方法
如果连接的是主机mysql并且端口是默认的3306
则可以简化书写
代码书写
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
public class Main {
//JDBC的快速入门
public static void main(String[] args) throws Exception {
//注册驱动
// Class.forName("com.mysql.cj.jdbc.Driver");
//获取连接
String url = "jdbc:mysql:///mybatis?serverTimezone=UTC&useSSL=false";
String username = "root";
String password = "123456";
Connection conn = DriverManager.getConnection(url, username, password);
//定义SQL语句
String sql = "update tbl_user set age = 21 where id=1";
//获取执行SQL的对象
Statement stmt = conn.createStatement();
//执行SQL
int count1 = stmt.executeUpdate(sql);
//处理结果
System.out.println(count1);
//释放资源
stmt.close();
conn.close();
}
}
Connection
数据库连接对象
非常重要的功能
事物管理
sql语句设置被事物管理
要不同时成功 要不同时失败
这样用异常包围
在加上修饰的代码
try {
//开启事物
conn.setAutoCommit(false);
//执行SQL
int count1 = stmt.executeUpdate(sql1);
int count2 = stmt.executeUpdate(sql2);
//处理结果
System.out.println(count1);
System.out.println(count2);
//提交事务
conn.commit();
} catch (Exception e) {
//回滚事务
conn.rollback();
e.printStackTrace();
}
整体代码
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
public class Main {
//JDBC的快速入门
public static void main(String[] args) throws Exception {
//注册驱动
// Class.forName("com.mysql.cj.jdbc.Driver");
//获取连接
String url = "jdbc:mysql:///mybatis?serverTimezone=UTC&useSSL=false";
String username = "root";
String password = "123456";
Connection conn = DriverManager.getConnection(url, username, password);
//定义SQL语句
String sql1 = "update tbl_user set age = 21 where id=1";
String sql2 = "update tbl_user set age = 21 where id=2";
//获取执行SQL的对象
Statement stmt = conn.createStatement();
try {
//开启事物
conn.setAutoCommit(false);
//执行SQL
int count1 = stmt.executeUpdate(sql1);
int count2 = stmt.executeUpdate(sql2);
//处理结果
System.out.println(count1);
System.out.println(count2);
//提交事务
conn.commit();
} catch (Exception e) {
//回滚事务
conn.rollback();
e.printStackTrace();
}
//释放资源
stmt.close();
conn.close();
}
}
Statement
执行SQL语句
处理结果
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
public class Main {
//JDBC的快速入门
public static void main(String[] args) throws Exception {
//注册驱动
Class.forName("com.mysql.cj.jdbc.Driver");
//获取连接
String url = "jdbc:mysql:///mybatis?serverTimezone=UTC&useSSL=false";
String username = "root";
String password = "123456";
Connection conn = DriverManager.getConnection(url, username, password);
//定义SQL语句
String sql = "update tbl_user set age = 21 where id=1";
//获取执行SQL的对象
Statement stmt = conn.createStatement();
//执行SQL
int count = stmt.executeUpdate(sql);//执行完DML语句 受影响的行数
//处理结果
System.out.println(count>0?"修改成功":"修改失败");
//释放资源
stmt.close();
conn.close();
}
}
创建新的数据库
删除数据库
ResultSet
查询相关的API
将来我们的查询代码使用频率最高
查询相关的API
将来我们的查询代码使用频率最高
书写代码
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class Main {
//JDBC的快速入门
public static void main(String[] args) throws Exception {
//注册驱动
Class.forName("com.mysql.cj.jdbc.Driver");
//获取连接
String url = "jdbc:mysql:///mybatis?serverTimezone=UTC&useSSL=false";
String username = "root";
String password = "123456";
Connection conn = DriverManager.getConnection(url, username, password);
//定义SQL语句
String sql = "select * from tbl_user";
//获取statement对象
Statement stmt=conn.createStatement();
//执行SQL
ResultSet rs=stmt.executeQuery(sql);
//遍历集合
while(rs.next()){
//获取数据
int id=rs.getInt(1);
String name=rs.getString(2);
String age=rs.getString(3);
String gender=rs.getString(4);
System.out.println(id+" "+name+" "+age+" "+gender);
}
//释放资源
rs.close();
conn.close();
}
}
方法重载
参数改为列的名称也行
案例
数据对象是用java对象封装的
创建实体类
成员属性和数据库里面的字段名一一对应
封装数据到实体类里面去
然后放入集合容器