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对象封装的
创建实体类
成员属性和数据库里面的字段名一一对应
封装数据到实体类里面去
然后放入集合容器