java mysql作用是什么意思_java查询mysql数据库的有什么作用

匿名用户

1级

2017-01-03 回答

远标java老师说过MYSQL中没有Oracle类似的CONNECT BY 语句,如果要实现树状查询的话,如果是5.0以上版本可以使用存储过程:

DELIMITER $$

DROP PROCEDURE IF EXISTS `sx_finance`.`pro_channel_class`$$

CREATE DEFINER=`root`@`localhost` PROCEDURE `pro_channel_class`(in parentid int)

begin

declare level smallint default 0;

declare cnt int default 0;

create temporary table tt(class_id int,class_name varchar(20),PARENT_ID int,level smallint,sort varchar(1000));

create temporary table tt2(class_id int,class_name varchar(20),PARENT_ID int,level smallint,sort varchar(1000));

insert into tt select class_id,class_name,PARENT_ID,level,cast(class_id as char) from CHANNEL_CLASS where PARENT_ID=parentid;

select row_count() into cnt;

insert into tt2 select * from tt;

while cnt>0 do

set level=level+1;

truncate table tt;

insert into tt select a.class_id,a.class_name, a.PARENT_ID,level,concat(b.sort,a.class_id) from CHANNEL_CLASS a,tt2 b where a.PARENT_ID=b.class_id and b.level=level-1;

select row_count() into cnt;

insert into tt2 select * from tt;

end while;

select class_id, concat(space(a.level*2),'|---',a.class_name) class_name from tt2 a order by sort;

drop table tt;

drop table tt2;

end$$

DELIMITER ;

要不就只能用JAVA程序实现

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实现跨数据库关联运算的简便方法是使用Java的JDBC技术以及SQL语句的“数据库名.表名”语法,可以在SQL语句直接指定不同数据库的表进行关联查询和运算。 具体实现步骤如下: 1. 在Java程序通过JDBC连接到不同的数据库。 2. 编写SQL语句,使用“数据库名.表名”语法指定不同数据库的表进行关联查询和运算。 3. 执行SQL语句,获取查询结果。 下面是一个简单的示例代码: ```java import java.sql.*; public class CrossDatabaseQuery { public static void main(String[] args) { Connection conn1 = null; Connection conn2 = null; try { // 连接到第一个数据库 String url1 = "jdbc:mysql://localhost:3306/db1"; String user1 = "root"; String password1 = "root"; conn1 = DriverManager.getConnection(url1, user1, password1); // 连接到第二个数据库 String url2 = "jdbc:mysql://localhost:3306/db2"; String user2 = "root"; String password2 = "root"; conn2 = DriverManager.getConnection(url2, user2, password2); // 执行SQL语句 String sql = "SELECT t1.id, t2.name FROM db1.table1 t1 JOIN db2.table2 t2 ON t1.id = t2.id"; Statement stmt = conn1.createStatement(); ResultSet rs = stmt.executeQuery(sql); // 处理查询结果 while (rs.next()) { int id = rs.getInt("id"); String name = rs.getString("name"); System.out.println("id: " + id + ", name: " + name); } // 关闭连接和资源 rs.close(); stmt.close(); conn1.close(); conn2.close(); } catch (SQLException e) { e.printStackTrace(); } } } ``` 以上示例代码,在SQL语句使用了“db1.table1”和“db2.table2”语法,指定了不同数据库的表进行关联查询。在执行SQL语句之前,需要通过JDBC连接到不同的数据库。最后处理查询结果并关闭连接和资源。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值