所有的java操作关系数据库,无论是那种数据库套路都是一样的,JPA、MyBatis都是JDBC的封装。
JDBC的套路代码:
1.修改:executeUpdate();
2.查修:executeQuery();
java.sql下的接口步骤:
1.获取数据源DataSource,配置连接地址URL、用户名、密码等。
2.获取连接对象,就是发送网络请求,建立和数据库的连接Connection。
3.获取执行SQL语句的对象PreparedStatement对象,封装的SQL语句。
4.执行更新操作executeUpdate() =》int本次更新受影响的行数。
执行查询 executeQuery() =》Result 结果集。
5.遍历结果集ResultSet对象,每当调用一次next方法就从结果集中取出一行数据 result.getXXX("列名") =》获取本行数据的具体属性值。
6.操作之后一定要关闭资源:resultSet、Connection对象。
PreparedStatement: 预 编 译 的 Statement 对象。 PreparedStatement 是 Statement 的子接 口, 它允许数据库预编译 SQL 语句( 这些 SQL 语句通常带有参数), 以后每次只改变 SQL 命令的参数,避免数据库每次都需要编译 SQL 语句, 因此性能更好。 相对于Statement 而言 , 使用PreparedStatement 执行 SQL 语句时, 无须再传入 SQL 语句, 只要为预编译的 SQL 语句传入参数值即可。
ResultSet: 结果集对象。 该对象包含访问查询结果的方法, ResultSet 可以通过列索引或列名获得列数据。
具体代码如下:
public class JDBCReview {
public static void main(String[] args) throws SQLException {
//获取数据源 - 数据具体从哪里来的
//DataSource这个接口无论那种具体的数据库驱动都要实现此接口,具体是什么数据库,数据库名称+DataSource
//MySQLDataSource
//SQLiteDataSource
MysqlDataSource dataSource =new MysqlDataSource();
//1.1 设置数据源的连接地址,用户名,密码等属性
//发起TCP请求.按照指定的协议(jdbc协议)连接到数据库的服务器
//大家根据自己的mysql数据库,数据库名称,用户名,密码等来填写
dataSource.setURL("jdbc:mysql://12.0.0.1:3306/book_shop?characterEncoding=UTF-8&useSSL=false");
dataSource.setUser("root");
dataSource.setPassword("111111");
//2.获取数据库连接 -connection接口的对象
Connection connection =dataSource.getConnection();//这一步才会向数据库服务器发起请求
//3.执行SQL具体的语句,每个SQL语句对应一个PreparedStatement对象
String sql ="select pass from admins where nick_name = ?";
PreparedStatement statement = connection.prepareStatement(sql);
statement.setString(1,"小狐狸");
//4.具体执行操作,增删改executeUpdate()=>int本次修改操作受影响的行数
//查询操作 select=》executeQuery()=>ResultSet=>查询结果集
ResultSet resultSet= statement.executeQuery();
//遍历结果集
while (resultSet.next()){
String password= resultSet.getString("pass");
System.out.println(password);
}
//5.数据库属于资源操作,一定要记得关闭资源,结果集对象,连接对象
resultSet.close();
connection.close();
}
}