JDBC

一、搭建JDBC开发环境

  企业应用程序经常要访问存储在数据库中的信息,因此JDK提供了一个标准接口JDBC(java database connection)来进行数据库访问操作。JDBC为多种数据库提供了统一的访问接口。

  要利用JDBC访问数据库,必须首先在机器上安装一个数据库系统并将数据库的JDBC驱动程序添加到JavaEE应用服务器的Java编译路径之中。要使服务器上的Java EE应用能够通过JDBC访问数据库,必须将数据库的JDBC驱动程序添加到应用服务器的JVM可以访问到的目录下。

二、连接数据库

  可以通过两个类来连接:1,DriverManager 2,Driver

  给定具体的JDBC URL,获取数据库连接的方法是在DriverManager对象上调用getConnection()。

  DriverManager.getConnection(url)

  DriverManager.getConnection(url,user,password)

  

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<%
java.sql.Connection coon=null;
java.lang.String str;
try{
coon=java.sql.DriverManager.getConnection("jdbc:mysql://localhost/test","root","root");
%>
连接数据库成功
<%
}catch(java.sql.SQLException e){
out.print(e.toString());
}finally{
if(coon!=null) coon.close();
}
%>

三、执行SQL语句

  与数据库进行连接后,就可通过执行SQL语句对数据库进行操作。

  Statement stmt=coon.creatStatement();//语句对象

  ResultSet rst=null;//结果集对象;

  String sqlQuery="select * from customer";

  rst=stmt.executeQuery(sqlQuery);

  还有prepareStatment,CallableStatement

四、ResultSet

  光标

  BLOB字段处理

五、RowSet

六、连接池和数据源

 下面是一个简单对话小程序:

package it.Client;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;

public class Server {
    public static void main(String args[]) throws IOException {
        String reces = null;
        int len;
        Socket socket = null;
        OutputStream outputstream = null;
        InputStream inputstream = null;
        byte[] rece = new byte[1000];
        try {
            ServerSocket serversocket = new ServerSocket(9527); // 服务器的套接字,端口为9527
            while (true) {
                socket = serversocket.accept();
                inputstream = socket.getInputStream();// 得到输入流
                outputstream = socket.getOutputStream();// 得到输出流
                len = inputstream.read(rece);// 接受客户端消息
                if (len != 0)
                    reces = new String(rece, 0, len);
                System.out.println(reces);
                BufferedReader bufferreader = new BufferedReader(
                        new InputStreamReader(System.in));
                outputstream.write(("服务器....."+bufferreader.readLine()).getBytes());// 返回给客户端的欢迎信息
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            inputstream.close();
            outputstream.close();
            socket.close();// 记住一定要关闭这些输入,输出流和套接字
        }

    }
}
package it.Client;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.InetAddress;
import java.net.Socket;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

public class Client extends Thread {
    static String ServerIpAddress = "127.0.0.1";// 对方的IP
    static String words = "Hello";// 对方的话
    static String temp = null;
    static InputStreamReader read = null;
    static ExecutorService pool = Executors.newFixedThreadPool(100);

    public static void main(String[] args) throws IOException {

        byte[] serverSay = new byte[1000];// 读取<1KB
        int len = 0;
        Socket s = null;
        OutputStream outputstream = null;
        InputStream inputstream = null;

        // 取得你给他的IP
        System.out.println("请输入对方的IP(默认发给自己):");
        read = new InputStreamReader(System.in);
        try {
            temp = new BufferedReader(read).readLine();
            if (!temp.equals(""))
                ServerIpAddress = temp;
        } catch (IOException e1) {
        }
        // 取得你各他的Message
        System.out.println("请输入想对他(她)说的话----输入QUIT 退出!!:");
        read = new InputStreamReader(System.in);
        while (true) {

            System.out.println("*********");
            BufferedReader bufferreader = new BufferedReader(new InputStreamReader(System.in));
            words = bufferreader.readLine();
            if (words.equals("quit")) {
                System.out.println("EXIT");
                 try {
                     inputstream.close();
                     } catch (IOException e2) {
                     // TODO Auto-generated catch block
                     e2.printStackTrace();
                     }
                     try {
                     outputstream.close();
                     } catch (IOException e1) {
                     // TODO Auto-generated catch block
                     e1.printStackTrace();
                     }
                     try {
                     s.close();
                     } catch (IOException e) {
                     // TODO Auto-generated catch block
                     e.printStackTrace();
                     }// 记住一定要关闭这些输入,输出流和套接字

                System.exit(0);
            }
            temp = "客户端....." + words;
            s = new Socket(InetAddress.getByName(ServerIpAddress), 9527);// 套接字的IP地址和端口号
            outputstream = s.getOutputStream();
            inputstream = s.getInputStream();
            outputstream.write(temp.getBytes());// 向服务器发送消息
            len = inputstream.read(serverSay);// 接受服务器消息
            System.out.println(new String(serverSay, 0, len));// 客户端控制台显示服务器返回的信息
        }
    }

}

alter table tablename add()/drop()

准备baf数据用__OD

  

原文地址:https://www.cnblogs.com/miffy/p/4955846.html