博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JavaWeb学习-JDBC系列-8-基于DBUtils工具类的CRUD练习
阅读量:4302 次
发布时间:2019-05-27

本文共 3048 字,大约阅读时间需要 10 分钟。

前面我们封装了一个用于连接数据库和关闭资源的DBUtils的类,可以减少很多重复的代码。这个类,提供了连接数据库和关闭资源的两个静态方法。再次复习下这个类中加载properties文件,为什么要使用静态代码块,也就是static{},因为我们想,这个DBUtils类一加载到JVM虚拟机就里面执行加载解析propertes文件操作。这个技巧,我们之前在Selenium自动化中写driver的初始化也用上了。

1.数据表准备

为了我们下一篇的练习,这里我给这个student表新增一个password字段,也就是学生密码,方便我们后面文章来做登录练习。

执行sql语句或者小海豚上图形界面操作。

alter table student add pwd char(20);

我这里随机给当前已有学生添加密码

2.查询练习

这个我们在前面一篇文章的练习之后,把查询的结果集封装成Student对象,这里新加了一个字段,所以,我们的Student.java里面也需要新加一个private String password 和set get方法。

package demo;import java.sql.Connection;import java.sql.ResultSet;import java.sql.Statement;import java.util.ArrayList;import java.util.List;import org.junit.Test;import com.anthony.utils.DBUtils;public class CURD {		@Test	public void testSelect() {		Connection conn = null;		Statement stmt = null;		ResultSet rs = null;				try {			conn = DBUtils.getConnection();			stmt = conn.createStatement();			rs = stmt.executeQuery("SELECT * FROM student");			List
list = new ArrayList
(); while(rs.next()) { Student s = new Student(); s.setName(rs.getString("Name")); s.setId(rs.getInt("ID")); s.setGender(rs.getString("Gender")); s.setAge(rs.getInt("Age")); s.setPassword(rs.getString("pwd")); // 把student对象添加到集合中 list.add(s); } //遍历集合 for (Student student : list) { System.out.println(student.toString()); } } catch (Exception e) { e.printStackTrace(); } finally { DBUtils.close(conn, stmt, rs); } }}

测试结果:

Student [Id=192101, Name=Tom, Gender=male, Age=19, password=123]Student [Id=192102, Name=Lucy, Gender=female, Age=18, password=456]Student [Id=192103, Name=Dniel, Gender=male, Age=20, password=111]Student [Id=192104, Name=Sunny, Gender=female, Age=18, password=2222]Student [Id=192105, Name=Anthony, Gender=male, Age=23, password=123456]

3.插入练习

这里我直接贴单元测试代码

@Testpublic void testInsert() {	Connection conn = null;	Statement stmt = null;			try {		conn = DBUtils.getConnection();		stmt = conn.createStatement();		int i = stmt.executeUpdate("INSERT INTO student VALUES ('192106','Lisi','male','22','333')");		if (i > 0) {			System.out.println("插入成功");		}				} catch (Exception e) {		e.printStackTrace();	} finally {		DBUtils.close(conn, stmt, null);	}}

4.更新练习

这里,我把Anthony的年龄从23改成18.

@Test	public void testUpdate() {		Connection conn = null;		Statement stmt = null;				try {			conn = DBUtils.getConnection();			stmt = conn.createStatement();			int i = stmt.executeUpdate("UPDATE student SET Age='18' WHERE Name='Anthony'");			if (i > 0) {				System.out.println("更新成功");			}					} catch (Exception e) {			e.printStackTrace();		} finally {			DBUtils.close(conn, stmt, null);		}	}

刷新一下小海豚,或者执行上面查询的用例。

5.删除练习

这里我把Tom这行数据删除

@Test	public void testDelete() {		Connection conn = null;		Statement stmt = null;				try {			conn = DBUtils.getConnection();			stmt = conn.createStatement();			int i = stmt.executeUpdate("DELETE FROM student WHERE Name='Tom'");			if (i > 0) {				System.out.println("删除成功");			}					} catch (Exception e) {			e.printStackTrace();		} finally {			DBUtils.close(conn, stmt, null);		}	}

结果Tom被删除

转载地址:http://fuows.baihongyu.com/

你可能感兴趣的文章
apache+nginx 实现动静分离
查看>>
通过Navicat远程连接MySQL配置
查看>>
phpstorm开发工具的设置用法
查看>>
Linux 系统挂载数据盘
查看>>
Git基础(三)--常见错误及解决方案
查看>>
Git(四) - 分支管理
查看>>
PHP Curl发送数据
查看>>
HTTP协议
查看>>
HTTPS
查看>>
git add . git add -u git add -A区别
查看>>
apache下虚拟域名配置
查看>>
session和cookie区别与联系
查看>>
PHP 实现笛卡尔积
查看>>
Laravel中的$loop
查看>>
CentOS7 重置root密码
查看>>
Centos安装Python3
查看>>
PHP批量插入
查看>>
laravel连接sql server 2008
查看>>
Laravel 操作redis的各种数据类型
查看>>
Laravel框架学习笔记之任务调度(定时任务)
查看>>