当前位置: 首页 > news >正文

【无标题】Statement对象详解

代码实现

1.提取工具类

package com.yang.yang.lesson02.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);properties.getProperty("driver");properties.getProperty("url");properties.getProperty("username");properties.getProperty("password");//1.驱动只用加载一次Class.forName(driver);
​} catch (IOException | ClassNotFoundException 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);}}
​}
​}

2.编写增删改的方法,excuteUpdate

package com.yang.yang.lesson02.utils;
​
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();//获取数据库连接st= conn.createStatement();//获得sql的执行对象String sql = "insert into users(id,'NAME','PASSWORD','email','birthday')"+"VALUES (4,'yangyang','123456','223525365@qq.com','1020-2-2')" ;int i = st.executeUpdate(sql);if (i > 0){System.out.println("插入成功");}} catch (SQLException e) {throw new RuntimeException(e);}finally {jdbcUtils.release(conn,st,rs);
​}}
}

package com.yang.yang.lesson02.utils;
​
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();//获取数据库连接st= conn.createStatement();//获得sql的执行对象String sql = "DELETE FROM users WHERE id = 4" ;int i = st.executeUpdate(sql);if (i > 0){System.out.println("删除成功");}} catch (SQLException e) {throw new RuntimeException(e);}finally {jdbcUtils.release(conn,st,rs);
​}}}
}

package com.yang.yang.lesson02.utils;
​
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();//获取数据库连接st= conn.createStatement();//获得sql的执行对象String sql = "UPDATE users SET NAME = 'yangyang' ,'email'='2345778@qq.com' WHERE id =1" ;int i = st.executeUpdate(sql);if (i > 0){System.out.println("更新成功");}} catch (SQLException e) {throw new RuntimeException(e);}finally {jdbcUtils.release(conn,st,rs);
​}}}
}

3.查询

package com.yang.yang.lesson02.utils;
​
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();conn.createStatement();//SQl String sql = "select * from users where id =1";rs= st.executeQuery(sql);//查询完毕会返回一个结果集while (rs.next()){System.out.println(rs.getString("NAME"));}} catch (SQLException e) {throw new RuntimeException(e);}finally {jdbcUtils.release(conn,st,rs);}}
}
http://www.dtcms.com/a/231627.html

相关文章:

  • 【Win32 API】 lstrlenA()
  • java.sql.BatchUpdateException: Incorrect string value: ‘\xF0\x9F\x91\x91**...‘
  • ROS中的里程计与IMU的消息类型解读
  • Python 类型注释 - typing
  • 如何确定微服务的粒度与边界
  • C++抽象类与多态实战解析
  • 算法训练第八天
  • Vue Router 导航方法完全指南
  • 【使用 Loki + Promtail + Grafana 搭建轻量级容器日志分析平台】
  • dxf、dwg中文字矩阵变换
  • 安装 Nginx
  • QT链接其他项目的C++文件报链接错误
  • sifli 52 反馈standby待机rc10k 15秒校准起来后,底电流会变大
  • 交叉熵的意义
  • Linux-linux和windows创建新进程的区别以及posix_spawn
  • 04.两数之和
  • 数据库同步是什么意思?数据库架构有哪些?
  • 《AI角色扮演反诈技术解析:原理、架构与核心挑战》
  • Linux基础开发工具——yum工具
  • QML技术优势
  • day21 常见的降维算法
  • 英国2025年战略防御评估报告:网络与电磁域成现代战争核心
  • 【学习笔记】Python金融基础
  • Linux 云服务器部署 Flask 项目(含后台运行与 systemd 开机自启)
  • 智能推荐系统:协同过滤与深度学习结合
  • # Vue + OpenLayers 完整项目开发指南
  • 【unity游戏开发入门到精通——通用篇】从零掌握UnityWebRequest:文件下载、表单提交、超时处理、断点续传
  • Devops自动化运维---py基础篇一
  • Android Studio 打包时遇到了签名报错问题:Invalid keystore format
  • leetcode1443. 收集树上所有苹果的最少时间-medium