JDBC入门
什么是JDBC
JDBC(Java DataBase Connectivity)就是Java数据库连接,说白了就是用Java语言来操作数据库。原来我们操作数据库是在控制台使用SQL语句来操作数据库,JDBC是用Java语言向数据库发送SQL语句。
使用JDBC
使用JDBC会用到它的核心类:DriverManager、Connection、Statement,和ResultSet。步骤为:
1.导入驱动
2.加载驱动类
3.得到Connent连接对象
4.编写sql
5.创建Statement对象
6.通知数据库执行sql
7.如果为查询会得到ResultSet结果集,解析数据
8.关闭资源
首先要导入jdbc的jar包:
然后加载驱动类:
//加载驱动类 Class.forName("com.mysql.jdbc.Driver");
直接在包下复制Driver的引用地址。
接下来就是得到Connection的连接对象:
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/esa?useSSL=false", "root", "123456");
getConnection方法里面的参数为数据库地址,用户名,密码。
然后编写sql语句,这里以插入为例子:
String sql = "insert into demo values('赵六','语文','88')";
创建Statement对象
Statement statement = conn.createStatement();
通知数据库执行sql
boolean a = statement.execute(sql);
完整代码:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
public class Main {public static void main(String[] args) {try {Class.forName("com.mysql.jdbc.Driver");Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/esa?useSSL=false", "root", "123456");System.out.println("数据库连接成功");String sql = "insert into demo values('赵六','语文','88')";Statement statement = conn.createStatement();boolean a = statement.execute(sql);if (statement != null){statement.close();}if (conn != null){conn.close();}} catch (ClassNotFoundException e) {throw new RuntimeException(e);} catch (SQLException e) {throw new RuntimeException(e);}}
}
这是执行之前的表
执行后
Statement最为重要的方法是:
int executeUpdate(String sql):执行更新操作,即执行insert、update、delete语句,其实这个方法也可以执行create table、alter table,以及drop table等语句,但我们很少会使用JDBC来执行这些语句;
ResultSet executeQuery(String sql):执行查询select操作,执行查询操作会返回ResultSet,即结果集。
boolean execute() 了解!可以执行executeUpdate()和executeQuery()两个方法能执行的sql语句,这个方法可以用来执行增、删、改、查所有SQL语句。该方法返回的是boolean类型,表示SQL语句是否有结果集!。如果使用execute()方法执行的是更新语句,那么还要调用int getUpdateCount()来获取insert、update、delete语句所影响的行数。如果使用execute()方法执行的是查询语句,那么还要调用ResultSet getResultSet()来获取select语句的查询结果。
上面用的是execute(),返回一个false表示这个语句没有结果集。对于增删改的语句,推荐用executeUpdate(),返回影响的行数。查询语句推荐用executeQuery(),返回一个ResultSet结果集。
如果是查询,对于返回的结果集,需要使用循环赖获取里面的值:
String sql = "select * from demo1 where name = '"+name+"' ";statement = conn.createStatement();resultSet = statement.executeQuery(sql);while (resultSet.next()){String name1 = resultSet.getString("name");String course = resultSet.getString("course");String score = resultSet.getString("score");System.out.println(name1+" "+course+" "+score);}