创建数据库

创建 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. 三行代码实现垂直居中和cube

    三行代码实现上下居中 position: relative;top: 50%;transform: translateY(-50%); 效果如下:   代码: <!DOCTYPE html> ...

  2. MapReduce异常:java.lang.ClassCastException: interface javax.xml.soap.Text

    MapReduce异常:java.lang.ClassCastException: interface javax.xml.soap.Text java.lang.ClassCastException ...

  3. Linux終端一行命令发送邮件

    近期由于经常需要给别人发送邮件,每次都要打开QQ邮箱觉得非常麻烦.想到Linux终端可以自定义命令,加上python可以实现邮件发送功能,于是自己写了一个终端send + 文件地址的命令. 首先贴上p ...

  4. Java单体应用 - 架构模式 - 02.MVC架构

    原文地址:http://www.work100.net/training/monolithic-architecture-mvc.html 更多教程:光束云 - 免费课程 MVC架构 序号 文内章节 ...

  5. 短路运算符&&、或运算符||的理解

    一.短路运算符&& 1.当只有两个表达式的时候(如a&&b),先看第一个表达式转换成布尔值的结果若为真,那么再看第二个表达式转换成布尔值的结果,就可以返回该表达式的值了 ...

  6. mysql的优化总结

    1,允许数据库适当冗余提高查询效率 2,对于索引的使用要适当

  7. 设置一个数量不定item的位置

    let dis;//item宽度加item之间gap的宽度item.setPosition((i<arr.length/2?-1:1) * Math.abs(i - arr.length/2 + ...

  8. 苹果cms10 官方QQ微信防红防封代码

     代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF- ...

  9. k线中转器

    自动同步服务器k线,将交易日k线存入共享内存,交易平台直接去共享内存取想要的数据. 默认提供期货1.3.5分钟.日线数据.如果想要自定义,可以通过copydata向它发送请求,可以提供任何周期,任何偏 ...

  10. make && make install

    ./configure  --prefix= /usr/local/python3.6.6 make &&  make  install  prefix=/usr/local/pyth ...