JDBC连接到数据库查询打印数据
通过一天的视频学习,认识了jdbc的连接原理前来小结:
游标读取数据库表的行一次读取一个,getXxx()方法读取表的列一个数据
next()方法可以让游标下移
可以把数据库的表看做是一个类,每条记录就是一个对象,所以要封装表
测试类 Jdbc08 .java
/**
* 练习查询 db4的emp数据然后打印
* 定义一个方法,查询emp表的数据将其封装为对象,然后装在集合.
* 1.定义类emp类
* 2.定义方法public 返回List<Emp> findAll()
* 3.实现方法 select * from emp
* @author 三只坚果
* @date 2019/9/14 21:17
*/
public class Jdbc08 {
public static void main(String[] args) {
List<Emp> all = new Jdbc08().findAll();
all.forEach(System.out::println);
System.out.println(all.size()+"条记录");
}
public List<Emp> findAll(){//查询所有emp数据
Connection conn =null;
Statement statement =null;
ResultSet rs =null;
List<Emp> list=null;
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/db4", "root", "123");
String sql="select * from emp";
statement = conn.createStatement();
rs = statement.executeQuery(sql);//rs是游标指向一行,getXxx("参数")指中列的一个数据,所以选中一个数据
//遍历结果,封装对象装在集合
Emp emp=null;
list= new ArrayList<>();
while (rs.next()){
int id = rs.getInt("id");
String ename = rs.getString("ename");
int job_id = rs.getInt("job_id");
int mgr = rs.getInt("mgr");
Date joindate = rs.getDate("joindate");
double salary = rs.getDouble("salary");
double bouns = rs.getDouble("bonus");
int dept_id = rs.getInt("dept_id");
//封装对象
emp=new Emp();
emp.setId(id);
emp.setEname(ename);
emp.setJob_id(job_id);
emp.setMgr(mgr);
emp.setJoindate(joindate);
emp.setSalary(salary);
emp.setBouns(bouns);
emp.setDept_id(dept_id);
list.add(emp);
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}finally {//释放资源
if (rs!=null){
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (statement!=null){
try {
statement.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (conn!=null){
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
return list;
}
}
/**
* 晚安!
* @author BinPeng
* @date 2019/9/14 22:04
*/
Emp.java 封装类 ALT+INSERT IDEA快捷键自动生成!!!
package HeiMaSQL02.emp08; import java.util.Date; /**
* 封装Emp表
* @author BinPeng
* @date 2019/9/14 21:24
*/
public class Emp {
private int id;
private String ename;
private int job_id;
private int mgr;
private Date joindate;
private double salary;
private double bouns;
private int dept_id; @Override
public String toString() {
return "Emp{" +
"id=" + id +
", ename='" + ename + '\'' +
", job_id=" + job_id +
", mgr=" + mgr +
", joindate=" + joindate +
", salary=" + salary +
", bouns=" + bouns +
", dept_id=" + dept_id +
'}';
} public int getId() {
return id;
} public void setId(int id) {
this.id = id;
} public String getEname() {
return ename;
} public void setEname(String ename) {
this.ename = ename;
} public int getJob_id() {
return job_id;
} public void setJob_id(int job_id) {
this.job_id = job_id;
} public int getMgr() {
return mgr;
} public void setMgr(int mgr) {
this.mgr = mgr;
} public Date getJoindate() {
return joindate;
} public void setJoindate(Date joindate) {
this.joindate = joindate;
} public double getSalary() {
return salary;
} public void setSalary(double salary) {
this.salary = salary;
} public double getBouns() {
return bouns;
} public void setBouns(double bouns) {
this.bouns = bouns;
} public int getDept_id() {
return dept_id;
} public void setDept_id(int dept_id) {
this.dept_id = dept_id;
}
}
emp 数据库表 (数据库都给你备好了!够意思吧!!!)
/*
Navicat MySQL Data Transfer Source Server : first
Source Server Type : MySQL
Source Server Version : 50725
Source Host : localhost:3306
Source Schema : db4 Target Server Type : MySQL
Target Server Version : 50725
File Encoding : 65001 Date: 14/09/2019 22:15:35
*/ SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0; -- ----------------------------
-- Table structure for emp
-- ----------------------------
DROP TABLE IF EXISTS `emp`;
CREATE TABLE `emp` (
`id` int(11) NOT NULL,
`ename` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL,
`job_id` int(11) NULL DEFAULT NULL,
`mgr` int(11) NULL DEFAULT NULL,
`joindate` date NULL DEFAULT NULL,
`salary` decimal(7, 2) NULL DEFAULT NULL,
`bonus` decimal(7, 2) NULL DEFAULT NULL,
`dept_id` int(11) NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE,
INDEX `emp_jobid_ref_job_id_fk`(`job_id`) USING BTREE,
INDEX `emp_deptid_ref_dept_id_fk`(`dept_id`) USING BTREE,
CONSTRAINT `emp_deptid_ref_dept_id_fk` FOREIGN KEY (`dept_id`) REFERENCES `dept` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT,
CONSTRAINT `emp_jobid_ref_job_id_fk` FOREIGN KEY (`job_id`) REFERENCES `job` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; -- ----------------------------
-- Records of emp
-- ----------------------------
INSERT INTO `emp` VALUES (1001, '啦啦', 4, 1004, '2000-12-17', 8000.00, NULL, 20);
INSERT INTO `emp` VALUES (1002, '吖吖', 3, 1006, '2001-02-20', 16000.00, 3000.00, 30);
INSERT INTO `emp` VALUES (1003, '啊吖', 3, 1006, '2001-02-22', 12500.00, 5000.00, 30);
INSERT INTO `emp` VALUES (1004, '订单', 2, 1009, '2001-04-02', 29750.00, NULL, 20);
INSERT INTO `emp` VALUES (1005, '李方法', 4, 1006, '2001-09-28', 12500.00, 14000.00, 30);
INSERT INTO `emp` VALUES (1006, '宋方法', 2, 1009, '2001-05-01', 28500.00, NULL, 30);
INSERT INTO `emp` VALUES (1007, '发', 2, 1009, '2001-09-01', 24500.00, NULL, 10);
INSERT INTO `emp` VALUES (1008, '猪发', 4, 1004, '2007-04-19', 30000.00, NULL, 20);
INSERT INTO `emp` VALUES (1009, 'utah', 1, NULL, '2001-11-17', 50000.00, NULL, 10);
INSERT INTO `emp` VALUES (1010, '吴让她', 3, 1006, '2001-09-08', 15000.00, 0.00, 30);
INSERT INTO `emp` VALUES (1011, '沙让他', 4, 1004, '2007-05-23', 11000.00, NULL, 20);
INSERT INTO `emp` VALUES (1012, '李让他', 4, 1006, '2001-12-03', 9500.00, NULL, 30);
INSERT INTO `emp` VALUES (1013, '饿龙', 4, 1004, '2001-12-03', 30000.00, NULL, 20);
INSERT INTO `emp` VALUES (1014, '饿', 4, 1007, '2002-01-23', 13000.00, NULL, 10); SET FOREIGN_KEY_CHECKS = 1;
JDBC连接到数据库查询打印数据的更多相关文章
- JDBC连接mysql数据库,添加数据
如下:其中添加/删除/修改只是sql字符串不同 //3.要执行的字符串 String sql="INSERT INTO t_student(NAME,age,email) VALUES('x ...
- 分页查询信息(使用jdbc连接mysql数据库实现分页查询任务)
分页查询信息 使用jdbc连接mysql数据库实现分页查询任务 通过mysql数据库提供的分页机制,实现商品信息的分页查询功能,将查询到的信息显示到jsp页面上. 本项目 ...
- C#连接Oracle数据库查询数据
C#连接Oracle数据库可以实现许多我们需要的功能,下面介绍的是C#连接Oracle数据库查询数据的方法,如果您对C#连接Oracle数据库方面感兴趣的话,不妨一看. using System; u ...
- JDBC连接MySQL数据库代码模板
下面这个例子是最简单的JDBC连接MySQL数据库的例子. 一般步骤: 1.注册驱动: 2.建立连接: 3.创建语句: 4.处理结果: 5.释放资源. 注意: 1.软件开发环境:MyEclipse 8 ...
- java jdbc 连接mysql数据库 实现增删改查
好久没有写博文了,写个简单的东西热热身,分享给大家. jdbc相信大家都不陌生,只要是个搞java的,最初接触j2ee的时候都是要学习这么个东西的,谁叫程序得和数据库打交道呢!而jdbc就是和数据库打 ...
- JDBC连接Oracle数据库的问题
场景:最近做一个java web项目,使用jdbc连接Oracle数据库,遇到了两个问题. 问题1:jdbc连接不上Ubuntu Oracle服务器? 后来发现这个问题的原因是由于连接字符串写错了,修 ...
- JDBC连接MySQL数据库及演示样例
JDBC是Sun公司制定的一个能够用Java语言连接数据库的技术. 一.JDBC基础知识 JDBC(Java Data Base Connectivity,java数据库连接)是一种用 ...
- JDBC连接MySQL数据库及示例
JDBC是Sun公司制定的一个可以用Java语言连接数据库的技术. 一.JDBC基础知识 JDBC(Java Data Base Connectivity,java数据库连接)是一 ...
- java用JDBC连接MySQL数据库的详细知识点
想实现java用JDBC连接MySQL数据库.需要有几个准备工作: 1.下载Connector/J的库文件,下载Connector/J的官网地址:http://www.mysql.com/downlo ...
随机推荐
- 以KNN为例用sklearn进行数据分析和预测
准备 相关的库 相关的库包括: numpy pandas sklearn 带入代码如下: import pandas as pd import numpy as np from sklearn.nei ...
- node/静态路由/express框架中的express.static()和app.use()
此篇文章转载于 express框架中的express.static()和app.use() Express框架在使用app.use中传入express.static设置静态路由时,这个文件夹下的所有文 ...
- 使用meshgrid生成热图和单位向量场
需求: 生成 中heatmap unit vector field 目前的数据: 图像的shape, 关键点的x,y , heatmap的半径R 思路: 如果使用for循环来判断距离,会很慢,如果预先 ...
- GCC的分支预测优化__builtin_expect
智能指针笔记 GCC的原子操作函数 将流水线引入cpu,可以提高cpu的效率.更简单的说,让cpu可以预先取出下一条指令,可以提供cpu的效率.如下图所示: 取指令 执行指令 输出结果 取指令 执行 ...
- 600E - Lomsat gelral(找子树多颜色问题)(入门)
题:https://codeforces.com/problemset/problem/600/E 题意:一棵树有n个结点,每个结点都是一种颜色,每个颜色有一个编号,求树中每个子树的最多的颜色编号的和 ...
- Java和Mysql中的数据类型
1.mysql中的基本类型 1.整数: tinyint:1个字节 -128~127 smallint: 2个字节 -32768~32767 int : 4个字节 bigint: 8个字节 2 ...
- servlet打包成war
1.maven pom文件里指定打包类型 2.jdk工具 进入servlet目录,执行jar -cf war名 *
- ununtu 16.04 下的 VsCode 下载与安装
Vscode发现用包下载显示找不到网页,于是只有继续折腾. 折腾如下: ubuntu-desktop You can update your system with unsupported packa ...
- PAT甲级——1042 Shuffling Machine
1042 Shuffling Machine Shuffling is a procedure used to randomize a deck of playing cards. Because s ...
- elasticserch-hadoop spak 网络配置异常排查
elasticserch hadoop 在本地测试写入 elasticsearch:9200时成功 线上环境却报错如下 org.elasticsearch.hadoop.EsHadoopIllegal ...