java新手笔记34 连接数据库
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 连接数据库的更多相关文章
- JAVA新手笔记 Intent对象和Bundle对象
Intent对象和Bundle对象 功能主要是在 MainActivity中定义了2个EditText,当用户输入内容,把他传入到第二个活动, 自己新创的活动中,MyActivity中 放在MainA ...
- java新手笔记33 多线程、客户端、服务器
1.Mouse package com.yfs.javase; public class Mouse { private int index = 1; private boolean isLive = ...
- java新手笔记32 jdk5新特性
1.for package com.yfs.javase; import java.awt.Color; import java.util.Calendar; import java.util.Has ...
- java新手笔记31 集合实现类
Person类: package com.yfs.javase; import java.util.Date; public class Person implements Comparable { ...
- java新手笔记30 集合
1.set/list package com.yfs.javase; import java.util.ArrayList; import java.util.Collection; import j ...
- java新手笔记29 读取文件
1.读取文件 package com.yfs.javase; import java.io.FileInputStream; import java.io.FileReader; import jav ...
- java新手笔记28 文件
1.目录.文件 package com.yfs.javase; import java.io.File; public class FileDemo1 { /** * File 目录 文件 */ pu ...
- java新手笔记27 监听器类
1.外部类监听 package com.yfs.javase; import java.awt.Button; import java.awt.FlowLayout; import java.awt. ...
- java新手笔记26 Frame
0.Calculater package com.yfs.javase; import java.awt.BorderLayout; import java.awt.Button; import ja ...
随机推荐
- Codeforces Gym 100610 Problem H. Horrible Truth 瞎搞
Problem H. Horrible Truth Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/gym/1006 ...
- 为TListBox添加水平滚动条
为TListBox添加水平滚动条 实例说明 TListBox组件是一个较为常用的列表组件,在默认情况下该组件是没有水平滚动条的,所以文字过长会显示不完全,在文字较短的情况下还可以,但是如果一行的文字很 ...
- Android下将图片载入到内存中
Android的系统的标准默认每一个应用程序分配的内存是16M.所以来说是很宝贵的,在创建应用的时候要尽可能的去节省内存,可是在载入一些大的文件的时候,比方图片是相当耗内存的,一个1.3M的图片,分辨 ...
- currentTarget 与 Target 的区别
在一般情况下,target与currentTarget指向的是同一个对象.一般情况是指我们只对某一个独立的mc添加侦听器.如下: var mc:Sprite=new Sprite();addChild ...
- Python学习 之 流程控制
1.if else 语法:if expression1: statement1(s) elif expression2: statement2(s) else: statement3(s) 2.for ...
- 使用Areas(区域)分离ASP.NET MVC 项目
在使用Areas区域时,如果使用默认路由表,将造成路由表冲突,这种情况需要修改一下区域内<区域名称>AreaRegistration.cs和/App_Start/RouteConfig.a ...
- VBA Excel 打印
1. 设置 页边距.打印区域 With .PageSetup .HeaderMargin = Application.CentimetersToPoints(0.5) .LeftMargin = Ap ...
- Android检测是否安装了指定应用
检测是否安装了指定应用的方法如下: private boolean isAvilible( Context context, String packageName ) { final PackageM ...
- 数据库SQLite应用
1.导入SQLite库和头文件 #import <sqlite3.h> 2.打开数据库,如果在打开的时候遇到了问题,则关闭它并抛出一个断言错误. sqlite3 * database; i ...
- 修改MySQL的时区
修改MySQL的时区,涉及参数time_zone 首先需要查看mysql的当前时区,用time_zone参数 ? 1 2 3 4 5 6 7 8 9 [html] mysql> show var ...