Java查询数据库
创建数据库
创建 user 数据库

创建 teacher 数据库

teacher表的user_id列与user表的id列建立一对多连接,user_id作为外键。

Java编程查询数据库
向user数据表中添加数据
/**
* 添加数据
*/
@Test
public void addData() {
Connection connection = null;
PreparedStatement pstmt =null;
try {
connection = JDBCUtils_V3.getConnection();
String sql = "insert into user values(null,?,?)";
pstmt = connection.prepareStatement(sql);
pstmt.setString(1, "wangxuan");
pstmt.setString(2, "741852");
int row = pstmt.executeUpdate();
if (row>0) {
System.out.println("数据添加成功!");
}else {
System.out.println("数据添加失败!");
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
JDBCUtils_V3.release(connection, pstmt, null);
}
}

按照条件查询user数据库数据
/**
* 按照条件查询数据
*/
@Test
public void selectTest() {
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs =null;
try {
conn = JDBCUtils_V3.getConnection();
String sql = "select * from user where password = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, "123456");
rs = pstmt.executeQuery();
while (rs.next()) {
System.out.println(rs.getString(1)+"----"+rs.getString(2)+"---"+rs.getString(3));
}
// System.out.println(rs);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
JDBCUtils_V3.release(conn, pstmt, rs);
}
}

一对多查询/根据主表user查询从表teacher数据
/**
* 一对多查询
* 根据主表查询从表
*/
@Test
public void selectOnetoMore() {
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
try {
conn = JDBCUtils_V3.getConnection();
// String sql = "select * from teacher where user_id = (select id from user where username =?) ";
String sql = "select * from user,teacher where user.id = teacher.user_id ";
pstmt = conn.prepareStatement(sql);
// pstmt.setString(1, "wangxuan");
rs = pstmt.executeQuery();
while (rs.next()) {
// System.out.println(rs.getString(1)+"----"+rs.getString(2)+"---"+rs.getString(3)+"---"+rs.getString(4));
System.out.println(rs.getString(1)+"----"+rs.getString(2)+"---"+rs.getString(3)+"---"+rs.getString(4)+"----"+rs.getString(5)+"----"+rs.getString(6)+"----"+rs.getString(7));
}
System.out.println("查询完成");
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
JDBCUtils_V3.release(conn, pstmt, rs);
}
}

一对多查询/根据从表查询主表
/**
* 一对多查询
* 根据从表查询主表数据
*/
@Test
public void selectMoretoOne() {
Connection connection = null;
PreparedStatement pstmtPreparedStatement = null;
ResultSet rSet =null;
try {
connection = JDBCUtils_V3.getConnection();
String sql = "select * from user where id = (select user_id from teacher where teacher=?)";
pstmtPreparedStatement = connection.prepareStatement(sql);
pstmtPreparedStatement.setString(1, "钱田");
rSet = pstmtPreparedStatement.executeQuery();
while (rSet.next()) {
System.out.println(rSet.getString(1)+"----"+rSet.getString(2)+"---"+rSet.getString(3));
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
JDBCUtils_V3.release(connection, pstmtPreparedStatement, rSet);
}
}
}

项目代码:https://github.com/wjw1014/JavaMysqlStudy/tree/master/ConnSQL (小白操作,仅供参考!)
Java查询数据库的更多相关文章
- java查询数据库数据时报错antlr/ANTLRException
在集成SH项目时,写hql 语句总是查不出东西,而且报 java.lang.NoClassDefFoundError: antlr/ANTLRException,郁闷了很久在网上终于找到了答案,原来是 ...
- 【助教】Java获取数据库数据展示
本文将给出一个最简单的Java查询数据库中一张表的数据并将查询结果展示在页面的例子. 实际上,我们要解决以下两个问题: Java与数据库交互(以JDBC为例) 数据展示在前台页面(以Servlet+J ...
- Java 通过JDBC查询数据库表结构(字段名称,类型,长度等)
Java 通过JDBC查询数据库表结构(字段名称,类型,长度等) 发布者:唛唛家的豆子 时间:2012-11-20 17:54:02 Java 通过JDBC查询数据库表结构(字段名称,类型,长 ...
- Java 8:如何使用流方式查询数据库?
Speedment 是使用 ORM 方式操作数据库的一种选择,以前我们需要100行操作数据库的 Java 代码,在 Java 8中,可能只需要一行代码. 在90年代末,我使用 Java 开发数据库应用 ...
- [置顶] oracle 快速查询数据库各种信息、及转换对应java代码
1 查询表中数据量 select 'select '||''''||t.TABLE_NAME||''''||' as table_name, count(*) from '|| t.TABLE_NAM ...
- JAVA与数据库MySQL相连接
JDBC(Java数据库连接体系结构): 是Java实现数据库访问的应用程序编程接口,主要功能是管理存放在数据库中的数据.通过接口对象,应用程序可以完成与数据库的连接,执行SQL语句,从数据库中获取结 ...
- mySql事务_ _Java中怎样实现批量删除操作(Java对数据库进行事务处理)?
本文是记录Java中实现批量删除操作(Java对数据库进行事务处理),在开始之前先来看下面这样的一个页面图: 上面这张图片显示的是从数据库中查询出的出租信息,信息中进行了分页处理,然后每行的前面提 ...
- Java查询大文本
但JAVA本身缺少相应的类库,需要硬编码才能实现结构化文件计算,代码复杂且可读性差,难以实现高效的并行处理. 使用免费的集算器可以弥补这一不足.集算器封装了丰富的结构化文件读写和游标计算函数,书写简单 ...
- 【java 获取数据库信息】获取MySQL或其他数据库的详细信息
1.首先是 通过数据库获取数据表的详细列信息 package com.sxd.mysqlInfo.test; import java.sql.Connection; import java.sql.D ...
随机推荐
- Wannafly Camp 2020 Day 1E 树与路径 - 树上差分,LCA
#include <bits/stdc++.h> using namespace std; #define int long long const int N = 1000005; vec ...
- Java基本语法--控制台输入(Scanner类)
通过Scanner类获取用户输入时,控制台会一直等待用户的输入,可以输入不同类型的值.本篇博客主要讲解从控制台输入值,即Scanner类的使用方法. Api文档中关于Scanner类的构造方法 键盘输 ...
- RabbitMQ使用注意事项
用ConnectionFactory创建的TCP连接要复用,因为创建新的TCP连接比较耗时. IModel(信道)是轻量级的,可以用时创建. channel.BasicQos(0, 1, false) ...
- 生成器和迭代器_python
一.生成器简介(generator) 在进行较大数据的存储,如果直接存储在列表之中,则会可能造成内存的不够与速度的减慢,因为列表创建完是立即创建并存在的,而在python中生成器(generator) ...
- ansible笔记(13):变量(二)
1.谈一谈[Gathering Facts]:使用setup模块查看 当我们运行一个playbook时,默认都会运行一个名为“[Gathering Facts]”的任务,前文中已经大致的介绍过这个默认 ...
- ubuntu中安装和卸载apache2
1. 安装apache2 安装命令: sudo apt-get install apache2 启动/停止/重启apache2: service apache2 start/stop/restart ...
- jvm 结构分析
jvm区域总体分两类,heap区和非heap区.heap区又分: Eden Space(伊甸园).Survivor Space(幸存者区).Tenured Gen(老年代-养老区). 非heap区又分 ...
- 第一篇,VScode插架以及配置项
由于在开发的时候我们经常因为ESLint规范把自己搞的头晕眼花,修改起来又很浪费时间.所以我特别做个记录,如下代码可以轻松搞的. 工欲善其事必先利器,如果想要在开发的道路上如履平地必须要有得心 ...
- XSS Payload List
标签.事件.属性 xss的攻击原理就是前端被插入了恶意的js代码,下面展示大部分可以执行js的标签.事件.属性: 标签(label) <script> <a> <p> ...
- 「题解」「CF853B」Jury Meeting
目录 题目 思路 代码 题目 传送门 思路 十分巧妙的差分前缀和好题. 题目板块完结之后,我看到有很多处理此题的方法,但总感觉差分前缀和比较巧妙. 首先,通过输入我们可以将每个人能在 \(0\) 号点 ...