此文主要讲述在初学 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. Palindrome Partitioning II Leetcode java

    题目: Given a string s, partition s such that every substring of the partition is a palindrome. Return ...

  2. 【BZOJ】1606: [Usaco2008 Dec]Hay For Sale(背包)

    http://www.lydsy.com/JudgeOnline/problem.php?id=1606 越来越水了T_T 这题两种做法,一个正规01背包,价值就是体积 还有一种是非正规背包,即 if ...

  3. 【wikioi】1222 信与信封问题(二分图+特殊的技巧)

    http://wikioi.com/problem/1222/ 一开始我就想到这样构图的,即可能的连边.但是似乎无法判断. 然后想来想去想不出来.. 题解: 同样是二分图,将可能的连边,然后跑一次最大 ...

  4. filter:alpha(opacity=100,style=1)

    filter:alpha(opacity=100,style=1) 1.opacity属性:设置透明度,取值0至100之间的任意数值,100表示完全不透明: 2.style属性:设置渐变风格: 0表示 ...

  5. css教程如何修改留言板程序

    error_reporting(0);$conn = new com("adodb.connection"); $conn->open("driver={micro ...

  6. springMvc文件下载

    //主要看导入的是那些类 import com.ibm.db.service.ITopicService;import org.apache.commons.io.FileUtils;import o ...

  7. AngularJS 初识笔记

    test.html: <!DOCTYPE html> <html lang="en" ng-app> <head> <meta chars ...

  8. eclipse 版本号

    Eclipse 3.1 版本代号 IO [木卫1,伊奥]  Eclipse 3.2 版本代号 Callisto [木卫四,卡里斯托 ]Eclipse 3.3 版本代号 Eruopa [木卫二,欧罗巴  ...

  9. C#winform中DataGridView常用的属性

    1.AllowUserToAddRows属性:指示是否向用户显示添加行的选项 AllowUserToOrderColumns属性:指示是否允许通过手动对列重新定位 AllowUserToResizeC ...

  10. 20145235 《Java程序设计》第8周学习总结

    教材学习内容总结 15.1.1日志API简介 使用日志的起点是logger类,logger实例的创建有许多要处理的要素,必须使用logger的静态方法getLogger(). 通常在哪个类上取得的lo ...