创建数据库

创建 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查询数据库的更多相关文章

  1. java查询数据库数据时报错antlr/ANTLRException

    在集成SH项目时,写hql 语句总是查不出东西,而且报 java.lang.NoClassDefFoundError: antlr/ANTLRException,郁闷了很久在网上终于找到了答案,原来是 ...

  2. 【助教】Java获取数据库数据展示

    本文将给出一个最简单的Java查询数据库中一张表的数据并将查询结果展示在页面的例子. 实际上,我们要解决以下两个问题: Java与数据库交互(以JDBC为例) 数据展示在前台页面(以Servlet+J ...

  3. Java 通过JDBC查询数据库表结构(字段名称,类型,长度等)

    Java 通过JDBC查询数据库表结构(字段名称,类型,长度等) 发布者:唛唛家的豆子   时间:2012-11-20 17:54:02   Java 通过JDBC查询数据库表结构(字段名称,类型,长 ...

  4. Java 8:如何使用流方式查询数据库?

    Speedment 是使用 ORM 方式操作数据库的一种选择,以前我们需要100行操作数据库的 Java 代码,在 Java 8中,可能只需要一行代码. 在90年代末,我使用 Java 开发数据库应用 ...

  5. [置顶] oracle 快速查询数据库各种信息、及转换对应java代码

    1 查询表中数据量 select 'select '||''''||t.TABLE_NAME||''''||' as table_name, count(*) from '|| t.TABLE_NAM ...

  6. JAVA与数据库MySQL相连接

    JDBC(Java数据库连接体系结构): 是Java实现数据库访问的应用程序编程接口,主要功能是管理存放在数据库中的数据.通过接口对象,应用程序可以完成与数据库的连接,执行SQL语句,从数据库中获取结 ...

  7. mySql事务_ _Java中怎样实现批量删除操作(Java对数据库进行事务处理)?

      本文是记录Java中实现批量删除操作(Java对数据库进行事务处理),在开始之前先来看下面这样的一个页面图: 上面这张图片显示的是从数据库中查询出的出租信息,信息中进行了分页处理,然后每行的前面提 ...

  8. Java查询大文本

    但JAVA本身缺少相应的类库,需要硬编码才能实现结构化文件计算,代码复杂且可读性差,难以实现高效的并行处理. 使用免费的集算器可以弥补这一不足.集算器封装了丰富的结构化文件读写和游标计算函数,书写简单 ...

  9. 【java 获取数据库信息】获取MySQL或其他数据库的详细信息

    1.首先是 通过数据库获取数据表的详细列信息 package com.sxd.mysqlInfo.test; import java.sql.Connection; import java.sql.D ...

随机推荐

  1. windows环境下安装JDK

    一.环境准备 Windows10 jdk-9.0.1 二.下载并安装JDK 到Java的官网下载JDK安装包,地址:http://www.oracle.com/technetwork/java/jav ...

  2. PHP 实现微信小程序敏感图片、内容检测接口

    主要是为了调用微信小程序msgSecCheck.imgSecCheck接口. 先附上小程序接口说明文档地址:https://developers.weixin.qq.com/miniprogram/d ...

  3. Java基础面试题总结二

    1,什么是字符串常量池? 字符串的分配,和其他的对象分配一样,耗费高昂的时间与空间代价.JVM为了提高性能和减少内存开销,在实例化字符串常量的时候进行了一些优化.为 了减少在JVM中创建的字符串的数量 ...

  4. 题解【洛谷P1725】琪露诺

    题面 典型的单调队列优化\(\text{DP}\)题. 不难想到设\(dp_i\)表示以\(i\)结尾能得到的最大冰冻指数. 这样设的转移方程也很简单:\(dp_i=\max\left\{ dp_j+ ...

  5. mysql慢日志分析pt-query-digest

    一.pt-query-digest 安装pt-query-digest yum install perl-DBI yum install perl-DBD-MySQL yum install perl ...

  6. js -- 日期时间格式化

    /** * js日期时间格式化 * @param date 时间读对象 * @param format 格式化字符串 例如:yyyy年MM月dd日 hh时mm分ss秒 * @returns {stri ...

  7. opencv学习之颜色空间转换cvtColor()

    我们生活中大多数看到的彩色图片都是RGB类型,但是在进行图像处理时,需要用到灰度图.二值图.HSV.HSI等颜色制式,opencv提供了cvtColor()函数来实现这些功能.首先看一下cvtColo ...

  8. java+selenium打开浏览器实现后台静默运行

    简介:java selenium搭建无界面浏览器 PhantomJS是一个基于Webkit的"无界面"(headless)浏览器,它会把网站加载到内存并执行页面上的JavaScri ...

  9. js/jquery加入的select value显示不正确问题

    最近有需求,通过js添加select到表格中,虽然通过append加入的代码中select的value为2 但是实际显示出来的结果不对,百度之后没有找到答案,自己想了个办法 var selects = ...

  10. ajax异步获取请求,获得json数组后对数组的遍历

    如果响应数据是以html的形式发出来的,即 response.setContentType("text/html;charset=utf-8"); 那么一般用下面这种方式,但是要注 ...