使用JDBC发送insert语句完成单表【添加】操作

使用JDBC发送update语句完成单表【更新】操作

使用JDBC发送delete语句完成单表【删除】操作

使用JDBC发送select语句完成单表【查询】操作

JDBCUtils_V3.java

import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Properties; /**
* 提供获取连接和释放资源的方法
*/
public class JDBCUtils_V3 {
private static String driver;
private static String url;
private static String username;
private static String password; /*
* 静态代码块加载配置文件信息
*/
static { try {
// 1.通过当前类获取类加载器
ClassLoader classLoader = JDBCUtils_V3.class.getClassLoader();
// 2.通过类加载器的方法获得一个输入流
InputStream is = classLoader.getResourceAsStream("db.properties");
// 3.创建一个properties对象
Properties props = new Properties();
// 4.加载输入流
props.load(is);
// 5.获取相关参数的值
driver = props.getProperty("driver");
url = props.getProperty("url");
username = props.getProperty("username");
password = props.getProperty("password");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} /**
* 获取连接方法
*
* @return
*/
public static Connection getConnection() {
Connection conn = null;
try {
Class.forName(driver);
conn = DriverManager.getConnection(url, username, password);
} catch (Exception e) {
e.printStackTrace();
}
return conn;
} public static void release(Connection conn, PreparedStatement pstmt, ResultSet rs) {
if (rs != null) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (pstmt != null) {
try {
pstmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}

TestUtils.java

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException; import org.junit.Test; import cn.itheima.jdbc.JDBCUtils_V1;
import cn.itheima.jdbc.JDBCUtils_V2;
import cn.itheima.jdbc.JDBCUtils_V3; /**
* 测试工具类
*/
public class TestUtils { /*
* 根据id更新信息方法
*/
@Test
public void testUpdateyId() {
Connection conn = null;
PreparedStatement pstmt = null; try {
// 1.获取连接
conn = JDBCUtils_V3.getConnection();
// 2.编写sql语句
String sql = "update tbl_user set upassword=? where uid=?";
// 3.获取执行sql语句对象
pstmt = conn.prepareStatement(sql);
// 4.设置参数
pstmt.setString(1, "999");
pstmt.setInt(2, 1);
// 5.执行更新操作
int row = pstmt.executeUpdate();
if (row > 0) {
System.out.println("更新成功!");
} else {
System.out.println("更新失败!");
}
// 释放资源放在此处行么?【不行滴!】
} catch (Exception e) {
throw new RuntimeException(e);
} finally {
// 6.释放资源
JDBCUtils_V2.release(conn, pstmt, null);
}
} /*
* 根据id删除信息方法
*/
@Test
public void testDeleteById() {
Connection conn = null;
PreparedStatement pstmt = null; try {
// 1.获取连接
conn = JDBCUtils_V3.getConnection();
// 2.编写sql语句
String sql = "delete from tbl_user where uid=?";
// 3.获取执行sql语句对象
pstmt = conn.prepareStatement(sql);
// 4.设置参数
pstmt.setInt(1, 3);
// 5.执行删除操作
int row = pstmt.executeUpdate();
if (row > 0) {
System.out.println("删除成功!");
} else {
System.out.println("删除失败!");
}
// 释放资源放在此处行么?【不行滴!】
} catch (Exception e) {
throw new RuntimeException(e);
} finally {
// 6.释放资源
JDBCUtils_V2.release(conn, pstmt, null);
}
} /*
* 添加用户信息方法
*/
@Test
public void testAdd() {
Connection conn = null;
PreparedStatement pstmt = null; try {
// 1.获取连接
conn = JDBCUtils_V2.getConnection();
// 2.编写sql语句
String sql = "insert into tbl_user values(null,?,?)";
// 3.获取执行sql语句对象
pstmt = conn.prepareStatement(sql);
// 4.设置参数
pstmt.setString(1, "lisi");
pstmt.setString(2, "lisi");
// 5.执行插入操作
int row = pstmt.executeUpdate();
if (row > 0) {
System.out.println("添加成功!");
} else {
System.out.println("添加失败!");
}
// 释放资源放在此处行么?【不行滴!】
} catch (Exception e) {
throw new RuntimeException(e);
} finally {
// 6.释放资源
JDBCUtils_V2.release(conn, pstmt, null);
}
} /**
* 根据id查询用户信息
*/
@Test
public void testFindUserById() {
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
try {
// 1.获取连接
conn = JDBCUtils_V1.getConnection();
// 2.编写sql语句
String sql = "select * from tbl_user where uid=?";
// 3.获取执行sql语句对象
pstmt = conn.prepareStatement(sql);
// 4.设置参数
pstmt.setInt(1, 1);
// 5.执行查询操作
rs = pstmt.executeQuery();
// 6.处理结果集
while (rs.next()) {
System.out.println(rs.getString(2) + "----" + rs.getString("upassword"));
}
// 释放资源放在此处行么?【不行滴!】
} catch (SQLException e) {
e.printStackTrace();
} finally {
// 7.释放资源
JDBCUtils_V1.release(conn, pstmt, rs);
}
}
}

最新文章

  1. 我的前端故事----Ajax方式和jsonp的实现区别
  2. 【转载】如何破解受保护的excel密码
  3. poj3107 求树的重心(&& poj1655 同样求树的重心)
  4. 看ImplicitBackwardEulerSparse关于static solve的代码
  5. [转发] 理解 oauth 2.0
  6. Maven 依赖管理
  7. LA 6856 Circle of digits 解题报告
  8. 操作Action
  9. Android开发(25)--framebyframe帧动画并实现启动界面到主界面的跳转
  10. idea空包自动叠加问题
  11. Linux 的特殊变量(2)
  12. javascript概要学习
  13. gym 101982 B题 Coprime Integers
  14. win7经常出现“关闭xxxx前您必须关闭所有会话框”
  15. selective search
  16. Linux下安装maven(mvn命令)
  17. 洛谷 P1123 取数游戏
  18. OC与AS3的观察者模式比较以及外部回调
  19. VC++ 6.0 C8051F340 USB PC侧通信 Demo
  20. JIRA 的字段配置

热门文章

  1. 双向BFS统计
  2. 使用SpringBoot做Javaweb时,数据交互遇到的问题
  3. 添加了两个IP
  4. json校验失败的原因
  5. 兼容系列-IE678的兼容
  6. k8sIngress资源
  7. php的异步非阻塞swoole模块使用(一)实现简易tcp服务器--服务端
  8. 【Winfrom-DataTable填充ListView】ListView与DataTable相互转换 .net
  9. LAMP 搭建,wordpress.xcache,powerdns及poweradmin
  10. npm全局路径及cache路径设置