statement对象:
jdbc中statement对象用于向数据库发送sql语句,像完成对数据库的增删改查,只需要通过这个对象向数据库发送增删改查语句即可。
编写 增、删、改 :st.executeUpdate(sql); // 执行sql语句,返回结果是受影响的行数
编写 查:st.executeQuery(sql); // 执行sql语句,返回结果是一个结果集
模板:
1step:
创建一个properties文件,保存数据库登录的基本信息
2step:
读取jdbc配置文件(properties文件):这个工具类包含了获取数据库链接,和释放资源的方法,以及读取配置文件中的信息---(因为这些都是jdbc操作数据库必须包含的流程,所以写在一个类中,简化操作)
package com.kuang.lseeon02.utils; import java.io.IOException; import java.io.InputStream; import java.sql.*; import java.util.Properties; public class JdbcUtils { private static String driver = null; private static String url = null; private static String username = null; private static String password = null; static{ try{ InputStream in = JdbcUtils.class.getClassLoader().getResourceAsStream("db.properties"); Properties properties = new Properties(); properties.load(in); driver = properties.getProperty("driver"); url = properties.getProperty("url"); username = properties.getProperty("username"); password = properties.getProperty("password"); //1. 驱动只要加载一次 Class.forName(driver); } catch (Exception e) { throw new RuntimeException(e); } } //获取链接 public static Connection getConnection() throws SQLException { return DriverManager.getConnection(url, username, password); } //释放资源 public static void release(Connection conn, Statement st, ResultSet rs) { if (rs!=null){ try { rs.close(); } catch (SQLException e) { throw new RuntimeException(e); } } if (st!=null){ try { st.close(); } catch (SQLException e) { throw new RuntimeException(e); } } if (conn!=null){ try { conn.close(); } catch (SQLException e) { throw new RuntimeException(e); } } } }
3step:
执行插入操作:
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class TestInsert {
public static void main(String[] args) {
Connection conn= null;
Statement st = null;
ResultSet rs = null;
try {
conn = JdbcUtils.getConnection(); // 使用编写好的JdbcUtils类中的静态方法获取链接
st = conn.createStatement(); // 获得sql的执行对象
String sql = "INSERT INTO users(id, `NAME`, `PASSWORD`, `email`, `birthday`) " +
"VALUES(4, 'kuangshen', '123456', '89999999@qq.com', '2022-02-03')";
int i= st.executeUpdate(sql); // 执行sql语句,返回结果是受影响的行数
if(i>0) {
System.out.println("插入成功");
}
} catch (SQLException e) {
throw new RuntimeException(e);
} finally {
JdbcUtils.release(conn, st, rs); // 使用编写好的JdbcUtils类中的静态方法获取链接释放资源
}
}
}
执行删除操作:
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class TestDelete {
public static void main(String[] args) {
Connection conn= null;
Statement st = null;
ResultSet rs = null;
try {
conn = JdbcUtils.getConnection(); // 使用编写好的JdbcUtils类中的静态方法获取链接
st = conn.createStatement(); // 获得sql的执行对象
String sql = "DELETE FROM users WHERE id = 4";
int i= st.executeUpdate(sql); // 执行sql语句,返回结果是受影响的行数
if(i>0) {
System.out.println("删除成功");
}
} catch (SQLException e) {
throw new RuntimeException(e);
} finally {
JdbcUtils.release(conn, st, rs); // 使用编写好的JdbcUtils类中的静态方法释放资源
}
}
}
执行更改操作:
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class TestUpdate {
public static void main(String[] args) {
Connection conn= null;
Statement st = null;
ResultSet rs = null;
try {
conn = JdbcUtils.getConnection(); // 使用编写好的JdbcUtils类中的静态方法获取链接
st = conn.createStatement(); // 获得sql的执行对象
String sql = "UPDATE users SET `NAME`='kuangshen' WHERE id = 1";
int i= st.executeUpdate(sql); // 执行sql语句,返回结果是受影响的行数
if(i>0) {
System.out.println("更新成功");
}
} catch (SQLException e) {
throw new RuntimeException(e);
} finally {
JdbcUtils.release(conn, st, rs); // 使用编写好的JdbcUtils类中的静态方法释放资源
}
}
}
执行查询操作:
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class TestSelect {
public static void main(String[] args) {
Connection conn= null;
Statement st = null;
ResultSet rs = null;
try {
conn = JdbcUtils.getConnection(); // 使用编写好的JdbcUtils类中的静态方法获取链接
st = conn.createStatement(); // 获得sql的执行对象
String sql = "SELECT * FROM USERS";
rs = st.executeQuery(sql); // 执行sql语句,返回结果是一个结果集
while (rs.next()) {
System.out.println("id=" + rs.getInt("id"));
System.out.println("name=" + rs.getString("NAME"));
System.out.println("pwd=" + rs.getObject("PASSWORD"));
System.out.println("email=" + rs.getObject("email"));
System.out.println("birth=" + rs.getObject("birthday"));
System.out.println("=======================================");
}
} catch (SQLException e) {
throw new RuntimeException(e);
} finally {
JdbcUtils.release(conn, st, rs); // 使用编写好的JdbcUtils类中的静态方法释放资源
}
}
}