一、创建javabean:User

public class User {private int id;private String username;private String password;private String email;private Date birthday;
//补充getter setter

二、创建操作数据库的工具类

public class JDBCUtils {// 加载驱动,并建立数据库连接public static Connection getConnection() throws SQLException,ClassNotFoundException {Class.forName("com.mysql.jdbc.Driver");String url = "jdbc:mysql://localhost:3306/jdbc";String username = "root";String password = "root";Connection conn = DriverManager.getConnection(url, username, password);return conn;}// 关闭数据库连接,释放资源public static void release(Statement stmt, Connection conn) {if (stmt != null) {try {stmt.close();} catch (SQLException e) {e.printStackTrace();}stmt = null;}if (conn != null) {try {conn.close();} catch (SQLException e) {e.printStackTrace();}conn = null;}}public static void release(ResultSet rs, Statement stmt, Connection conn){if (rs != null) {try {rs.close();} catch (SQLException e) {e.printStackTrace();}rs = null;}release(stmt, conn);}
}

三、创建UsersDao

public class UsersDao {// 添加用户的操作public boolean insert(User user) {Connection conn = null;Statement stmt = null;ResultSet rs = null;try {// 获得数据的连接conn = JDBCUtils.getConnection();// 获得Statement对象stmt = conn.createStatement();// 发送SQL语句SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");String birthday = sdf.format(user.getBirthday());String sql = "INSERT INTO users(id,name,password,email,birthday) "+"VALUES("+ user.getId()+ ",'"+ user.getUsername()+ "','"+ user.getPassword()+ "','"+ user.getEmail()+ "','"+ birthday + "')";int num = stmt.executeUpdate(sql);if (num > 0) {return true;}return false;} catch (Exception e) {e.printStackTrace();} finally {JDBCUtils.release(rs, stmt, conn);}return false;}// 查询所有的User对象public ArrayList<User> findAll() {Connection conn = null;Statement stmt = null;ResultSet rs = null;ArrayList<User> list = new ArrayList<User>();try {// 获得数据的连接conn = JDBCUtils.getConnection();// 获得Statement对象stmt = conn.createStatement();// 发送SQL语句String sql = "SELECT * FROM users";rs = stmt.executeQuery(sql);// 处理结果集while (rs.next()) {User user = new User();user.setId(rs.getInt("id"));user.setUsername(rs.getString("name"));user.setPassword(rs.getString("password"));user.setEmail(rs.getString("email"));user.setBirthday(rs.getDate("birthday"));list.add(user);}return list;} catch (Exception e) {e.printStackTrace();} finally {JDBCUtils.release(rs, stmt, conn);}return null;}// 根据id查找指定的userpublic User find(int id) {Connection conn = null;Statement stmt = null;ResultSet rs = null;try {// 获得数据的连接conn = JDBCUtils.getConnection();// 获得Statement对象stmt = conn.createStatement();// 发送SQL语句String sql = "SELECT * FROM users WHERE id=" + id;rs = stmt.executeQuery(sql);// 处理结果集while (rs.next()) {User user = new User();user.setId(rs.getInt("id"));user.setUsername(rs.getString("name"));user.setPassword(rs.getString("password"));user.setEmail(rs.getString("email"));user.setBirthday(rs.getDate("birthday"));return user;}return null;} catch (Exception e) {e.printStackTrace();} finally {JDBCUtils.release(rs, stmt, conn);}return null;}// 删除用户public boolean delete(int id) {Connection conn = null;Statement stmt = null;ResultSet rs = null;try {// 获得数据的连接conn = JDBCUtils.getConnection();// 获得Statement对象stmt = conn.createStatement();// 发送SQL语句String sql = "DELETE FROM users WHERE id=" + id;int num = stmt.executeUpdate(sql);if (num > 0) {return true;}return false;} catch (Exception e) {e.printStackTrace();} finally {JDBCUtils.release(rs, stmt, conn);}return false;}// 修改用户public boolean update(User user) {Connection conn = null;Statement stmt = null;ResultSet rs = null;try {// 获得数据的连接conn = JDBCUtils.getConnection();// 获得Statement对象stmt = conn.createStatement();// 发送SQL语句SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");String birthday = sdf.format(user.getBirthday());String sql = "UPDATE users set name='" + user.getUsername()+ "',password='" + user.getPassword() + "',email='"+ user.getEmail() + "',birthday='" + birthday+ "' WHERE id=" + user.getId();int num = stmt.executeUpdate(sql);if (num > 0) {return true;}return false;} catch (Exception e) {e.printStackTrace();} finally {JDBCUtils.release(rs, stmt, conn);}return false;}}

四、创建测试类(使用junit5)

public class UsersDaoTest {private UsersDao ud;@BeforeEachvoid init() {ud = new UsersDao();}@Testvoid insertTest() {// 向users表插入一个用户信息User user = new User();user.setUsername("hl");user.setPassword("123");user.setEmail("hl@sina.com");user.setBirthday(new Date());boolean b = ud.insert(user);System.out.println(b);}@Testvoid findAllUsersTest() {// 将UsersDao对象的findAll()方法执行后的结果放入list集合ArrayList<User> list = ud.findAll();// 循环输出集合中的数据for (int i = 0; i < list.size(); i++) {System.out.println("第" + (i + 1) + "条数据的username值为:" + list.get(i).getUsername());}}@Testvoid findUserByIdTest() {User user = ud.find(1);System.out.println("id为1的User对象的name值为:" + user.getUsername());}@Testvoid updateUserTest() {User user = new User();user.setId(4);user.setUsername("zhaoxiaoliu");user.setPassword("456");user.setEmail("zhaoxiaoliu@sina.com");user.setBirthday(new Date());boolean b = ud.update(user);System.out.println(b);}@Testvoid deleteUserTest() {boolean b = ud.delete(4);System.out.println(b);}
}

使用JDBC完成数据的增删改查相关推荐

  1. JDBC——商品品牌数据的增删改查操作

    JDBC练习--完成商品品牌数据的增删改查操作 一.准备环境 1.数据库表tb_brand 2.实体类Brand /*** 品牌* alt+鼠标左键,整列编辑* 在实体类中,基本数据类型建议使用其对应 ...

  2. JDBC练习-完成商品品牌数据的增删改查操作

    准备环境 数据库表tb_brand -- 删除tb_brand表 drop table if exists tb_brand; -- 创建tb_brand表 create table tb_brand ...

  3. JDBC对数据库进行增删改查【面向对象版】

    写在前面的话: 参考资料:尚硅谷视频 本章内容:使用面向对象的思想,进行对数据库的增删改查 IDE:eclipse JDK:Java8 MySQL:mysql  Ver 8.0.26 for Win6 ...

  4. JavaWeb小项目(二)- 完成品牌数据的增删改查(JSP/MVC/三层架构综合应用)

    JavaWeb小项目(二)- 完成品牌数据的增删改查(JSP/MVC/三层架构综合应用) 文章目录 JavaWeb小项目(二)- 完成品牌数据的增删改查(JSP/MVC/三层架构综合应用) 环境搭建 ...

  5. datatables增删改查php,jQuery+datatables插件实现Ajax加载数据与增删改查功能示例_白峰_前端开发者...

    本文实例讲述了 这里给大家分享一下我在项目中用datatables实现ajax加载数据与增删改查 注意,需要引入  搜索  新增  编辑  删除 职业姓名性别爱好 //点击查找 $(" ...

  6. php mysql增删改查实例_php连接数据库实现用户数据的增删改查实例

    下面小编就为大家带来一篇使用PHP连接数据库_实现用户数据的增删改查的整体操作示例.小编觉得挺不错的,现在就分享给大家,也给大家做个参考.一起跟随小编过来看看吧 main页面(主页面) 代号 姓名 性 ...

  7. vue修改数据连接数据库_vue实现数据的增删改查

    在管理员的一些后台页面里,个人中心里的数据列表里,都会有对这些数据进行增删改查的操作.比如在管理员后台的用户列表里,我们可以录入新用户的信息,也可以对既有的用户信息进行修改.在vue中,我们更应该专注 ...

  8. Vue+ElementUI纯前端技术实现对表格数据的增删改查

    Vue+ElementUI纯前端技术实现对表格数据的增删改查 页面展示效果 一.页面结构 分为三个部分 head body 以及script 一般我个人是在head中引入一些组件库 , 还有一些样式 ...

  9. Node+Vue实现对数据的增删改查

      这是一个用于学生签到的小例子.主要用到的技术有node和Vue:用node搭建小型服务器,配置好路由,前端用vue写好组件,数据库采用的是mysql. 文件结构如下:   主要是功能是对数据的增删 ...

最新文章

  1. 服务器驱动精灵_驱动精灵真的可以帮你安装驱动吗?别再无脑装驱动了
  2. 我的世界服务器自定义欢迎界面,我的世界启动界面如何修改 diy修改启动界面攻略...
  3. android系统优势 研究,Android系统关注度持续保持优势
  4. SQL语句汇总(一)——数据库与表的操作以及创建约束
  5. 物联网形势大好,传感器前景可观
  6. linux安装matlab(亲测有用)
  7. 计算机数控入门,数控基础知识课件
  8. 威纶通触摸屏控制台达变频器
  9. 第三方支付牌照(支付业务许可证)
  10. 基于C51单片机的万年历设计(LCD1602显示)
  11. java中的控制器_SpringMVC基础(一)_控制器
  12. 硬盘的读写原理(图文详解)
  13. Java栈的实现数组和链表
  14. Wi-Fi Display协议介绍
  15. 阿哈c语言教程pdf,C++教程-完整版.pdf
  16. 无人直播慢直播设备介绍
  17. 【iOS沉思录】Objective-C语言消息传递机制三道防线:消息转发机制详解
  18. 手机移动端审批安装教程
  19. 安卓逆向011之实战获取VIP(影视软件与起名软件)
  20. 产品如何拒绝不靠谱不合理的提需

热门文章

  1. eclipse中复制导入的项目并且修改了项目名字,项目后面的括号显示原来项目的名字
  2. 【Flink】Flink + Drools 构建规则模型
  3. 【elasticsearch】ES数据库重建索引 -- Reindex(数据迁移)
  4. 【Kafka】Kafka broker id 解释以及 自动生成id
  5. 【IDEA】IDEA 单元测试 System.in 没办法输入
  6. 【SpringMVC】SpringMVC : 注解 @EnableWebMvc
  7. flink 1.9 编译: flink-shaded-asm-6 找不到
  8. mysql中的文件导入导出表设计_mysql导入导出表结构及表数据及执行sql文件
  9. Nginx+keepalived 实现高可用,防盗链及动静分离配置详解(值得收藏)
  10. oracle中以dba_、user_、v$_、all_、session_、index_开头