jdbc中对数据库中对数据的CURD操作
1、导入驱动jar包
- 1.复制mysql-connector-java-5.1.37-bin到项目的libs目录下
- 2.右键—>Add as Library
2、注册驱动
3、获取数据库链接对象Connection
4、定义sql
5、获取执行sql语句的对象 Statement
6、处理结果
7、释放资源
jdbc中的对象:
1. DriverManager 驱动管理对象
功能:
1.注册驱动:告诉程序该使用哪一个数据库驱动jar
- static void registerDriver(Driver driver) :注册与给定的驱动程序 DriverManager。
- 写代码使用:Class.forName(“com.mysql.jdbc.Driver”);
-通过查看源码发现:在com.mysql.jdbc.Driver类中存在静态代码块
static {
try {
java.sql.DriverManager.registerDriver(new Driver());
} catch (SQLException E) {
throw new RuntimeException("Can't register driver!");
}
}
注意:mysql5之后的驱动jar包可以省略注册驱动的步骤
2.获取数据库连接
方法:static Connection getConnection(String url,String user,String password)
参数
url:指定连接的路径
语法:jdbc:mysql://ip地址(域名):端口号/数据库名称
jdbc:mysql://localhost:3306/db1
细节:如果连接的是本机的mysql服务器,并且mysql服务默认端口是3306,则url可以简写为:jdbc:mysql:///数据库名称
user:用户名
password:密码
Connection 数据库连接对象
1、功能
1.获取sql的对象
atement createStatement()
PreparedStatement preparedStatement(String sql)
2.管理事务:
开启事务:setAutoCommit(boolean autoCommit):调用该方法设置参数为false,即开启事务
提交事务:commit()
回滚事务: rollback()
Statement 执行数据库对象
1、执行sql:
1.boolean execute(String sql):可以执行任意的sql(了解即可)
2.int executeUpdate(String sql):执行DML(insert、update、delete)语句、DDL(create、alter、drop)语句
返回值:影响的行数,可以通过影响的行数来判断DML语句是否执行成功,返回值>0则返回成功,反之,则失败。
3.Result executeQuery(String sql):执行DQL(select)语句
ResultSet 结果集对象
PreparedStatement 执行sql的对象,是Statement的子类
## jdbc的添加数据
> account表 添加一条记录,insert语句
```java
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
public class curdTest {
public static void main(String[] args){
// 设置全局变量是为了让finally能够进行释放资源,否则作为局部变量,finally则无法进行释放
Statement stmt = null;
Connection conn = null;
try {
// 1.注册驱动
Class.forName("com.mysql.jdbc.Driver");
// 2.获取数据库连接对象
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/db1","root","root");
// 3.定义sql语句
String sql ="insert into account (id,name,balance) values(null,'wangwu',3000)";
// 4.获取执行sql的对象,statement
stmt = conn.createStatement();
// 5.执行sql语句
int count = stmt.executeUpdate(sql); //count为影响的行数
System.out.println(count);
// 6.处理的结果
if(count>0){
System.out.println("打印成功");
}else{
System.out.println("打印失败");
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}finally {
// 为了避免空指针异常
if(stmt!=null){
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(conn!=null){
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
}
执行结果:
进入sql yog中进行检查:
jdbc修改数据
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
public class UpdateTest {
public static void main(String[] args) {
Statement stmt = null;
Connection conn = null;
try {
// 注册驱动
Class.forName("com.mysql.jdbc.Driver");
// 获取连接对象
conn = DriverManager.getConnection("jdbc:mysql:///db1","root","root");
// 获取执行sql对象
stmt= conn.createStatement();
// 定义sql语句
String sql ="UPDATE ACCOUNT SET BALANCE = 200 WHERE ID =3 ";
// 执行sql语句
int count = stmt.executeUpdate(sql);
// 处理结果
System.out.println(count);
if(count >0){
System.out.println("修改成功");
}else{
System.out.println("修改失败");
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}finally {
// 释放资源
if (stmt!=null){
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (conn!=null){
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
}
执行结果如下:
数据库查询检查
jdbc删除数据
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
public class DeleteTest {
public static void main(String[] args) {
Statement stmt = null;
Connection conn = null;
try {
// 注册驱动
Class.forName("com.mysql.jdbc.Driver");
// 获取连接对象
conn = DriverManager.getConnection("jdbc:mysql:///db1","root","root");
// 获取执行sql对象
stmt= conn.createStatement();
// 定义sql语句
String sql ="DELETE FROM ACCOUNT WHERE ID = 3";
// 执行sql语句
int count = stmt.executeUpdate(sql);
// 处理结果
System.out.println(count);
if(count >0){
System.out.println("删除成功");
}else{
System.out.println("删除失败");
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}finally {
// 释放资源
if (stmt!=null){
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (conn!=null){
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
}
执行结果如下:
sql查询验证:
执行删除前:
执行删除后:
jdbc 创建数据库操作
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
public class CreateTest {
public static void main(String[] args) {
Statement stmt = null;
Connection conn = null;
try {
// 注册驱动
Class.forName("com.mysql.jdbc.Driver");
// 获取连接对象
conn = DriverManager.getConnection("jdbc:mysql:///db1","root","root");
// 获取执行sql对象
stmt= conn.createStatement();
// 定义sql语句
String sql ="create table student(id int,name varchar(20))";
// 执行sql语句
int count = stmt.executeUpdate(sql);
// 处理结果
System.out.println(count);
if(count >0){
System.out.println("删除成功");
}else{
System.out.println("删除失败");
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}finally {
// 释放资源
if (stmt!=null){
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (conn!=null){
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
}