首页 > 代码库 > JDBC MySQL 多表关联查询查询
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); }
结果:
JDBC MySQL 多表关联查询查询
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。