通过一天的视频学习,认识了jdbc的连接原理前来小结:

游标读取数据库表的行一次读取一个,getXxx()方法读取表的列一个数据

next()方法可以让游标下移

可以把数据库的表看做是一个类,每条记录就是一个对象,所以要封装表

测试类 Jdbc08 .java

  1. /**
  2. * 练习查询 db4的emp数据然后打印
  3. * 定义一个方法,查询emp表的数据将其封装为对象,然后装在集合.
  4. * 1.定义类emp类
  5. * 2.定义方法public 返回List<Emp> findAll()
  6. * 3.实现方法 select * from emp
  7. * @author 三只坚果
  8. * @date 2019/9/14 21:17
  9. */
  10. public class Jdbc08 {
  11. public static void main(String[] args) {
  12. List<Emp> all = new Jdbc08().findAll();
  13. all.forEach(System.out::println);
  14. System.out.println(all.size()+"条记录");
  15. }
  16. public List<Emp> findAll(){//查询所有emp数据
  17. Connection conn =null;
  18. Statement statement =null;
  19. ResultSet rs =null;
  20. List<Emp> list=null;
  21. try {
  22. Class.forName("com.mysql.jdbc.Driver");
  23. conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/db4", "root", "123");
  24. String sql="select * from emp";
  25. statement = conn.createStatement();
  26. rs = statement.executeQuery(sql);//rs是游标指向一行,getXxx("参数")指中列的一个数据,所以选中一个数据
  27. //遍历结果,封装对象装在集合
  28. Emp emp=null;
  29. list= new ArrayList<>();
  30. while (rs.next()){
  31. int id = rs.getInt("id");
  32. String ename = rs.getString("ename");
  33. int job_id = rs.getInt("job_id");
  34. int mgr = rs.getInt("mgr");
  35. Date joindate = rs.getDate("joindate");
  36. double salary = rs.getDouble("salary");
  37. double bouns = rs.getDouble("bonus");
  38. int dept_id = rs.getInt("dept_id");
  39. //封装对象
  40. emp=new Emp();
  41. emp.setId(id);
  42. emp.setEname(ename);
  43. emp.setJob_id(job_id);
  44. emp.setMgr(mgr);
  45. emp.setJoindate(joindate);
  46. emp.setSalary(salary);
  47. emp.setBouns(bouns);
  48. emp.setDept_id(dept_id);
  49. list.add(emp);
  50. }
  51. } catch (ClassNotFoundException e) {
  52. e.printStackTrace();
  53. } catch (SQLException e) {
  54. e.printStackTrace();
  55. }finally {//释放资源
  56. if (rs!=null){
  57. try {
  58. rs.close();
  59. } catch (SQLException e) {
  60. e.printStackTrace();
  61. }
  62. }
  63. if (statement!=null){
  64. try {
  65. statement.close();
  66. } catch (SQLException e) {
  67. e.printStackTrace();
  68. }
  69. }
  70. if (conn!=null){
  71. try {
  72. conn.close();
  73. } catch (SQLException e) {
  74. e.printStackTrace();
  75. }
  76. }
  77. }
  78. return list;
  79. }
  80. }
  81. /**
  82. * 晚安!
  83. * @author BinPeng
  84. * @date 2019/9/14 22:04
  85. */

Emp.java 封装类  ALT+INSERT  IDEA快捷键自动生成!!!

  1. package HeiMaSQL02.emp08;
  2.  
  3. import java.util.Date;
  4.  
  5. /**
  6. * 封装Emp表
  7. * @author BinPeng
  8. * @date 2019/9/14 21:24
  9. */
  10. public class Emp {
  11. private int id;
  12. private String ename;
  13. private int job_id;
  14. private int mgr;
  15. private Date joindate;
  16. private double salary;
  17. private double bouns;
  18. private int dept_id;
  19.  
  20. @Override
  21. public String toString() {
  22. return "Emp{" +
  23. "id=" + id +
  24. ", ename='" + ename + '\'' +
  25. ", job_id=" + job_id +
  26. ", mgr=" + mgr +
  27. ", joindate=" + joindate +
  28. ", salary=" + salary +
  29. ", bouns=" + bouns +
  30. ", dept_id=" + dept_id +
  31. '}';
  32. }
  33.  
  34. public int getId() {
  35. return id;
  36. }
  37.  
  38. public void setId(int id) {
  39. this.id = id;
  40. }
  41.  
  42. public String getEname() {
  43. return ename;
  44. }
  45.  
  46. public void setEname(String ename) {
  47. this.ename = ename;
  48. }
  49.  
  50. public int getJob_id() {
  51. return job_id;
  52. }
  53.  
  54. public void setJob_id(int job_id) {
  55. this.job_id = job_id;
  56. }
  57.  
  58. public int getMgr() {
  59. return mgr;
  60. }
  61.  
  62. public void setMgr(int mgr) {
  63. this.mgr = mgr;
  64. }
  65.  
  66. public Date getJoindate() {
  67. return joindate;
  68. }
  69.  
  70. public void setJoindate(Date joindate) {
  71. this.joindate = joindate;
  72. }
  73.  
  74. public double getSalary() {
  75. return salary;
  76. }
  77.  
  78. public void setSalary(double salary) {
  79. this.salary = salary;
  80. }
  81.  
  82. public double getBouns() {
  83. return bouns;
  84. }
  85.  
  86. public void setBouns(double bouns) {
  87. this.bouns = bouns;
  88. }
  89.  
  90. public int getDept_id() {
  91. return dept_id;
  92. }
  93.  
  94. public void setDept_id(int dept_id) {
  95. this.dept_id = dept_id;
  96. }
  97. }

emp 数据库表  (数据库都给你备好了!够意思吧!!!)

  1. /*
  2. Navicat MySQL Data Transfer
  3.  
  4. Source Server : first
  5. Source Server Type : MySQL
  6. Source Server Version : 50725
  7. Source Host : localhost:3306
  8. Source Schema : db4
  9.  
  10. Target Server Type : MySQL
  11. Target Server Version : 50725
  12. File Encoding : 65001
  13.  
  14. Date: 14/09/2019 22:15:35
  15. */
  16.  
  17. SET NAMES utf8mb4;
  18. SET FOREIGN_KEY_CHECKS = 0;
  19.  
  20. -- ----------------------------
  21. -- Table structure for emp
  22. -- ----------------------------
  23. DROP TABLE IF EXISTS `emp`;
  24. CREATE TABLE `emp` (
  25. `id` int(11) NOT NULL,
  26. `ename` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL,
  27. `job_id` int(11) NULL DEFAULT NULL,
  28. `mgr` int(11) NULL DEFAULT NULL,
  29. `joindate` date NULL DEFAULT NULL,
  30. `salary` decimal(7, 2) NULL DEFAULT NULL,
  31. `bonus` decimal(7, 2) NULL DEFAULT NULL,
  32. `dept_id` int(11) NULL DEFAULT NULL,
  33. PRIMARY KEY (`id`) USING BTREE,
  34. INDEX `emp_jobid_ref_job_id_fk`(`job_id`) USING BTREE,
  35. INDEX `emp_deptid_ref_dept_id_fk`(`dept_id`) USING BTREE,
  36. CONSTRAINT `emp_deptid_ref_dept_id_fk` FOREIGN KEY (`dept_id`) REFERENCES `dept` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT,
  37. CONSTRAINT `emp_jobid_ref_job_id_fk` FOREIGN KEY (`job_id`) REFERENCES `job` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT
  38. ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic;
  39.  
  40. -- ----------------------------
  41. -- Records of emp
  42. -- ----------------------------
  43. INSERT INTO `emp` VALUES (1001, '啦啦', 4, 1004, '2000-12-17', 8000.00, NULL, 20);
  44. INSERT INTO `emp` VALUES (1002, '吖吖', 3, 1006, '2001-02-20', 16000.00, 3000.00, 30);
  45. INSERT INTO `emp` VALUES (1003, '啊吖', 3, 1006, '2001-02-22', 12500.00, 5000.00, 30);
  46. INSERT INTO `emp` VALUES (1004, '订单', 2, 1009, '2001-04-02', 29750.00, NULL, 20);
  47. INSERT INTO `emp` VALUES (1005, '李方法', 4, 1006, '2001-09-28', 12500.00, 14000.00, 30);
  48. INSERT INTO `emp` VALUES (1006, '宋方法', 2, 1009, '2001-05-01', 28500.00, NULL, 30);
  49. INSERT INTO `emp` VALUES (1007, '发', 2, 1009, '2001-09-01', 24500.00, NULL, 10);
  50. INSERT INTO `emp` VALUES (1008, '猪发', 4, 1004, '2007-04-19', 30000.00, NULL, 20);
  51. INSERT INTO `emp` VALUES (1009, 'utah', 1, NULL, '2001-11-17', 50000.00, NULL, 10);
  52. INSERT INTO `emp` VALUES (1010, '吴让她', 3, 1006, '2001-09-08', 15000.00, 0.00, 30);
  53. INSERT INTO `emp` VALUES (1011, '沙让他', 4, 1004, '2007-05-23', 11000.00, NULL, 20);
  54. INSERT INTO `emp` VALUES (1012, '李让他', 4, 1006, '2001-12-03', 9500.00, NULL, 30);
  55. INSERT INTO `emp` VALUES (1013, '饿龙', 4, 1004, '2001-12-03', 30000.00, NULL, 20);
  56. INSERT INTO `emp` VALUES (1014, '饿', 4, 1007, '2002-01-23', 13000.00, NULL, 10);
  57.  
  58. SET FOREIGN_KEY_CHECKS = 1;

JDBC连接到数据库查询打印数据的更多相关文章

  1. JDBC连接mysql数据库,添加数据

    如下:其中添加/删除/修改只是sql字符串不同 //3.要执行的字符串 String sql="INSERT INTO t_student(NAME,age,email) VALUES('x ...

  2. 分页查询信息(使用jdbc连接mysql数据库实现分页查询任务)

             分页查询信息       使用jdbc连接mysql数据库实现分页查询任务 通过mysql数据库提供的分页机制,实现商品信息的分页查询功能,将查询到的信息显示到jsp页面上. 本项目 ...

  3. C#连接Oracle数据库查询数据

    C#连接Oracle数据库可以实现许多我们需要的功能,下面介绍的是C#连接Oracle数据库查询数据的方法,如果您对C#连接Oracle数据库方面感兴趣的话,不妨一看. using System; u ...

  4. JDBC连接MySQL数据库代码模板

    下面这个例子是最简单的JDBC连接MySQL数据库的例子. 一般步骤: 1.注册驱动: 2.建立连接: 3.创建语句: 4.处理结果: 5.释放资源. 注意: 1.软件开发环境:MyEclipse 8 ...

  5. java jdbc 连接mysql数据库 实现增删改查

    好久没有写博文了,写个简单的东西热热身,分享给大家. jdbc相信大家都不陌生,只要是个搞java的,最初接触j2ee的时候都是要学习这么个东西的,谁叫程序得和数据库打交道呢!而jdbc就是和数据库打 ...

  6. JDBC连接Oracle数据库的问题

    场景:最近做一个java web项目,使用jdbc连接Oracle数据库,遇到了两个问题. 问题1:jdbc连接不上Ubuntu Oracle服务器? 后来发现这个问题的原因是由于连接字符串写错了,修 ...

  7. JDBC连接MySQL数据库及演示样例

    JDBC是Sun公司制定的一个能够用Java语言连接数据库的技术. 一.JDBC基础知识         JDBC(Java Data Base Connectivity,java数据库连接)是一种用 ...

  8. JDBC连接MySQL数据库及示例

      JDBC是Sun公司制定的一个可以用Java语言连接数据库的技术. 一.JDBC基础知识         JDBC(Java Data Base Connectivity,java数据库连接)是一 ...

  9. java用JDBC连接MySQL数据库的详细知识点

    想实现java用JDBC连接MySQL数据库.需要有几个准备工作: 1.下载Connector/J的库文件,下载Connector/J的官网地址:http://www.mysql.com/downlo ...

随机推荐

  1. MySQL--INSERT INTO ... ON DUPLICATE KEY UPDATE ...

    转自:https://my.oschina.net/iceman/blog/53735 如果在INSERT语句末尾指定了ON DUPLICATE KEY UPDATE,并且插入行后会导致在一个UNIQ ...

  2. vue 常用知识点

    1.数据变更,页面渲染完成 this.$nextTick(function(){ alert('v-for渲染已经完成') }) 2.iview select组件 setQuery用法 <Sel ...

  3. Python基础学习四

    Python基础学习四 1.内置函数 help()函数:用于查看内置函数的用途. help(abs) isinstance()函数:用于判断变量类型. isinstance(x,(int,float) ...

  4. goweb-表单

    表单 简单的处理一个登陆界面 package main import ( "fmt" "html/template" "log" " ...

  5. E、阔力梯的树

    题:https://ac.nowcoder.com/acm/contest/4010/E?&headNav=acm 分析:dsu.贪心方法:考虑插入一个值x,对总体贡献,若查找在序列中左边有值 ...

  6. 利用CSS制作背景变色的横向导航栏

    1.表单 页面如下: <html> <head> <title>注册表单页面</title> </head> <body> &l ...

  7. 第二代网关GateWay搭建流程

    Spring Cloud第二代网关GateWay是由纯Netty开发,底层为Reactor,WebFlux构建,不依赖任何Servlet容器,它不同于Zuul,使用的是异步IO,性能较Zuul提升1. ...

  8. java.lang.IllegalArgumentException: Cannot format given Object as a Date

    在进行日期转换的时候遇到了这个问题, 非常的恼火 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss" ...

  9. 004.前端开发知识,前端基础CSS(2020-01-09)

    一.CSS字体样式属性 1.font-size:字号大小 2.font-family:字体 font-family属性用于设置字体.网页中常用的字体有宋体.微软雅黑.黑体等. * { /*font-f ...

  10. 扩增|feather evolution

    Wool vs feather 扩增方法:1.Gene Duplication2.Genome Duplication3.Cluster 哺乳动物毛发和鸟类的羽毛,都来自于角蛋白. 羽毛进化图 DNA ...