目录
前期准备:
1. 连接数据库
1.1 第一种
1.2 第二种
2. 增加
3. 修改
4. 删除
5. 查询
5.1 查询某个记录
5.2 查询单列数据
使用时,直接复制再修改一些数据即可;
声明:在对文件/变量命名时,没有做到见名知意,后续会对代码改进,实在抱歉(不会被打死吧!);
前期准备:
参考详细演示部分:CSDNhttps://mp.csdn.net/mp_blog/creation/editor/140002021
1. 连接数据库
1.1 第一种
import java.sql.*;
public class JdbcTest {//记得类名与文件名保持一致
//1.加载jdbc连接mysql的驱动
public final static String driver="com.mysql.cj.jdbc.Driver";
//2.连接MySQL数据库的地址
public final static String url="jdbc:mysql://localhost:3306/shangguigu";//shangguigu为数据库名称
//3.连接MySQL的用户名
public final static String user="root";
//4.连接MySQL的密码
public final static String pwd="xxxxx";//输入自己数据库的密码
//static 静态代码加载 jdbc 的驱动
static {
try{
Class.forName(driver);
} catch (ClassNotFoundException e) {
throw new RuntimeException(e);
}
}
//连接MySQL的连接对象
public static Connection getConn(){
try{
return DriverManager.getConnection(url,user,pwd);
} catch (SQLException e){
e.printStackTrace();
}
return null;
}
//关闭连接,保证MySQL资源的释放,能够充分利用资源
public static void close(ResultSet rs, PreparedStatement ps,Connection conn){
try{
if (rs != null){
rs.close();
}
if (ps != null){
ps.close();
}
if (conn != null){
conn.close();
}
} catch (SQLException e) {
throw new RuntimeException(e);
}
}
//验证
public static void main(String[] args) {
System.out.println(getConn());
}
}
结果为一个地址,则连接成功;
C:\Java\jdk-17.0.11\bin\java.exe "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA 2022.1.3\lib\idea_rt.jar=14436:C:\Program Files\JetBrains\IntelliJ IDEA 2022.1.3\bin" -Dfile.encoding=UTF-8 -classpath "C:\Test\java _test\jdbc_test0917\out\production\jdbc_test0917;C:\Test\java _test\jdbc_test0917\lib\mysql-connector-java-8.0.26.jar" JdbcTest
com.mysql.cj.jdbc.ConnectionImpl@3023df74
进程已结束,退出代码0
1.2 第二种
一般来说第一种较好;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class JavaCon {
public static void main(String[] args) throws Exception {
//注册驱动
Class.forName("com.mysql.cj.jdbc.Driver");
//获取连接对象
String url="jdbc:mysql://localhost:3306/shangguigu";//3306/ 后面是连接的数据库的名字
String username="root";
String password="xxxxxx";// 填入自己数据库的密码
Connection connection= DriverManager.getConnection(url,username,password);
//获取执行SQL语句的对象
Statement statement=connection.createStatement();
//编写Sql语句,执行并返回结果集
String sql=" select emp_id,emp_name,emp_salary,emp_age from t_emp";// 输入要查询的字段
ResultSet resultSet=statement.executeQuery(sql);
//处理结果,遍历 resultSet 结果集
while (resultSet.next()){ //根据字段的名字和数据类型进行修改
int id=resultSet.getInt("emp_id");
String na=resultSet.getString("emp_name");
String salary=resultSet.getString("emp_salary");
int age=resultSet.getInt("emp_age");
System.out.println(id+"\t"+na+"\t"+salary+"\t"+age);
}
//释放资源(先开后关)
resultSet.close();
statement.close();
connection.close();
}
}
结果为查询表格的内容,则连接成功:
C:\Java\jdk-17.0.11\bin\java.exe "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA 2022.1.3\lib\idea_rt.jar=3911:C:\Program Files\JetBrains\IntelliJ IDEA 2022.1.3\bin" -Dfile.encoding=UTF-8 -classpath "C:\Test\java _test\jdbc-test9\out\production\jdbc-test9;C:\Test\java _test\jdbc-test9\lib\mysql-connector-java-8.0.26.jar" JDBC.JavaCon
1 王 8.1 6
2 李 9.3 1
3 张 7.5 2
进程已结束,退出代码0
public class CRUD {//为方便接下来能够看懂,注意类名为 CRUD
//一表一类
private int emp_id;
private String emp_name;
private double emp_salary;
private String emp_age;
public int getEmp_id() {
return emp_id;
}
public void setEmp_id(int emp_id) {
this.emp_id = emp_id;
}
public String getEmp_name() {
return emp_name;
}
public void setEmp_name(String emp_name) {
this.emp_name = emp_name;
}
public double getEmp_salary() {
return emp_salary;
}
public void setEmp_salary(double emp_salary) {
this.emp_salary = emp_salary;
}
public String getEmp_age() {
return emp_age;
}
public void setEmp_age(String emp_age) {
this.emp_age = emp_age;
}
}
2. 增加
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
public class CrudOperation {//为方便接下来能够看懂,注意类名
//新增数据到数据库中,
public boolean add(CRUD crud){
//执行增删改查的SQL语句
//连接MySQL
Connection connection=JdbcTest.getConn();
//预编译SQl执行
String sql="insert into t_emp values (?,?,?,?)";//?相当于占位符,四个字段四个占位符
try {
PreparedStatement ps= connection.prepareStatement(sql);//根据要操作的表修改
ps.setInt(1,crud.getEmp_id());
ps.setString(2,crud.getEmp_name());
ps.setDouble(3,crud.getEmp_salary());
ps.setString(4,crud.getEmp_age());
//执行操作更改
boolean result=ps.executeUpdate()>0;
//关闭数据库
JdbcTest.close(null,ps,connection);
return result;
} catch (SQLException e) {
throw new RuntimeException(e);
}
// return false;
}
public static void main(String[] args) {
CRUD cr = new CRUD();
cr.setEmp_id(10);//根据要操作的表修改
cr.setEmp_name("熊大");
cr.setEmp_salary(70.8);
cr.setEmp_age("7");
CrudOperation cp = new CrudOperation();
if(cp.add(cr)){
System.out.println("保存学生成功");
}else {
System.out.println("保存学生失败");
}
}
}
C:\Java\jdk-17.0.11\bin\java.exe "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA 2022.1.3\lib\idea_rt.jar=4536:C:\Program Files\JetBrains\IntelliJ IDEA 2022.1.3\bin" -Dfile.encoding=UTF-8 -classpath "C:\Test\java _test\jdbc_test0917\out\production\jdbc_test0917;C:\Test\java _test\jdbc_test0917\lib\mysql-connector-java-8.0.26.jar" CrudOperation
保存学生成功
进程已结束,退出代码0
再检查一下:
3. 修改
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
public class Operation_Update {
public boolean update(CRUD crud) {
//执行增删改查的SQL语句
//连接MySQL
Connection connection = JdbcTest.getConn();
//预编译SQl执行
String sql = "update t_emp set emp_name=?,emp_salary=?,emp_age=? where emp_id=?";//?相当于占位符,四个字段四个占位符
try {
PreparedStatement ps = connection.prepareStatement(sql);//根据要操作的表修改
//ps.setInt(1, crud.getEmp_id());
ps.setString(1, crud.getEmp_name());
ps.setDouble(2, crud.getEmp_salary());
ps.setString(3, crud.getEmp_age());
//多加一个修改的emp_id
ps.setInt(4, crud.getEmp_id());
//执行操作更改
boolean result = ps.executeUpdate() > 0;
JdbcTest.close(null, ps, connection);
return result;
} catch (SQLException e) {
throw new RuntimeException(e);
}
}
public static void main(String[] args) {
//修改学生信息
CRUD cr1 = new CRUD();
cr1.setEmp_id(10);//根据要操作的表修改
cr1.setEmp_name("熊二");
cr1.setEmp_salary(90.8);
cr1.setEmp_age("9");
Operation_add cp1 = new Operation_add();
if(cp1.update(cr1))
{
System.out.println("修改学生成功");
}else
{
System.out.println("修改学生失败");
}
}
}
C:\Java\jdk-17.0.11\bin\java.exe "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA 2022.1.3\lib\idea_rt.jar=7593:C:\Program Files\JetBrains\IntelliJ IDEA 2022.1.3\bin" -Dfile.encoding=UTF-8 -classpath "C:\Test\java _test\jdbc_test0917\out\production\jdbc_test0917;C:\Test\java _test\jdbc_test0917\lib\mysql-connector-java-8.0.26.jar" Operation_Update
修改学生成功
进程已结束,退出代码0
4. 删除
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
public class Operation_Delete {
public boolean delete(int emp_id) {
//执行增删改查的SQL语句
//连接MySQL
Connection connection = JdbcTest.getConn();
//预编译SQl执行
String sql = "delete from t_emp where emp_id=?";//?相当于占位符
try {
PreparedStatement ps = connection.prepareStatement(sql);
ps.setInt(1,emp_id);//根据要操作的表修改
//执行操作更改
boolean result = ps.executeUpdate() > 0;
//关闭数据库
JdbcTest.close(null, ps, connection);
return result;
} catch (SQLException e) {
throw new RuntimeException(e);
}
}
//修改学生信息
public static void main(String[] args) {
Operation_Delete de=new Operation_Delete();
if(de.delete(10)){
System.out.println("删除学生成功");
}else {
System.out.println("删除学生失败");
}
}
}
C:\Java\jdk-17.0.11\bin\java.exe "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA 2022.1.3\lib\idea_rt.jar=10541:C:\Program Files\JetBrains\IntelliJ IDEA 2022.1.3\bin" -Dfile.encoding=UTF-8 -classpath "C:\Test\java _test\jdbc_test0917\out\production\jdbc_test0917;C:\Test\java _test\jdbc_test0917\lib\mysql-connector-java-8.0.26.jar" Operation_Delete
删除学生成功
进程已结束,退出代码0
5. 查询
5.1 查询某个记录
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class Operation_Query {
public CRUD query(int emp_id) {//主键或其他字段
//执行增删改查的SQL语句
//连接MySQL
Connection connection = JdbcTest.getConn();
//预编译SQl执行
String sql = "select * from t_emp where emp_id=?";//?相当于占位符
try {
PreparedStatement ps = connection.prepareStatement(sql);
ps.setInt(1, emp_id);//根据要操作的表修改
//执行操作更改
ResultSet rs = ps.executeQuery();
//创建对象,返回
CRUD cr = new CRUD();
while (rs.next()) {
cr.setEmp_id(rs.getInt(1));
cr.setEmp_name(rs.getString(2));
cr.setEmp_salary(rs.getDouble(3));
cr.setEmp_age(rs.getString(4));
}
//关闭数据库
JdbcTest.close(rs, ps, connection);
return cr;
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
public static void main(String[] args) {
Operation_Query oq=new Operation_Query();
CRUD cr2=oq.query(1);
System.out.println(cr2.getEmp_id()+"\t"+cr2.getEmp_salary()+"\t"+cr2.getEmp_name()+"\t"+cr2.getEmp_age());
}
}
C:\Java\jdk-17.0.11\bin\java.exe "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA 2022.1.3\lib\idea_rt.jar=1330:C:\Program Files\JetBrains\IntelliJ IDEA 2022.1.3\bin" -Dfile.encoding=UTF-8 -classpath "C:\Test\java _test\jdbc_test0917\out\production\jdbc_test0917;C:\Test\java _test\jdbc_test0917\lib\mysql-connector-java-8.0.26.jar" Operation_Query
1 8.1 王 6
进程已结束,退出代码0
5.2 查询单列数据
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.*;
public class Operation_Query_List {
public List<CRUD> ger_all() {//主键或其他字段
//执行增删改查的SQL语句
//连接MySQL
Connection connection = JdbcTest.getConn();
//预编译SQl执行
String sql = "select * from t_emp ";//?相当于占位符
try {
PreparedStatement ps = connection.prepareStatement(sql);
//执行操作更改
ResultSet rs = ps.executeQuery();
//创建对象,返回
List<CRUD> list = new ArrayList<CRUD>();
while (rs.next()) {
CRUD cr = new CRUD();
cr.setEmp_id(rs.getInt(1));
cr.setEmp_name(rs.getString(2));
cr.setEmp_salary(rs.getDouble(3));
cr.setEmp_age(rs.getString(4));
// 当前对象存储到 list 集合中
list.add(cr);
}
//关闭数据库
JdbcTest.close(rs, ps, connection);
return list;
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
public static void main(String[] args) {
Operation_Query_List ql=new Operation_Query_List();
List<CRUD> list = ql.ger_all();
for (CRUD cr : list){
System.out.println(cr.getEmp_id()+"=》"+ cr.getEmp_name());
}
}
}
C:\Java\jdk-17.0.11\bin\java.exe "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA 2022.1.3\lib\idea_rt.jar=5193:C:\Program Files\JetBrains\IntelliJ IDEA 2022.1.3\bin" -Dfile.encoding=UTF-8 -classpath "C:\Test\java _test\jdbc_test0917\out\production\jdbc_test0917;C:\Test\java _test\jdbc_test0917\lib\mysql-connector-java-8.0.26.jar" Operation_Query_List
1=》王
2=》李
3=》张
进程已结束,退出代码0