Ⅰ 引入包的時候,import java.sql.*和分別引入有區別么
java中import用法單類型導入(single-type-import),例如import java.io.File;按需類型導入(type-import-on-demand),例如 import java.io.*;關於這兩種導入類型大家各有所愛,眾說紛紜。這里分析一下這兩種導入類型的大致工作原理供大家參考。單類型導入比較好理解,僅僅導入一個public類或者介面。而對於按需類型導入,有人誤解為導入一個包下的所有類,其實不然,看名字就知道,他只會按需導入,也就是說它並非導入整個包,而僅僅導入當前類需要使用的類。既然如此是不是就可以放心的使用按需類型導入呢?非也,非也。因為單類型導入和按需類型導入對類文件的定位演算法是不一樣的。java編譯器會從啟動目錄(bootstrap),擴展目錄(extension)和用戶類路徑下去定位需要導入的類,而這些目錄進僅僅是給出了類的頂層目錄。編譯器的類文件定位方法大致可以理解為如下公式:頂層路徑名 \ 包名 \ 文件名.class = 絕對路徑對於單類型導入很簡單,因為包明和文件名都已經確定,所以可以一次性查找定位。對於按需類型導入則比較復雜,編譯器會把包名和文件名進行排列組合,然後對所有的可能性進行類文件查找定位。例如:package com;import java.io.*;import java.util.*;當你的類文件中用到了File類,那麼可能出現File類的地方如下File \\ File類屬於無名包,就是說File類沒有package語句,編譯器會首先搜索無名包com.File \\ File類屬於當前包java.lang.File \\編譯器會自動導入java.lang包java.io.Filejava.util.File需要注意的地方就是,編譯器找到java.io.File類之後並不會停止下一步的尋找,而要把所有的可能性都查找完以確定是否有類導入沖突。假設此時的頂層路徑有三個,那麼編譯器就會進行3*5=15次查找。了解以上原理之後,我們可以得出這樣的結論:按需類型導入是絕對不會降低Java代碼的執行效率的,但會影響到Java代碼的編譯速度。查看JDK的源代碼就知道SUN的軟體工程師一般不會使用按需類型導入。因為使用單類型導入至少有以下兩點好處:1。提高編譯速度。2。避免命名沖突。(例如:當你import java.awt.*;import java.util.*後,使用List的時候編譯器將會出編譯錯誤)當然,使用單類型導入會使用你的import語句看起來很長。
參考:http://..com/link?url=yH2M-dwdGi__Rv8Ph2XrOP5vrbLXEQSW3mGjBVC23-baFSxq
我也學習了,謝謝
Ⅱ 在eclipse中編寫import java.sql.*顯示黃色的波浪線
引入了相關類,但是代碼中沒有使用相關的類,所以eclipse檢測結果為引入了冗餘包,所以有淡黃色線,但是不影響程序的編譯和運行
Ⅲ myeclipse中import="java.sql.*"報錯不能被包含這是為什麼
這個是沒配置JDK運行環境的問題,導致找不到指定的包:
首先伺服器配置JDK,右鍵(項目)--build path --configure path
在library選項下面選 JRE System Library 點擊右邊的「edit(編輯)」,添加jdk(伺服器配置的)
Ⅳ package Bean; import java.sql
不是的 ,資料庫沒指定,當然也可用SQLServer
java.sql 說的的 *.java 格式的文件所存放的路徑。
package Bean; import java.sql 整個這句話引入了兩個路徑所包含的java 類。
Ⅳ import java.sql.SQLException; public class JDBCHelloWorld { public static void main(String[] args) {
你看看Console端的提示,我估計你是沒有導入mysql-connector-java.jar包,或者你沒有開啟mysql服務,導致無法連接到資料庫或者無法登陸資料庫伺服器。
Ⅵ com.mysql.jdbc和java.sql應該import哪個解決方案
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Connection;
import java.sql.Statement;
public class MysqlDemo {
public static void main(String[] args) throws Exception {
Connection conn = null;
String sql;
// MySQL的JDBC URL編寫方式:jdbc:mysql://主機名稱:連接埠/資料庫的名稱?參數=值
// 避免中文亂碼要指定useUnicode和characterEncoding
// 執行資料庫操作之前要在資料庫管理系統上創建一個資料庫,名字自己定,
// 下面語句之前就要先創建javademo資料庫
String url = "jdbc:mysql://localhost:3306/javademo?"
+ "user=root&password=root&useUnicode=true&characterEncoding=UTF8";
try {
// 之所以要使用下面這條語句,是因為要使用MySQL的驅動,所以我們要把它驅動起來,
// 可以通過Class.forName把它載入進去,也可以通過初始化來驅動起來,下面三種形式都可以
Class.forName("com.mysql.jdbc.Driver");// 動態載入mysql驅動
// or:
// com.mysql.jdbc.Driver driver = new com.mysql.jdbc.Driver();
// or:
// new com.mysql.jdbc.Driver();
System.out.println("成功載入MySQL驅動程序");
// 一個Connection代表一個資料庫連接
conn = DriverManager.getConnection(url);
// Statement裡面帶有很多方法,比如executeUpdate可以實現插入,更新和刪除等
Statement stmt = conn.createStatement();
sql = "create table student(NO char(20),name varchar(20),primary key(NO))";
int result = stmt.executeUpdate(sql);// executeUpdate語句會返回一個受影響的行數,如果返回-1就沒有成功
if (result != -1) {
System.out.println("創建數據表成功");
sql = "insert into student(NO,name) values('2012001','陶偉基')";
result = stmt.executeUpdate(sql);
sql = "insert into student(NO,name) values('2012002','周小俊')";
result = stmt.executeUpdate(sql);
sql = "select * from student";
ResultSet rs = stmt.executeQuery(sql);// executeQuery會返回結果的集合,否則返回空值
System.out.println("學號\t姓名");
while (rs.next()) {
System.out
.println(rs.getString(1) + "\t" + rs.getString(2));// 入如果返回的是int類型可以用getInt()
}
}
} catch (SQLException e) {
System.out.println("MySQL操作錯誤");
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
} finally {
conn.close();
}
}
}
Ⅶ import java.sql.*; public class jdbctest { private static String stuno; public static void main(St
com.mysql.jdbc.Driver
Ⅷ 高手幫忙import java.sql.ResultSet是什麼意思啊
導入一個類,類名是java.sql.ResultSet(注意,前面是包名)
ResultSet,顧名思義,是結果集的意思。
ResultSet其實是一個介面,由Statement(句柄對象).getResultSet()方法返回它ResultSet的實現類的對象。
ResultSet的實現類到底是干什麼的呢?
它是用來存放從資料庫里取出的結果集的對象。(其實不是存放數據,不過你可以暫時這么想像)。
ResultSet有一個游標指針,通過控制它你可以得到資料庫里取出來的數據的任何一行中的任何一個單元。
數據集可以想像一張二維表(類似於Excel那樣的表格)
ResultSet一開始的游標在表頭部(注意不是第一行,是第一行的上面一行),用next()方法移向下一行。用getXXX(x)方法取得這一行的某個元素。
x是取第幾列的意思。
注意getXXX只是一個代替,具體有如下幾種常用方法
getString
getLong
getInteger
getFloat
getDate
getTime
getObject
...
每一種取出來都返回成get後面對對應的類型(當然要保證數據就是那種類型或者可以轉換成那種類型)
這時候你可以用一個二維循環取出它全部的數據
具體用法,請參考JDK幫助文檔。
Ⅸ the import java.sql is never used是怎麼回事啊
說明你的程序引用了java.sql這個包,但是沒有用到裡面的類
應該是IDE報給你的吧?
Ⅹ import="java.sql.*"和import="java.util.*" 有什麼區別
分別是引入java標准庫中不同的包,這樣在jsp中可以直接用這些包中的類。
java.sql.*中主要是一些資料庫相關的類,如Connection, Driver, Statement, ResultSet等。
java.util.*中主要是一些工具類,如Calender, Date, Collection, HashTable, Vector, 等等。
注意java.sql中也有個Date,如果是要從db中取一個日期類型的數據,那麼得用java.sql中的那個。
如果兩個都import了,那麼在jsp中,可以寫全名,如java.sql.Date。