1.JdbcUtil

package com.yfs.javase.jdbc;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement; public class JdbcUtil {
private static final String driver = "sun.jdbc.odbc.JdbcOdbcDriver";
private static final String url = "jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=school.mdb"; // 获取连接方法
public static Connection getConnection() {
Connection conn = null;
// 连接数据库
try {
Class.forName(driver);
conn = DriverManager.getConnection(url);
} catch (ClassNotFoundException e) {
System.out.println("驱动类找不到...");
} catch (SQLException e) {
System.out.println("连接数据库失败...");
}
return conn;
} // 释放连接
public static void release(ResultSet rs, Statement st, Connection conn) {
try {
if (rs != null) {
rs.close();
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if (st != null) {
st.close();
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if(conn != null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
} }

2.连接信息:jdbc.properties文件

##oracle\u9A71\u52A8
jdbc.driver = oracle.jdbc.OracleDriver
jdbc.url = jdbc:oracle:thin:@YEMA203-13:1521:YFS_DB
jdbc.username = scott
jdbc.password = tiger ##SQL Server 2005
#jdbc.driver = com.microsoft.sqlserver.jdbc.SQLServerDriver
#jdbc.url = jdbc:sqlserver://localhost:1434;databaseName=YFS_DB
#jdbc.username = sa
#jdbc.password = ##MySQL
#jdbc.driver = com.mysql.jdbc.Driver
#jdbc.url = jdbc:mysql://localhost:3306/test
#jdbc.username = root
#jdbc.password = root ##Access
#jdbc.driver = sun.jdbc.odbc.JdbcOdbcDriver
#jdbc.url = jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=YFS_DB.mdb "... DBQ="+application.getRealPath("/Data/ReportDemo.mdb")
#jdbc.username =
#jdbc.password =

3.JdbcDemo1测试sql执行(增,查,改,删)

package com.yfs.javase.jdbc;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement; public class JdbcDemo1 { public static void main(String[] args) throws Exception {
//createTable();
//insertData();
//upData();
//deleteData();
create();
} public static void create() throws Exception {
Connection conn = JdbcUtil.getConnection();
Statement st = conn.createStatement();
// 执行的sql语句
String sql = "create table stu(id int primary key, name char(30), score int)";
// 执行
st.execute(sql);
// 关闭连接
JdbcUtil.release(null, st, conn);
System.out.println("表创建成功..."); } public static void deleteData() throws Exception {
Connection conn = JdbcUtil.getConnection();
Statement st = conn.createStatement();
// 执行的sql语句
String sql = "delete from stu where id=102";
// 执行
st.execute(sql);
// 关闭连接
JdbcUtil.release(null, st, conn);
System.out.println("删除数据成功..."); } public static void upData() throws Exception {
Connection conn = JdbcUtil.getConnection();
Statement st = conn.createStatement();
// 执行的sql语句
String sql = "update stu set score=80 where id=102";
// 执行
st.execute(sql);
// 关闭连接
st.close();
conn.close();
System.out.println("更新数据成功..."); } public static void insertData() throws Exception {
// 加载驱动
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
// url
String url = "jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=E:/school.mdb";
// 获取连接
Connection conn = DriverManager.getConnection(url);// url 数据库地址
// 执行对象
Statement st = conn.createStatement();
// 执行的sql语句
//String sql = "insert into stu(id,name,score) values(101,'野马',98)";
String sql = "insert into stu(id,name,score) values(102,'变形金刚4',65)";
// 执行
st.execute(sql);
// 关闭连接
st.close();
conn.close();
System.out.println("插入数据成功..."); } public static void createTable() throws Exception {
// 加载驱动
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
// url
String url = "jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=E:/school.mdb";
// 获取连接
Connection conn = DriverManager.getConnection(url);// url 数据库地址
// 执行对象
Statement st = conn.createStatement();
// 执行的sql语句
String sql = "create table stu(id int primary key, name char(30), score int)";
// 执行
st.execute(sql);
// 关闭连接
st.close();
conn.close();
System.out.println("数据库操作成功...");
} }

4.Server3

package com.yfs.javase;

import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Scanner; public class Server3 { /**
* 启动服务 监听端口
*/
public static void main(String[] args) throws Exception {
ServerSocket server = new ServerSocket(3000);
// 启动
System.out.println("服务器启动,监听3000端口...");
final Socket socket = server.accept();// 监听是否有其他主机连接
String other = socket.getInetAddress().getHostAddress();
System.out.println(other + "请求连接...");
// 接收信息 启动多线程
new Thread(new Runnable() {
@Override
public void run() {
InputStream in = null;
BufferedReader read = null;
while (true) {
try {
in = socket.getInputStream();
read = new BufferedReader(new InputStreamReader(in));
String msg = read.readLine();
if (msg != null) {
System.out.println("客户端说 : " + msg);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}).start(); // 发送信息 获取输出流
OutputStream out = socket.getOutputStream();
BufferedOutputStream buf = new BufferedOutputStream(out);
PrintWriter pw = new PrintWriter(new OutputStreamWriter(buf),true);
pw.println("这是服务器发送的信息....");
Scanner scan = new Scanner(System.in);
String msg = scan.next();
while (!msg.equals("bye")) {
pw.println(msg);
msg = scan.next();
}
pw.close();
buf.close();
out.close();
System.out.println("信息发送完成"); } }

4.Client3

package com.yfs.javase;

import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.Socket;
import java.util.Scanner; public class Client3 { /**
* @param args
*/
public static void main(String[] args) throws Exception {
final Socket socket = new Socket("192.168.1.30", 3000);
// 接收信息
new Thread(new Runnable() {
@Override
public void run() {
InputStream in = null;
BufferedReader read = null;
try {
in = socket.getInputStream();
read = new BufferedReader(new InputStreamReader(in));
String msg = read.readLine();
while (msg != null) {
System.out.println("服务器说:" + msg);
msg = read.readLine();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}).start(); // 发送信息
OutputStream out = socket.getOutputStream();
PrintWriter pw = new PrintWriter(new OutputStreamWriter(out), true);
Scanner scan = new Scanner(System.in);
String msg = scan.next();
while (!msg.equals("bye")) {
pw.println(msg);
msg = scan.next();
}
out.close();
pw.close(); } }

java新手笔记34 连接数据库的更多相关文章

  1. JAVA新手笔记 Intent对象和Bundle对象

    Intent对象和Bundle对象 功能主要是在 MainActivity中定义了2个EditText,当用户输入内容,把他传入到第二个活动, 自己新创的活动中,MyActivity中 放在MainA ...

  2. java新手笔记33 多线程、客户端、服务器

    1.Mouse package com.yfs.javase; public class Mouse { private int index = 1; private boolean isLive = ...

  3. java新手笔记32 jdk5新特性

    1.for package com.yfs.javase; import java.awt.Color; import java.util.Calendar; import java.util.Has ...

  4. java新手笔记31 集合实现类

    Person类: package com.yfs.javase; import java.util.Date; public class Person implements Comparable { ...

  5. java新手笔记30 集合

    1.set/list package com.yfs.javase; import java.util.ArrayList; import java.util.Collection; import j ...

  6. java新手笔记29 读取文件

    1.读取文件 package com.yfs.javase; import java.io.FileInputStream; import java.io.FileReader; import jav ...

  7. java新手笔记28 文件

    1.目录.文件 package com.yfs.javase; import java.io.File; public class FileDemo1 { /** * File 目录 文件 */ pu ...

  8. java新手笔记27 监听器类

    1.外部类监听 package com.yfs.javase; import java.awt.Button; import java.awt.FlowLayout; import java.awt. ...

  9. java新手笔记26 Frame

    0.Calculater package com.yfs.javase; import java.awt.BorderLayout; import java.awt.Button; import ja ...

随机推荐

  1. Codeforces Gym 100610 Problem H. Horrible Truth 瞎搞

    Problem H. Horrible Truth Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/gym/1006 ...

  2. 为TListBox添加水平滚动条

    为TListBox添加水平滚动条 实例说明 TListBox组件是一个较为常用的列表组件,在默认情况下该组件是没有水平滚动条的,所以文字过长会显示不完全,在文字较短的情况下还可以,但是如果一行的文字很 ...

  3. Android下将图片载入到内存中

    Android的系统的标准默认每一个应用程序分配的内存是16M.所以来说是很宝贵的,在创建应用的时候要尽可能的去节省内存,可是在载入一些大的文件的时候,比方图片是相当耗内存的,一个1.3M的图片,分辨 ...

  4. currentTarget 与 Target 的区别

    在一般情况下,target与currentTarget指向的是同一个对象.一般情况是指我们只对某一个独立的mc添加侦听器.如下: var mc:Sprite=new Sprite();addChild ...

  5. Python学习 之 流程控制

    1.if else 语法:if expression1: statement1(s) elif expression2: statement2(s) else: statement3(s) 2.for ...

  6. 使用Areas(区域)分离ASP.NET MVC 项目

    在使用Areas区域时,如果使用默认路由表,将造成路由表冲突,这种情况需要修改一下区域内<区域名称>AreaRegistration.cs和/App_Start/RouteConfig.a ...

  7. VBA Excel 打印

    1. 设置 页边距.打印区域 With .PageSetup .HeaderMargin = Application.CentimetersToPoints(0.5) .LeftMargin = Ap ...

  8. Android检测是否安装了指定应用

    检测是否安装了指定应用的方法如下: private boolean isAvilible( Context context, String packageName ) { final PackageM ...

  9. 数据库SQLite应用

    1.导入SQLite库和头文件 #import <sqlite3.h> 2.打开数据库,如果在打开的时候遇到了问题,则关闭它并抛出一个断言错误. sqlite3 * database; i ...

  10. 修改MySQL的时区

    修改MySQL的时区,涉及参数time_zone 首先需要查看mysql的当前时区,用time_zone参数 ? 1 2 3 4 5 6 7 8 9 [html] mysql> show var ...