package mysql;
創新互聯服務項目包括蟠龍網站建設、蟠龍網站制作、蟠龍網頁制作以及蟠龍網絡營銷策劃等。多年來,我們專注于互聯網行業,利用自身積累的技術優勢、行業經驗、深度合作伙伴關系等,向廣大中小型企業、政府機構等提供互聯網行業的解決方案,蟠龍網站推廣取得了明顯的社會效益與經濟效益。目前,我們服務的客戶以成都為中心已經輻射到蟠龍省份的部分城市,未來相信會繼續擴大服務區域并繼續獲得客戶的支持與信任!
import java.sql.*;
/**
* @author xys
*/
public class ConnectMysql {
public static Connection getConnection() throws ClassNotFoundException, SQLException {
String url = "jdbc:mysql://localhost:3306/databaseName";
String user = "mysqluser";
String password = "password";
String driverClass = "com.mysql.cj.jdbc.Driver";
Connection connection = null;
Class.forName(driverClass);
try {
connection = DriverManager.getConnection(url, user, password);
} catch (SQLException e) {
e.printStackTrace();
}
if (connection != null) {
System.out.println("數據庫連接成功");
} else {
System.out.println("數據庫連接失敗");
connection.close();
}
return connection;
}
public void getResult() throws ClassNotFoundException, SQLException {
// 實例化 Statement 對象
Statement statement = getConnection().createStatement();
// 要執行的 Mysql 數據庫操作語句(增、刪、改、查)
String sql = "";
// 展開結果集數據庫
ResultSet resultSet = statement.executeQuery(sql);
while (resultSet.next()) {
// 通過字段檢索
int id = resultSet.getInt("id");
String name = resultSet.getString("name");
// 輸出數據
System.out.println("ID : " +id);
System.out.println("name :" + name);
}
// 完成后需要依次關閉
resultSet.close();
statement.close();
getConnection().close();
}
}
程序客戶端代碼也與此類似 客戶端采用循環不斷地讀取用戶鍵盤輸入 每當讀到用戶輸入內容后就將該內容封裝成DatagramPacket數據報 再將該數據報發送出去 接著把DatagramSocket中的數據讀入接收用的DatagramPacket中(實際上是讀入該DatagramPacket所封裝的字節數組中) 客戶端代碼如下
程序清單 codes/ / /UdpClient java
public class UdpClient
{
//定義發送數據報的目的地
public static final int DEST_PORT = ;
public static final String DEST_IP = ;
//定義每個數據報的最大大小為 K
private static final int DATA_LEN = ;
//定義該客戶端使用的DatagramSocket
private DatagramSocket socket = null;
//定義接收網絡數據的字節數組
byte[] inBuff = new byte[DATA_LEN];
//以指定字節數組創建準備接受數據的DatagramPacket對象
private DatagramPacket inPacket =
new DatagramPacket(inBuff inBuff length)
//定義一個用于發送的DatagramPacket對象
private DatagramPacket outPacket = null;
public void init()throws IOException
{
try
{
//創建一個客戶端DatagramSocket 使用隨機端口
socket = new DatagramSocket()
//初始化發送用的DatagramSocket 它包含一個長度為 的字節數組
outPacket = new DatagramPacket(new byte[ ]
InetAddress getByName(DEST_IP) DEST_PORT)
//創建鍵盤輸入流
Scanner scan = new Scanner(System in)
//不斷讀取鍵盤輸入
while(scan hasNextLine())
{
//將鍵盤輸入的一行字符串轉換字節數組
byte[] buff = scan nextLine() getBytes()
//設置發送用的DatagramPacket里的字節數據
outPacket setData(buff)
//發送數據報
socket send(outPacket)
//讀取Socket中的數據 讀到的數據放在inPacket所封裝的字節數組里
socket receive(inPacket)
System out println(new String(inBuff
inPacket getLength()))
}
}
//使用finally塊保證關閉資源
finally
{
if (socket != null)
{
socket close()
}
}
}
public static void main(String[] args)
throws IOException
{
new UdpClient() init()
}
}
上面程序的粗體字代碼同樣也是通過DatagramSocket發送 接收DatagramPacket的關鍵代碼 這些代碼與服務器的代碼基本相似 而客戶端與服務器端的唯一區別在于 服務器所在IP地址 端口是固定的 所以客戶端可以直接將該數據報發送給服務器 而服務器則需要根據接收到的數據報來決定將 反饋 數據報的目的地
讀者可能會發現 使用DatagramSocket進行網絡通信時 服務器端無須 也無法保存每個客戶端的狀態 客戶端把數據報發送到服務器后 完全有可能立即退出 但不管客戶端是否退出 服務器無法知道客戶端的狀態
當使用UDP協議時 如果想讓一個客戶端發送的聊天信息可被轉發到其他所有客戶端則比較困難 可以考慮在服務器使用Set來保存所有客戶端信息 每當接收到一個客戶端的數據報之后 程序檢查該數據報的源SocketAddress是否在Set集合中 如果不在就將該SocketAddress添加到該Set集合中 但這樣一來又涉及一個問題 可能有些客戶端發送一個數據報之后永久性地退出了程序 但服務器端還將該客戶端的SocketAddress保存在Set集合中……總之 這種方式需要處理的問題比較多 編程比較煩瑣 幸好Java為UDP協議提供了MulticastSocket類 通過該類可以輕松實現多點廣播
返回目錄 瘋狂Java講義
編輯推薦
Java程序性能優化 讓你的Java程序更快 更穩定
新手學Java 編程
Java程序設計培訓視頻教程
lishixinzhi/Article/program/Java/hx/201311/27260
我自己寫的代碼:
import?java.io.IOException;
import?java.net.DatagramPacket;
import?java.net.DatagramSocket;
import?java.net.InetAddress;
import?java.net.SocketException;
import?java.net.UnknownHostException;
public?class?UdpRecvDemo
{
public?static?void?main(String[]?args)?throws?IOException
{
Recv();
}
public?static?void?Recv()?throws?IOException
{
System.out.println("接受開始......");
DatagramSocket?ds?=?new?DatagramSocket(3388);
while(true)
{
byte[]buf?=?new?byte[1024];
DatagramPacket?dp?=?new?DatagramPacket(buf,buf.length);
ds.receive(dp);
System.out.println(ds);
String?ip?=?dp.getAddress().getHostAddress();
int?port?=?dp.getPort();
String?text?=?new?String(dp.getData(),0,dp.getLength());
if(text.equals("exit"))
{
System.out.println(ip+"退出會話......");
break;
}
System.out.println(ip+":"+port+"===me?"+text);
}
ds.close();
}
}
public?class?Util{
public?static?void?main(String[] args){
java.util.Scanner?sc?=?new?java.util.Scanner(System.in);
String[] arr =?new?String[5];
for(int?i =?0; i arr.length; i++){
arr[i] = sc.next();
}
//這里使用util.Arrays的代碼輸出數組
System.out.println(java.util.Arrays.toString(arr));
}
}
擴展資料:
java中接受用戶輸入的其他方法
package 控制臺接受輸入;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.nio.Buffer;
import java.util.Scanner;
public class InputCode {
public static void main(String[] args) throws IOException {
/*
* Scanner類中的方法
* 完美
*/
Scanner input =new Scanner(System.in);
System.out.println("please input your name ");
String name=input.nextLine();
System.out.println(name);
/*
* 缺點:只能接受用戶輸入的一個字符
*/
System.out.println("enter your name");
char name1 = 0;
try {
//inputstream中的read()方法放回輸入流中下一個字符
name1 = (char) System.in.read();
} catch (IOException e) {
e.printStackTrace();
}
System.out.println(name1);
/*
* InputStreamReader和BufferedReader方法
* 優點:可以獲取字符串
* 缺點:獲取的是int或者string人需要強轉
*/
//通常,Reader 所作的每個讀取請求都會導致對底層字符或字節流進行相應的讀取請求。因此,建議用 BufferedReader
//包裝所有其 read() 操作可能開銷很高的 Reader(如 FileReader 和 InputStreamReader)。例如,
//BufferedReader in= new BufferedReader(new FileReader("foo.in"));
System.out.println("enter your name");
InputStreamReader input1=new InputStreamReader(System.in);
BufferedReader in=new BufferedReader(input1);
String name2=in.readLine();
System.out.println(name2);
}
}
action接收jsp傳來的值,主要的方式是將數據放在request對象中,然后在另一個頁面拿到這個數據即可。
代碼如下:
A.jsp :通過post 和get、連接都可以傳
a標簽連接的:
a herf='B.jsp?name=%=name%'傳遞到B頁面/aB.jsp :
B頁面通過如下代碼接收:
%String name=request.getParameter("name");out.println("接收到:"+name);%
本文名稱:java接收數據代碼 java輸入數據代碼
文章出自:http://m.kartarina.com/article36/hgjgpg.html
成都網站建設公司_創新互聯,為您提供虛擬主機、網站改版、網頁設計公司、網站內鏈、云服務器、做網站
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯