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 ...
随机推荐
- IDEA中使用Lombok时候,getter,setter注解不生效/每次重启后才生效
Relevance.java代码如下: import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; imp ...
- flask框架-中
路由扩展 @app.route和app.add_url_rule参数 # rule,URL 规则 # view_func,视图含数名称 # defaults = None,默认值,当url中无参数,函 ...
- nodejs服务后台持续运行三种方法
一.利用 forever forever是一个nodejs守护进程,完全由命令行操控.forever会监控nodejs服务,并在服务挂掉后进行重启. 1.安装 forever npm install ...
- Window命令行切换命令
Windows 命令行切换目录 特别注意:切换到其它盘符不需要 cd 命令 1. 切换到 C 盘根目录 打开终端 cmd 后,输入cd C:\(一定要加上后面的反斜扛) 2.切换到 C 盘子目录 打开 ...
- mysql安装(centos7)
1.下载rpm wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm 2.安装rpm yum ...
- 吴裕雄--天生自然python机器学习:使用决策树预测隐形眼镜类型
解决策树如何预测患者需要佩戴的隐形眼镜类型.使用小数据 集,我们就可以利用决策树学到很多知识:眼科医生是如何判断患者需要佩戴的镜片类型:一旦 理解了决策树的工作原理,我们甚至也可以帮助人们判断需要佩戴 ...
- Android recycleview item水波纹效果
item的xml 根标签下添加如下三个属性 android:clickable="true" android:focusable="true" android: ...
- Cocos2dx-JS学习01
123456 <body><script src="res/loading.js"></script><canvas id="g ...
- CAD安装错误1625:系统策略禁止这个安装,请与系统管理员联系。
在安装Autodesk CAD/3DMAX/Maya/Revit/Inventor等的时候,出现“安装错误1625:系统策略禁止这个安装,请与系统管理员联系.”,或是Error 1625,同时还会提示 ...
- python学习笔记(5)数据类型-字典
字典是另一种可变容器模型,且可存储任意类型对象. 字典的每个键值 key=>value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中 ,格式如下所示: d ...