JDBC MySQL 多表关联查询查询

public static void main(String[] args) throws Exception{
        Class.forName("com.mysql.jdbc.Driver");
        Connection conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/mydb","root","");
        String sql ="select * from info";
     //关联查询时,可以直接join on.但是效率不高
     //String sql ="select info.Code,info.Name,info.Sex,nation.Name sb ,info.Birthday from info join nation on info.Nation=nation.Code ";
     
        Statement state = conn.createStatement();
        ResultSet rs =  state.executeQuery(sql);
        while(rs.next()){//判断是否还有下一行          
            System.out.print(rs.getString(1)+"\t");
            System.out.print(rs.getString(2)+"\t");
            System.out.print(rs.getBoolean(3)?"男\t":"女\t"); //?:简单判断
            System.out.print(minzu(rs.getString(4))+"\t");
            System.out.println(bianhuan(rs.getDate(5)));

        }
        conn.close();
    }
    //关联查询时,也能写个方法再查一遍另一个表,然后赋给原来的列
    private static String minzu(String m)throws Exception {
        String mz= "";//定义空字符串
        Class.forName("com.mysql.jdbc.Driver");
        Connection conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/mydb","root","");
        Statement sta = conn.createStatement();
        String sql = "select * from nation where code = ‘"+m+"‘";
        ResultSet rs = sta.executeQuery(sql);
        if(rs.next() == true){ //有对应的sql语句的时候,才执行

            mz = rs.getString(2);//另一个表的的列赋值给mz
        }
        conn.close();
        return mz;   //返回mz
    }

    //日期时间转换
    public static String bianhuan(Date d){
        SimpleDateFormat f = new SimpleDateFormat("yyyy年mm月dd日");
        return  f.format(d);
    }

结果:

时间: 2024-10-14 21:11:34

JDBC MySQL 多表关联查询查询的相关文章

MySQL多表关联查询效率高点还是多次单表查询效率高,为什么?

MySQL多表关联查询效率高点还是多次单表查询效率高,为什么? <阿里巴巴JAVA开发手册>里面写超过三张表禁止join 这是为什么?这样的话那sql要怎么写? 原文地址:https://www.cnblogs.com/gotodsp/p/10090382.html

hibernate的基础学习--多表关联数据查询

Hibernate共提供4种多表关联数据查询方式 OID数据查询+OGN数据查询方式 HQL数据查询方式 QBC数据查询方式 本地SQL查询方式(hibernate很少用) 1.OID数据查询+OGN数据查询方式 1 public class TestOID_OGN { 2 3 /** 4 * 什么时候时候什么时候发送 5 */ 6 @Test 7 public void findUser() { 8 SessionFactory sf = H3Util.getSessionFactory();

oracle解决多表关联分组查询问题

做了一个功能需要分组查询,同时查询A表分组查询的ID需要关联B表的数据,本来想两个表关联查询,但是报group by 语法不正确.所以做了以下修改. select count(*), cindexid,(select vindexcode from comindex where pk_index =cindexid) as vindexcode ,iquesttype from rqt_examquest where pk_examquest in (    select cexamquesti

MySQL将表a中查询的数据插入到表b中

MySQL将表a中查询的数据插入到表b中 如果表b存在 insert into b select * from a; 如果表b不存在 create table b as select * from a; 扩展: 将b表中的某写字段值插入到a表中 insert into a (userID,userName) select b.userID,b.userName from tr_ajax_chat_messages; 将a表和b表userID相等的值保存到a表 update a set a.use

MySQL多表关联数据同时删除

MySQL多表关联时的多表删除: DELETE t1, t2FROM    t1LEFT JOIN t2 ON t1.id = t2.idWHERE    t1.id = 25 原文地址:https://www.cnblogs.com/leeego-123/p/10821106.html

MySQL多表关联查询与存储过程

1.多表关联查询 --  **************关联查询(多表查询)**************** -- 需求:查询员工及其所在部门(显示员工姓名,部门名称) -- 1.1 交叉连接查询(不推荐.产生笛卡尔乘积现象:4 * 4=16,有些是重复记录) SELECT empName,deptName FROM employee,dept; -- 需求:查询员工及其所在部门(显示员工姓名,部门名称) -- 多表查询规则:1)确定查询哪些表   2)确定查询哪些字段   3)表与表之间连接条件

[MySQL]多表关联查询技巧

示例表A: author_id author_name 1 Kimmy 2 Abel 3 Bill 4 Berton 示例表B: book_id author_id start_date end_date 9 1 2017-09-25 21:16:04 2017-09-25 21:16:06 10 3     11 2 2017-09-25 21:21:46 2017-09-25 21:21:47 12 1     13 8     示例表C: order_id book_id price or

Mysql多表关联查询,有索引和没索引的差距

下面简单的用个实例来介绍,索引在多表查询中有多关键! 一.没有索引时同步数据: 1.查询代码如下(关联了九次): 2.运行耗时(2分多钟,数据大概只有一万条): 1 Start sync MysqlData:---------------------------时间:2016-12-01 08:50:00 2 Success sync MysqlData:-------------------------同步数据成功!:2016-12-01 08:52:37 二:有索引时同步数据 1.给数据库脚

如何用ASPxGridView绑定多表关联的查询结果

本文提供一种解决方案:数据源用XpoDatasource实现.首先在数据库中建立一个多表查询的结果集的视图,然后在项目中定义一个结构体,对应视图 的列,接下来定义一个继承于XPLiteObject的实体类,这个类就是XpoDatasource的TypeName属性值. 定义的结构体如下: public struct SVDefect { [Persistent("TaskId")] public Guid TaskId; [Persistent("Defect")]