此文主要讲述在初学 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. String, StringBuffer, StringBuilder(转载)

    http://blog.csdn.net/rmn190/article/details/1492013 String 字符串常量StringBuffer 字符串变量(线程安全)StringBuilde ...

  2. 【BZOJ】2875: [Noi2012]随机数生成器(矩阵乘法+快速乘)

    http://www.lydsy.com/JudgeOnline/problem.php?id=2875 矩阵的话很容易看出来.....我就不写了.太水了. 然后乘法longlong会溢出...那么我 ...

  3. 【BZOJ】1295: [SCOI2009]最长距离(spfa+暴力)

    http://www.lydsy.com/JudgeOnline/problem.php?id=1295 咳咳..此题我不会做啊..一开始认为是多源,可是有移除物品的操作,所以不行. 此题的思想很巧妙 ...

  4. javascript 三个 对话框

    用法: 一般写在 </html>之后,<script language="javascript">代码必须放在这里面</script> 三个常用 ...

  5. rsync服务器的配置和使用

    yum install -y rsyncuseradd rsync -s /sbin/nologinmkdir /backupmkdir /backup1 chown rsync:rsync /bac ...

  6. WBS练习

    我们把这次团队程序设计分成了6个模块,让每一个同学都能参与其中,然后让每一个人选一个自己喜欢的模块,最后数据库设计这个部分就大家一起来做. Everybody's task allocation is ...

  7. SecureCRT的相关问题

    1. 中文显示乱码的解决方法 2. 显示Linux中的颜色信息 3. 解决终端长时间无输入导致SSH连接中断的问题 4. 以公钥方式代替密码方式登录服务器 在SecureCRT中创建Public Ke ...

  8. GridVeiw 使用

    1. 因使用的是 Mongodb,因此要在 ActiveDataProvider 中指定 key 属性 2. 自定义表格中的按钮 'class' => 'yii\grid\ActionColum ...

  9. PHP 开发 APP 接口 学习笔记与总结 - APP 接口实例 [1] 单例模式连接数据库

    单例模式 单例模式三大原则: ① 构造函数需要标记为非 public (防止外部使用 new 操作符创建对象),单例类不能在其他类中实例化,只能被自身实例化: ② 拥有一个保存类的实例的静态成员变量 ...

  10. Ubuntu kill命令用法详解

    转自:Ubuntu kill命令用法详解 1. kill   作用:根据进程号杀死进程   用法: kill [信号代码] 进程ID   root@fcola:/# ps -ef | grep sen ...