此文主要讲述在初学 Java 时,常用的三种数据库 MySQL、Oracle、sqlserver 连接的源代码整理。希望能对初学 Java 编程的亲们有所帮助。若有不足之处,敬请大神指正,不胜感激!源代码测试通过日期为:2015-1-31 10:46:48,请知悉。

所需的 jar 包下载链接为:http://yunpan.cn/cKEWbBntAjtKy  访问密码 bd58

以下为初学 Java 常用的三种数据库 MySQL、Oracle、sqlserver 连接的源代码,敬请参阅!

  •  MySQL 数据库
 /**
* Aaron.ffp Inc.
* Copyright (c) 2004-2015 All Rights Reserved.
*/
package main.java.aaron.java.demo; import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement; /**
* 第二个 JDBC 程序, 数据库访问 MySQL
*
* @author Aaron.ffp
* @version V1.0.0: autoUISelenium main.java.aaron.java.demo JDBC_MySQLDemo.java, 2015-1-31 10:37:38 Exp $
*/
public class JDBC_MySQLDemo { /**
* 主方法入口
* @author Aaron.ffp
* @version V1.0.0: autoUISelenium main.java.aaron.java.demo JDBC_MySQLDemo.java main, 2015-1-31 10:37:38 Exp $
*
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub String driverName = "com.mysql.jdbc.Driver";
String dbURL = "jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=GBK";
String dbUserName = "root";
String dbPassword = "mysql"; // 1.注册 MySQL 5.5.28 驱动
try{
Class.forName(driverName);
} catch (ClassNotFoundException e){
e.printStackTrace();
} Connection conn = null; // 数据库连接
Statement stmt = null; // 数据库表达式
ResultSet rs = null; // 结果集 try{
// 2.获取 MySQL 数据库的连接
conn = java.sql.DriverManager.getConnection(dbURL, dbUserName, dbPassword); // 3.获取表达式
stmt = conn.createStatement(); // 执行插入数据的 SQL
int row = stmt.executeUpdate("insert into Student(username,password, age) values('张三', '1234', 20)");
System.out.println("插入了 " + row + " 条数据"); // 执行删除数据的 SQL, 被删除的记录的 ID = 7
row = stmt.executeUpdate("DELETE FROM Student WHERE ID = 7");
System.out.println("删除了 " + row + " 条数据"); row = stmt.executeUpdate("UPDATE Student SET Student.userName = '中国龙' WHERE Student.ID = 12");
System.out.println("更新了 " + row + " 条数据"); // 4.执行 SQL
rs = stmt.executeQuery("SELECT stu.ID, stu.userName, stu.password, stu.age FROM Student stu ORDER BY stu.ID"); // 获取结果集中有多少字段及其类型
ResultSetMetaData rsmd = rs.getMetaData();
int numberOfColumns = rsmd.getColumnCount();
boolean b = rsmd.isSearchable(1); System.out.println("结果集列数为: " + numberOfColumns + "\n");
System.out.println("结果集中第一列是否可以在 WHERE 子句中使用: " + b); // 5.显示结果集中的数据信息,可通过列号或列名获取
while(rs != null && rs.next()){
System.out.println("编号 = " + rs.getInt(1));
System.out.println("学生姓名 = " + rs.getString("userName"));
System.out.println("密码 = " + rs.getString("password"));
System.out.println("年龄 = " + rs.getString("age") + "\n");
}
} catch(SQLException e){
e.printStackTrace();
} finally {
// 6.释放资源, 建议放在 finally 语句中确保被关闭掉了
try{
rs.close();
} catch (SQLException e) {
e.printStackTrace();
} try{
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
} try{
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}

Java 连接 MySQL 数据库源代码

  •  Oracle 数据库
 /**
* Aaron.ffp Inc.
* Copyright (c) 2004-2015 All Rights Reserved.
*/
package main.java.aaron.java.demo; import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet; /**
* 第一个 JDBC 程序, 数据库访问 Oracle
*
* @author Aaron.ffp
* @version V1.0.0: autoUISelenium main.java.aaron.java.demo JDBC_OracleDemo.java, 2015-2-5 00:05:33 Exp $
*/
public class JDBC_OracleDemo { /**
*
* @author Aaron.ffp
* @version V1.0.0: autoUISelenium main.java.aaron.java.demo JDBC_OracleDemo.java main, 2015-2-5 00:05:33 Exp $
*
* @param args
*/
public static void main(String[] args) {
Connection con = null; // 创建一个数据库连接
PreparedStatement pre = null; // 创建预编译语句对象,一般都是用这个而不用 Statement
ResultSet result = null; // 创建一个结果集对象 try
{
Class.forName("oracle.jdbc.driver.OracleDriver"); // 加载 Oracle 驱动程序
String url = "jdbc:oracle:thin:@127.0.0.1:1521:OracleDemo"; // 127.0.0.1是本机地址,OracleDemo 是 Oracle 的数据库名
String username = "hr"; // 用户名,系统默认的账户名
String password = "hr"; // 你安装时选设置的密码 System.out.println("开始连接数据库..."); con = DriverManager.getConnection(url, username, password); // 获取连接 System.out.println("数据库连接成功!"); String sql = "select * from userinfo where name=?"; // 预编译语句,“?”代表参数 pre = con.prepareStatement(sql); // 实例化预编译语句
pre.setString(1, "Aaron"); // 设置参数,前面的1表示参数的索引,而不是表中列名的索引 result = pre.executeQuery(); // 执行查询,注意括号中不需要再加参数 while (result.next()){
System.out.println("用户ID:" + result.getInt("id") + "\t用户名称:" + result.getString("name") +
"\t安全权限:" + result.getString("security"));
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try{
// 关闭对象,防止影响性能、并且占用资源。注意关闭的顺序,最后使用的最先关闭
if (result != null){
result.close();
} if (pre != null){
pre.close();
} if (con != null){
con.close();
} System.out.println("数据库连接已关闭!");
} catch (Exception e) {
e.printStackTrace();
}
}
}
}

Java 连接 Oracle 数据库

  •  sqlserver 数据库
 /**
* Aaron.ffp Inc.
* Copyright (c) 2004-2015 All Rights Reserved.
*/
package main.java.aaron.java.demo; import java.sql.DriverManager;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement; /**
* 第三个 JDBC 程序, 数据库访问 MSSQLServer 2008
*
* @author Aaron.ffp
* @version V1.0.0: autoUISelenium main.java.aaron.java.demo JDBC_SqlserverDemo.java, 2015-1-31 10:46:48 Exp $
*/
public class JDBC_SqlserverDemo { /**
*
* @author Aaron.ffp
* @version V1.0.0: autoUISelenium main.java.aaron.java.demo JDBC_SqlserverDemo.java main, 2015-1-31 10:46:48 Exp $
*
* @param args
*/
public static void main(String[] args) {
String dbDriverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver"; //SQLserver 数据库引擎
String dbURL = "jdbc:sqlserver://127.0.0.1:1433;DatabaseName=JavaDB"; //SQLserver 数据源
String dbUserName = "sa";
String dbPassword = "baison"; try{
Class.forName(dbDriverName); //加载数据库引擎,返回给定字符串名的类
}catch(ClassNotFoundException e){
e.printStackTrace();
System.out.println(" 加载数据库引擎失败!");
System.exit(0);
} System.out.println(" 数据库驱动测试成功"); try{
Connection dbconn = DriverManager.getConnection(dbURL, dbUserName, dbPassword); //连接数据库对象
System.out.println(" 连接数据库成功"); Statement stmt = dbconn.createStatement(); //创建 SQL 命令对象 //创建表
System.out.println(" 开始创建 Student 表"); String execSQL = "IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[Student]') AND type in (N'U'))"
+ "DROP TABLE [dbo].[Student]"; stmt.executeUpdate(execSQL); //执行 SQL 命令对象
System.out.println(" Student 表删除成功"); //创建 SQL 语句
execSQL = "CREATE TABLE Student ( "
+ "stuID VARCHAR(20) PRIMARY KEY,"
+ "name VARCHAR(50) NOT NULL,"
+ "class VARCHAR(20) NOT NULL,"
+ "depart VARCHAR(50) DEFAULT '艺术',"
+ "age INT CHECK(age>9),"
+ "sex NCHAR(6) CHECK(sex IN ('男','女')) DEFAULT '男',"
+ "addr VARCHAR(100))";
stmt.executeUpdate(execSQL); //执行 SQL 命令对象
System.out.println(" Student 表创建成功"); //输入数据
System.out.println(" 开始插入数据");
String insertSQL1 = "INSERT INTO Student VALUES('000001','范丰平','000001','金融',28,'男','山东青岛')";
String insertSQL2 = "INSERT INTO Student VALUES('000002','刘德华','000002','常青树',27,'男','广东江门')";
String insertSQL3 = "INSERT INTO Student VALUES('000003','萧亚轩','000003','音乐',26,'女','台湾台北')";
String insertSQL4 = "INSERT INTO Student VALUES('000004','周杰伦','000003','音乐',26,'男','福建永春')";
String insertSQL5 = "INSERT INTO Student VALUES('000005','孙燕姿','000003','音乐',26,'女','广东潮州')";
String insertSQL6 = "INSERT INTO Student VALUES('000006','李连杰','000004','武术',25,'男','北京')";
String insertSQL7 = "INSERT INTO Student VALUES('000007','甄子丹','000004','武术',24,'男','广东广州')";
String insertSQL8 = "INSERT INTO Student VALUES('000008','成龙','000005','喜剧',23,'男','山东烟台')";
String insertSQL9 = "INSERT INTO Student VALUES('000009','吴京','000004','武术',22,'男','山东青岛')"; stmt.executeUpdate(insertSQL1);
stmt.executeUpdate(insertSQL2);
stmt.executeUpdate(insertSQL3);
stmt.executeUpdate(insertSQL4);
stmt.executeUpdate(insertSQL5);
stmt.executeUpdate(insertSQL6);
stmt.executeUpdate(insertSQL7);
stmt.executeUpdate(insertSQL8);
stmt.executeUpdate(insertSQL9); System.out.println(" 插入数据成功"); //读取数据
System.out.println(" 开始读取数据");
ResultSet rs = stmt.executeQuery("SELECT * FROM Student order by stuID desc"); //返回 SQL 语句查询结果集(集合) //循环输出每一条记录
while(rs.next()){
//输出每个字段
System.out.print(" " + rs.getString("stuID") + "\t" + rs.getString("name") + "\t");
System.out.print(rs.getString("class") + "\t" + rs.getString("depart") + "\t");
System.out.print(rs.getString("age") + "\t" + rs.getString("sex") + "\t");
System.out.println(rs.getString("addr"));
}
System.out.println(" 数据读取完毕"); //关闭连接
stmt.close(); //关闭命令对象连接
dbconn.close(); //关闭数据库连接
}catch(SQLException e){
e.printStackTrace();
System.out.println("数据库连接错误");
System.exit(0);
} } }

Java 连接 sqlserver 数据库

至此, Java学习-006-三种数据库连接 MySQL、Oracle、sqlserver 顺利完结,希望此文能够给初学 Java 的您一份参考。

最后,非常感谢亲的驻足,希望此文能对亲有所帮助。热烈欢迎亲一起探讨,共同进步。非常感谢! ^_^

Java学习-006-三种数据库连接 MySQL、Oracle、sqlserver的更多相关文章

  1. 21Spring_JdbcTemplatem模板工具类的使用——配置文件(连接三种数据库连接池)

    上一篇文章提到过DriverManagerDataSource只是Spring内置的数据库连接池,我们可选的方案还有c3p0数据库连接池以及DBCP数据库连接池. 所以这篇文章讲一下上面三种数据库连接 ...

  2. Atitit. 数据约束 校验 原理理论与 架构设计 理念模式java php c#.net js javascript mysql oracle

    Atitit. 数据约束 校验 原理理论与 架构设计 理念模式java php c#.net js javascript mysql oracle 1. 主键1 2. uniq  index2 3.  ...

  3. Hibernate 系列 07 - Hibernate中Java对象的三种状态

    引导目录: Hibernate 系列教程 目录 1. Java对象的三种状态 当应用通过调用Hibernate API与框架发生交互时,需要从持久化的角度关注应用对象的生命周期. 持久化声明周期是Hi ...

  4. Hibernate中Java对象的三种状态

                                                                                     Hibernate中Java对象的三种 ...

  5. Java多线程的三种实现方式

    java多线程的三种实现方式 一.继承Thread类 二.实现Runnable接口 三.使用ExecutorService, Callable, Future 无论是通过继承Thread类还是实现Ru ...

  6. OID,主键生成策略,PO VO DTO,get和load区别,脏检查,快照,java对象的三种状态

    主键生成策略 sequence 数据库端 native 数据库端 uuid  程序端 自动赋值 生成的是一个32位的16进制数  实体类需把ID改成String 类型 assigned  程序端 需手 ...

  7. 斐波那契数列-java编程:三种方法实现斐波那契数列

    题目要求:编写程序在控制台输出斐波那契数列前20项,每输出5个数换行 斐波那契数列指的是这样一个数列:1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, … 这个数列 ...

  8. java php c# 三种语言的AES加密互转

    java php c# 三种语言的AES加密互转 最近做的项目中有一个领取优惠券的功能,项目是用php写得,不得不佩服,php自带的方法简洁而又方便好用.项目是为平台为其他公司发放优惠券,结果很囧的是 ...

  9. 【Java 线程的深入研究1】Java 提供了三种创建线程的方法

    Java 提供了三种创建线程的方法: 通过实现 Runnable 接口: 通过继承 Thread 类本身: 通过 Callable 和 Future 创建线程. 1.通过实现 Runnable 接口来 ...

随机推荐

  1. WP7:模拟开始屏幕Tile漂动效果

    在WP7手机的开始屏幕,如果你Hold住某一个瓷贴,就会发现除了你按住的那个瓷贴其他全部下沉半透明,然后开始在不停地漂来漂去~~今天来模仿一下这个效果.新建一个项目,然后在Grid里放一个ListBo ...

  2. 【BZOJ】1097: [POI2007]旅游景点atr(spfa+状压dp)

    http://www.lydsy.com/JudgeOnline/problem.php?id=1097 首先还是我很sb....想到了分层图想不到怎么串起来,,,以为用拓扑序搞转移,,后来感到不行. ...

  3. jsoncpp封装和解析字符串、数字、布尔值和数组

    使用jsoncpp进行字符串.数字.布尔值和数组的封装与解析. 1)下载jsoncpp的代码库 百度网盘地址 :http://pan.baidu.com/s/1ntqQhIT 2)解压缩文件 json ...

  4. Css3 - 全面学习

    css3实验.生成.学习网站 http://www.css3maker.com/ http://www.css3.me/ 查询前缀和兼容性 http://caniuse.com/ 1.文本阴影 < ...

  5. CSV to XLSX (专用)

    $csvFile = "F:\ACL\HZ ACL\ACL-APAC.CSV" $path = "F:\ACL\HZ ACL\ACL-APAC.XLSX" $r ...

  6. [项目机会]citrix 虚拟桌面对于java等高CPU占用率如何解决

    citrix 虚拟桌面对于java等高CPU占用率如何解决 问题1:java等客户端对于虚拟桌面cpu影响较大,但是有些用户的确需要使用java支持的程序,是否可以通过其他途径来解决? 问题2:对于其 ...

  7. 【ZZ】 移位贴图 Displacement Mapping

    http://blog.csdn.net/huazai434/article/details/5650629 说明:该技术需要VS3.0的支持!!! 一,移位贴图类似于地形渲染.不过由于移位纹理可以做 ...

  8. Alamofire数据请求

    let stringurl = "http://www.huiyunche.cn/kyleuat/banner/list" Alamofire.request(.GET,strin ...

  9. GDC 2016 神秘海域4中使用Substance制作Texture

    TEXTURING UNCHARTED 4: A MATTER OF SUBSTANCE 原文链接 http://www.dualshockers.com/2016/03/16/amazing-unc ...

  10. Yii源码阅读笔记(九)

    Behvaior类,Behavior类是所有事件类的基类: namespace yii\base; /** * Behavior is the base class for all behavior ...