在需要测试的方法上添加@Test注解,然后找到run该方法,点击可直接运行,测试该方法有无bug。
目录
## 1.JDBC快速入门
1.首先,创建一个空项目。然后导入驱动jar包
2.在该项目下创建一个模块,设置模块环境,JDK是8版本,该模块下的编译环境也应该是8版本
3.在该项目的src目录下创建一个类,代码如下:
4.在MySQL5.0 之后第一步注册驱动可以不写,因为之后的驱动
jar包中有对应的驱动名称
总结:通过这些代码,可以做到JDBC的快速入门。对数据库中的数据进行简单的操作。
package chapter1;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
public class JdbcDemo {
public static void main(String[] args) throws ClassNotFoundException, SQLException {
//1.注册驱动
Class.forName("com.mysql.jdbc.Driver");
//2.获取连接
String url="jdbc:mysql://localhost:3306/crashcourse";
String username="root";
String password="hongbin1123";
Connection connection = DriverManager.getConnection(url, username, password);
//3.定义sql
String sql="update orders set cust_id=10005 where order_num=20005";
//4.获取执行sql的对象 Statement
Statement stmt=connection.createStatement();
//5.执行sql,受影响的行数
int count = stmt.executeUpdate(sql);
//处理结果
System.out.println(count);
//7.释放资源
stmt.close();
connection.close();
}
}
## 2.JDBC-API详解
package chapter1;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
public class JdbcDemo {
public static void main(String[] args) throws ClassNotFoundException, SQLException {
//1.注册驱动
Class.forName("com.mysql.jdbc.Driver");
//2.获取连接
String url="jdbc:mysql://localhost:3306/crashcourse?useSSL=false";
//useSSl=false可以让编译器没有安全提示
String username="root";
String password="hongbin1123";
Connection connection = DriverManager.getConnection(url, username, password);
//3.定义sql
String sql1="update orders set cust_id=10004 where order_num=20005";
String sql2="update orders set cust_id=10003 where order_num=20009";
//4.获取执行sql的对象 Statement
Statement stmt=connection.createStatement();
try {
//开启事务
connection.setAutoCommit(false);
//5.执行sql,受影响的行数
int count1 = stmt.executeUpdate(sql1);
//6.处理结果
System.out.println(count1);
//5.执行sql,受影响的行数
int count2 = stmt.executeUpdate(sql2);
//6.处理结果
System.out.println(count2);
//提交事务
connection.commit();
} catch (Exception e) {
//回滚事物
connection.rollback();
throw new RuntimeException(e);
//如果执行出错会进行事物回滚,保证数据的正确性
}
//7.释放资源
stmt.close();
connection.close();
}
}
package chapter1;
import org.junit.jupiter.api.Test;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class JDBCDemo_ResultSet {
@Test
public void testResultSet() throws Exception{
String url="jdbc:mysql://localhost:3306/crashcourse";
String username="root";
String password="hongbin1123";
Connection conn= DriverManager.getConnection(url,username,password);
//3.定义sql
String sql="select * from emp";
//4.获取statement对象
Statement stmt=conn.createStatement();
//5.执行sql
ResultSet rs=stmt.executeQuery(sql);
//处理结果,遍历rs中的所有数据
//光标向下移动一行,并且判断当前行是否有数据
while (rs.next()){
//获取数据 ,getXxx()
int id=rs.getInt(1);
String name= rs.getString(2);
double money=rs.getDouble(3);
//方法存在重载上述三行代码可以写对应的编号,也可以写对应的列名
System.out.println(id);
System.out.println(name);
System.out.println(money);
System.out.println("-----------");
}
//释放资源
rs.close();
stmt.close();
conn.close();
}
}
package chapter1;
import chapter2.Account;
import org.junit.jupiter.api.Test;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
public class JDBCDemo_ResultSet {
/*
需求:查询account账户表数据,封装为Account对象中,并且存储到ArrayList()集合中
1.定义实体类Account
2.查询数据,封装到Account对象中
3.将Account对象存入ArrayList集合中
*/
@Test
public void testResultSet() throws Exception{
String url="jdbc:mysql://localhost:3306/crashcourse";
String username="root";
String password="hongbin1123";
Connection conn= DriverManager.getConnection(url,username,password);
//3.定义sql
String sql="select * from emp";
//4.获取statement对象
Statement stmt=conn.createStatement();
//5.执行sql
ResultSet rs=stmt.executeQuery(sql);
//创建集合
List<Account> list=new ArrayList<>();
//处理结果,遍历rs中的所有数据
//光标向下移动一行,并且判断当前行是否有数据
while (rs.next()){
Account account=new Account();
//获取数据 ,getXxx()
int id=rs.getInt("id");
String name= rs.getString("name");
double money=rs.getDouble("money");
//赋值
account.setId(id);
account.setName(name);
account.setMoney(money);
//存入集合
list.add(account);
}
System.out.println(list);
//释放资源
rs.close();
stmt.close();
conn.close();
}
}
运行结果:
## PreparedStatement