第一步导图jar包 我们下载一个jar 按照我的习惯是把这个jar包放在桌面上 方便后续操作
然后对这个jar包ctrl + c复制
接着我们在idea里面创建一个目录
我们命名为lib 然后在这个lib安ctrl + V进行粘贴 然后右键这个lib 找到添加为库
我的idea好像没有选择 只有添加为模块
点击确定我们的jar包就算导入好了
接下来我们就在src创建一个类就好了 我们可以直接把包名和类名都创建一下 com.guansuian.JDBCDemo 注意包名只有小写字母 然后这个类名的第一个首字母需要大写
我们使用刚刚我写在这里的英文就可以将类和包都创建好了
第一步注册包:
先创建一个主函数然后Class. forname(" ");
注意我们需要抛出一下异常
throws Exception
package com.guansuian;
public class JDBCDemo {
public static void main(String[] args) throws Exception {
//1.注册驱动(这个其实在我看来就是报的意思)
Class.forName("com.mysql.jdbc.Driver");
}
}
然后我们需要登录,登录需要一个地址 如果我们登录的是系统第一个为我们创建的链接我们就不需要写链接的名字
在这里面有几个类
第一个
DriverManager是一个类(驱动管理类)
它可以实现
Connection类
- 获取执行SQL的对象
Connection conn = DriverManager.getConnection();
- 管理事物 常常和java里面的try catch搭配使用
小技巧:ctrl + alt + t这个是将某一段代码包裹起来的一句话 然后选择你想要选择的语句
Statement
DDL:对标和库的增删改查操作
DML:对数据增删改操作
DQL:对数据的查询操作
package com.guansuian;
import org.junit.Test;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
//statement类的操作
public class test1 {
@Test
public void testDML() throws Exception {
//注册服务器
// Class.forName("com.mysql.cj.jdbc.Driver");
String url = "jdbc:mysql:///class?useSSL=false";//这个3306/后面就是创建数据库的名字,不是表的名字 这个可以直接不用写端口(前提是我们使用本机的端口)
//注意我们使用这个为了不看键那行烦的注册 我们可以在class后面写上useSSL=false这个语句
String user = "root";
String password = "123456";
Connection conn= DriverManager.getConnection(url,user,password);
Statement stmt = conn.createStatement();
String sql1 = "update user set name='hahaha' where id=1 "; //这个就是进行修改的操作 简单翻译一下就是 更新用户 设置名字为'?' 在哪里进行设置
String sql2 = "update user set name='吴翔' where id = 5";
try {
//1.开启事物
conn.setAutoCommit(false);
int count1 = stmt.executeUpdate(sql1);
int count2 = stmt.executeUpdate(sql2);
//2.提交事物
conn.commit();
} catch (Exception e) {
conn.rollback();
throw new RuntimeException(e);
}
stmt.close();
conn.close();
}
@Test
public void testDDL() throws Exception {
//注册服务器
// Class.forName("com.mysql.cj.jdbc.Driver");
String url = "jdbc:mysql:///class?useSSL=false";//这个3306/后面就是创建数据库的名字,不是表的名字 这个可以直接不用写端口(前提是我们使用本机的端口)
//注意我们使用这个为了不看键那行烦的注册 我们可以在class后面写上useSSL=false这个语句
String user = "root";
String password = "123456";
Connection conn= DriverManager.getConnection(url,user,password);
Statement stmt = conn.createStatement();
String sql1 = "update user set name='hahaha' where id=1 "; //这个就是进行修改的操作 简单翻译一下就是 更新用户 设置名字为'?' 在哪里进行设置
String sql2 = "update user set name='吴翔' where id = 5";
//下面这个语句是执行增加的语句
String sql3 = "insert into user (id,name,password) values (6,'AA',123456)";
String sql4 = "delete from user where id=1";
try {
//1.开启事物
conn.setAutoCommit(false);
int count1 = stmt.executeUpdate(sql1);
int count2 = stmt.executeUpdate(sql2);
//stmt.executeUpdate(sql3);
stmt.executeUpdate(sql4);
//2.提交事物
conn.commit();
} catch (Exception e) {
conn.rollback();
throw new RuntimeException(e);
}
stmt.close();
conn.close();
}
}
这个只是实现了增删改的操作
如果要实现查的还需要学习到一个类
这个ResulitSet就是进行一个查询结果的返回值
小技巧:
我们要打印每一个变量的时候我们可以使用变量名.sout这样就可以直接将我们需要的东西直接进行打印
在后续的编程中我们常用到一种分层的思想进行编程:
常常有这么几层:
1.pojo层(存放对象的包)
2.dao层(数据持久层:操作数据库)
3.service层(业务层:处理业务逻辑,调用dao层)
4.controller层(控制层,调用业务方法,将数据返回给前端界面)
第一对于业务层:
这个就和之前我些项目的时候进行的文件操作一样,首先需要进行文件资料的导入
并将这个资料导入到一个集合中(输入数据)
小技巧:ctrl + w就是将整个句子进行扩张
完整的增删改查的操作:
package com.guansuian;
import org.junit.Test;
import java.sql.*;
import java.util.Scanner;
//statement类的操作
public class test1 {
//这个方法是修改方法
@Test
public void fix() throws Exception {
String url = "jdbc:mysql:///class?useSSL=false";
String user = "root";
String password = "123456";
Connection conn= DriverManager.getConnection(url,user,password);
Statement stmt = conn.createStatement();
String sql1 = "update user set name='hahaha' where id=1 ";
String sql2 = "update user set name='吴翔' where id = 2";
try {
//1.开启事物
conn.setAutoCommit(false);
int count1 = stmt.executeUpdate(sql1);
int count2 = stmt.executeUpdate(sql2);
if(count1>0 && count2 > 0){
System.out.println("修改成功");
}else{
System.out.println("修改失败");
}
//2.提交事物
conn.commit();
} catch (Exception e) {
conn.rollback();
throw new RuntimeException(e);
}
stmt.close();
conn.close();
}
//增加操作
@Test
public void add() throws Exception {
//注册服务器
// Class.forName("com.mysql.cj.jdbc.Driver");
String url = "jdbc:mysql:///class?useSSL=false";//这个3306/后面就是创建数据库的名字,不是表的名字 这个可以直接不用写端口(前提是我们使用本机的端口)
//注意我们使用这个为了不看键那行烦的注册 我们可以在class后面写上useSSL=false这个语句
String user = "root";
String password = "123456";
Connection conn= DriverManager.getConnection(url,user,password);
Statement stmt = conn.createStatement();
//下面这个语句是执行增加的语句
String sql1 = "insert into user (id,name,password) values (1,'关岁安',123456)";
String sql2= "insert into user (id,name,password) values (2,'郑美玲',123456)";
String sql3= "insert into user (id,name,password) values (3,'刘欣',123456)";
String sql4= "insert into user (id,name,password) values (4,'邓凯',123456)";
String sql5= "insert into user (id,name,password) values (5,'邓志豪',123456)";
String sql6= "insert into user (id,name,password) values (6,'陈归鸿',123456)";
try {
//1.开启事物
conn.setAutoCommit(false);
stmt.executeUpdate(sql1);
stmt.executeUpdate(sql2);
stmt.executeUpdate(sql3);
stmt.executeUpdate(sql4);
stmt.executeUpdate(sql5);
stmt.executeUpdate(sql6);
//2.提交事物
conn.commit();
} catch (Exception e) {
conn.rollback();
throw new RuntimeException(e);
}
stmt.close();
conn.close();
}
//删除操作
@Test
public void detele() throws Exception {
//注册服务器
// Class.forName("com.mysql.cj.jdbc.Driver");
String url = "jdbc:mysql:///class?useSSL=false";//这个3306/后面就是创建数据库的名字,不是表的名字 这个可以直接不用写端口(前提是我们使用本机的端口)
//注意我们使用这个为了不看键那行烦的注册 我们可以在class后面写上useSSL=false这个语句
String user = "root";
String password = "123456";
Connection conn= DriverManager.getConnection(url,user,password);
Statement stmt = conn.createStatement();
//下面这个语句是执行增加的语句
String sql1 = "delete from user where id=6";
try {
//1.开启事物
conn.setAutoCommit(false);
stmt.executeUpdate(sql1);
//2.提交事物
conn.commit();
} catch (Exception e) {
conn.rollback();
throw new RuntimeException(e);
}
stmt.close();
conn.close();
}
//查询操作
@Test
public void equry() throws Exception {
String url = "jdbc:mysql:///class?useSSL=false";
String user = "root";
String password = "123456";
Connection conn= DriverManager.getConnection(url,user,password);
Statement stmt = conn.createStatement();
String sql1 = "SELECT *FROM `user`";
ResultSet res = stmt.executeQuery(sql1);
try {
//1.开启事物
conn.setAutoCommit(false);
while(res.next()){
int id = res.getInt(1);
String name = res.getString(2);
String password1 = res.getString(3);
System.out.print("id: " + id +" ");
System.out.print("name: " +name+" ");
System.out.println("password1: " + password1);
}
//2.提交事物
conn.commit();
} catch (Exception e) {
conn.rollback();
throw new RuntimeException(e);
}
stmt.close();
conn.close();
res.close();
}
}