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

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

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

  •  MySQL 数据库
  1. /**
  2. * Aaron.ffp Inc.
  3. * Copyright (c) 2004-2015 All Rights Reserved.
  4. */
  5. package main.java.aaron.java.demo;
  6.  
  7. import java.sql.Connection;
  8. import java.sql.ResultSet;
  9. import java.sql.ResultSetMetaData;
  10. import java.sql.SQLException;
  11. import java.sql.Statement;
  12.  
  13. /**
  14. * 第二个 JDBC 程序, 数据库访问 MySQL
  15. *
  16. * @author Aaron.ffp
  17. * @version V1.0.0: autoUISelenium main.java.aaron.java.demo JDBC_MySQLDemo.java, 2015-1-31 10:37:38 Exp $
  18. */
  19. public class JDBC_MySQLDemo {
  20.  
  21. /**
  22. * 主方法入口
  23. * @author Aaron.ffp
  24. * @version V1.0.0: autoUISelenium main.java.aaron.java.demo JDBC_MySQLDemo.java main, 2015-1-31 10:37:38 Exp $
  25. *
  26. * @param args
  27. */
  28. public static void main(String[] args) {
  29. // TODO Auto-generated method stub
  30.  
  31. String driverName = "com.mysql.jdbc.Driver";
  32. String dbURL = "jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=GBK";
  33. String dbUserName = "root";
  34. String dbPassword = "mysql";
  35.  
  36. // 1.注册 MySQL 5.5.28 驱动
  37. try{
  38. Class.forName(driverName);
  39. } catch (ClassNotFoundException e){
  40. e.printStackTrace();
  41. }
  42.  
  43. Connection conn = null; // 数据库连接
  44. Statement stmt = null; // 数据库表达式
  45. ResultSet rs = null; // 结果集
  46.  
  47. try{
  48. // 2.获取 MySQL 数据库的连接
  49. conn = java.sql.DriverManager.getConnection(dbURL, dbUserName, dbPassword);
  50.  
  51. // 3.获取表达式
  52. stmt = conn.createStatement();
  53.  
  54. // 执行插入数据的 SQL
  55. int row = stmt.executeUpdate("insert into Student(username,password, age) values('张三', '1234', 20)");
  56. System.out.println("插入了 " + row + " 条数据");
  57.  
  58. // 执行删除数据的 SQL, 被删除的记录的 ID = 7
  59. row = stmt.executeUpdate("DELETE FROM Student WHERE ID = 7");
  60. System.out.println("删除了 " + row + " 条数据");
  61.  
  62. row = stmt.executeUpdate("UPDATE Student SET Student.userName = '中国龙' WHERE Student.ID = 12");
  63. System.out.println("更新了 " + row + " 条数据");
  64.  
  65. // 4.执行 SQL
  66. rs = stmt.executeQuery("SELECT stu.ID, stu.userName, stu.password, stu.age FROM Student stu ORDER BY stu.ID");
  67.  
  68. // 获取结果集中有多少字段及其类型
  69. ResultSetMetaData rsmd = rs.getMetaData();
  70. int numberOfColumns = rsmd.getColumnCount();
  71. boolean b = rsmd.isSearchable(1);
  72.  
  73. System.out.println("结果集列数为: " + numberOfColumns + "\n");
  74. System.out.println("结果集中第一列是否可以在 WHERE 子句中使用: " + b);
  75.  
  76. // 5.显示结果集中的数据信息,可通过列号或列名获取
  77. while(rs != null && rs.next()){
  78. System.out.println("编号 = " + rs.getInt(1));
  79. System.out.println("学生姓名 = " + rs.getString("userName"));
  80. System.out.println("密码 = " + rs.getString("password"));
  81. System.out.println("年龄 = " + rs.getString("age") + "\n");
  82. }
  83. } catch(SQLException e){
  84. e.printStackTrace();
  85. } finally {
  86. // 6.释放资源, 建议放在 finally 语句中确保被关闭掉了
  87. try{
  88. rs.close();
  89. } catch (SQLException e) {
  90. e.printStackTrace();
  91. }
  92.  
  93. try{
  94. stmt.close();
  95. } catch (SQLException e) {
  96. e.printStackTrace();
  97. }
  98.  
  99. try{
  100. conn.close();
  101. } catch (SQLException e) {
  102. e.printStackTrace();
  103. }
  104. }
  105. }
  106. }

Java 连接 MySQL 数据库源代码

  •  Oracle 数据库
  1. /**
  2. * Aaron.ffp Inc.
  3. * Copyright (c) 2004-2015 All Rights Reserved.
  4. */
  5. package main.java.aaron.java.demo;
  6.  
  7. import java.sql.Connection;
  8. import java.sql.DriverManager;
  9. import java.sql.PreparedStatement;
  10. import java.sql.ResultSet;
  11.  
  12. /**
  13. * 第一个 JDBC 程序, 数据库访问 Oracle
  14. *
  15. * @author Aaron.ffp
  16. * @version V1.0.0: autoUISelenium main.java.aaron.java.demo JDBC_OracleDemo.java, 2015-2-5 00:05:33 Exp $
  17. */
  18. public class JDBC_OracleDemo {
  19.  
  20. /**
  21. *
  22. * @author Aaron.ffp
  23. * @version V1.0.0: autoUISelenium main.java.aaron.java.demo JDBC_OracleDemo.java main, 2015-2-5 00:05:33 Exp $
  24. *
  25. * @param args
  26. */
  27. public static void main(String[] args) {
  28. Connection con = null; // 创建一个数据库连接
  29. PreparedStatement pre = null; // 创建预编译语句对象,一般都是用这个而不用 Statement
  30. ResultSet result = null; // 创建一个结果集对象
  31.  
  32. try
  33. {
  34. Class.forName("oracle.jdbc.driver.OracleDriver"); // 加载 Oracle 驱动程序
  35. String url = "jdbc:oracle:thin:@127.0.0.1:1521:OracleDemo"; // 127.0.0.1是本机地址,OracleDemo 是 Oracle 的数据库名
  36. String username = "hr"; // 用户名,系统默认的账户名
  37. String password = "hr"; // 你安装时选设置的密码
  38.  
  39. System.out.println("开始连接数据库...");
  40.  
  41. con = DriverManager.getConnection(url, username, password); // 获取连接
  42.  
  43. System.out.println("数据库连接成功!");
  44.  
  45. String sql = "select * from userinfo where name=?"; // 预编译语句,“?”代表参数
  46.  
  47. pre = con.prepareStatement(sql); // 实例化预编译语句
  48. pre.setString(1, "Aaron"); // 设置参数,前面的1表示参数的索引,而不是表中列名的索引
  49.  
  50. result = pre.executeQuery(); // 执行查询,注意括号中不需要再加参数
  51.  
  52. while (result.next()){
  53. System.out.println("用户ID:" + result.getInt("id") + "\t用户名称:" + result.getString("name") +
  54. "\t安全权限:" + result.getString("security"));
  55. }
  56. } catch (Exception e) {
  57. e.printStackTrace();
  58. } finally {
  59. try{
  60. // 关闭对象,防止影响性能、并且占用资源。注意关闭的顺序,最后使用的最先关闭
  61. if (result != null){
  62. result.close();
  63. }
  64.  
  65. if (pre != null){
  66. pre.close();
  67. }
  68.  
  69. if (con != null){
  70. con.close();
  71. }
  72.  
  73. System.out.println("数据库连接已关闭!");
  74. } catch (Exception e) {
  75. e.printStackTrace();
  76. }
  77. }
  78. }
  79. }

Java 连接 Oracle 数据库

  •  sqlserver 数据库
  1. /**
  2. * Aaron.ffp Inc.
  3. * Copyright (c) 2004-2015 All Rights Reserved.
  4. */
  5. package main.java.aaron.java.demo;
  6.  
  7. import java.sql.DriverManager;
  8. import java.sql.Connection;
  9. import java.sql.ResultSet;
  10. import java.sql.SQLException;
  11. import java.sql.Statement;
  12.  
  13. /**
  14. * 第三个 JDBC 程序, 数据库访问 MSSQLServer 2008
  15. *
  16. * @author Aaron.ffp
  17. * @version V1.0.0: autoUISelenium main.java.aaron.java.demo JDBC_SqlserverDemo.java, 2015-1-31 10:46:48 Exp $
  18. */
  19. public class JDBC_SqlserverDemo {
  20.  
  21. /**
  22. *
  23. * @author Aaron.ffp
  24. * @version V1.0.0: autoUISelenium main.java.aaron.java.demo JDBC_SqlserverDemo.java main, 2015-1-31 10:46:48 Exp $
  25. *
  26. * @param args
  27. */
  28. public static void main(String[] args) {
  29. String dbDriverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver"; //SQLserver 数据库引擎
  30. String dbURL = "jdbc:sqlserver://127.0.0.1:1433;DatabaseName=JavaDB"; //SQLserver 数据源
  31. String dbUserName = "sa";
  32. String dbPassword = "baison";
  33.  
  34. try{
  35. Class.forName(dbDriverName); //加载数据库引擎,返回给定字符串名的类
  36. }catch(ClassNotFoundException e){
  37. e.printStackTrace();
  38. System.out.println(" 加载数据库引擎失败!");
  39. System.exit(0);
  40. }
  41.  
  42. System.out.println(" 数据库驱动测试成功");
  43.  
  44. try{
  45. Connection dbconn = DriverManager.getConnection(dbURL, dbUserName, dbPassword); //连接数据库对象
  46. System.out.println(" 连接数据库成功");
  47.  
  48. Statement stmt = dbconn.createStatement(); //创建 SQL 命令对象
  49.  
  50. //创建表
  51. System.out.println(" 开始创建 Student 表");
  52.  
  53. String execSQL = "IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[Student]') AND type in (N'U'))"
  54. + "DROP TABLE [dbo].[Student]";
  55.  
  56. stmt.executeUpdate(execSQL); //执行 SQL 命令对象
  57. System.out.println(" Student 表删除成功");
  58.  
  59. //创建 SQL 语句
  60. execSQL = "CREATE TABLE Student ( "
  61. + "stuID VARCHAR(20) PRIMARY KEY,"
  62. + "name VARCHAR(50) NOT NULL,"
  63. + "class VARCHAR(20) NOT NULL,"
  64. + "depart VARCHAR(50) DEFAULT '艺术',"
  65. + "age INT CHECK(age>9),"
  66. + "sex NCHAR(6) CHECK(sex IN ('男','女')) DEFAULT '男',"
  67. + "addr VARCHAR(100))";
  68. stmt.executeUpdate(execSQL); //执行 SQL 命令对象
  69. System.out.println(" Student 表创建成功");
  70.  
  71. //输入数据
  72. System.out.println(" 开始插入数据");
  73. String insertSQL1 = "INSERT INTO Student VALUES('000001','范丰平','000001','金融',28,'男','山东青岛')";
  74. String insertSQL2 = "INSERT INTO Student VALUES('000002','刘德华','000002','常青树',27,'男','广东江门')";
  75. String insertSQL3 = "INSERT INTO Student VALUES('000003','萧亚轩','000003','音乐',26,'女','台湾台北')";
  76. String insertSQL4 = "INSERT INTO Student VALUES('000004','周杰伦','000003','音乐',26,'男','福建永春')";
  77. String insertSQL5 = "INSERT INTO Student VALUES('000005','孙燕姿','000003','音乐',26,'女','广东潮州')";
  78. String insertSQL6 = "INSERT INTO Student VALUES('000006','李连杰','000004','武术',25,'男','北京')";
  79. String insertSQL7 = "INSERT INTO Student VALUES('000007','甄子丹','000004','武术',24,'男','广东广州')";
  80. String insertSQL8 = "INSERT INTO Student VALUES('000008','成龙','000005','喜剧',23,'男','山东烟台')";
  81. String insertSQL9 = "INSERT INTO Student VALUES('000009','吴京','000004','武术',22,'男','山东青岛')";
  82.  
  83. stmt.executeUpdate(insertSQL1);
  84. stmt.executeUpdate(insertSQL2);
  85. stmt.executeUpdate(insertSQL3);
  86. stmt.executeUpdate(insertSQL4);
  87. stmt.executeUpdate(insertSQL5);
  88. stmt.executeUpdate(insertSQL6);
  89. stmt.executeUpdate(insertSQL7);
  90. stmt.executeUpdate(insertSQL8);
  91. stmt.executeUpdate(insertSQL9);
  92.  
  93. System.out.println(" 插入数据成功");
  94.  
  95. //读取数据
  96. System.out.println(" 开始读取数据");
  97. ResultSet rs = stmt.executeQuery("SELECT * FROM Student order by stuID desc"); //返回 SQL 语句查询结果集(集合)
  98.  
  99. //循环输出每一条记录
  100. while(rs.next()){
  101. //输出每个字段
  102. System.out.print(" " + rs.getString("stuID") + "\t" + rs.getString("name") + "\t");
  103. System.out.print(rs.getString("class") + "\t" + rs.getString("depart") + "\t");
  104. System.out.print(rs.getString("age") + "\t" + rs.getString("sex") + "\t");
  105. System.out.println(rs.getString("addr"));
  106. }
  107. System.out.println(" 数据读取完毕");
  108.  
  109. //关闭连接
  110. stmt.close(); //关闭命令对象连接
  111. dbconn.close(); //关闭数据库连接
  112. }catch(SQLException e){
  113. e.printStackTrace();
  114. System.out.println("数据库连接错误");
  115. System.exit(0);
  116. }
  117.  
  118. }
  119.  
  120. }

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. [Cocos2d-x For WP8]Progress 进度条

    Cocos2d-x可以有多种进度条的展示方式,进度条的种类是根据进度条运动的方向来区分,包括顺时针,逆时针,从左到右,从右到左,从下到上和从上到下6种方式,这和WP8的进度条是由很大的区别的.那么Co ...

  2. 【wikioi】2216 行星序列(线段树)

    http://wikioi.com/problem/2216/ 这题太让我感动了QAQ,让我找到了我一直以来写线段树的错误!!!! 就是,pushdown一定要放在最前面!要不然顺序会错.也就是说,当 ...

  3. java实现吸血鬼数字

    public class Vempire { public static void main(String[] arg) { String[] ar_str1, ar_str2; ; int from ...

  4. Swift UICollectionView 简单使用

    最近要研究下排布的游戏关卡界面的实现,简单做了个UICollectionView的demo. 先看最后的效果: 下面来看实现的方法把,在Storyboard对应的ViewController中增加一个 ...

  5. Wilddog - 野狗统计

    根据业务需求提出的统计代码. <!DOCTYPE HTML> <html lang="en-US"> <head> <meta chars ...

  6. POJ 1573 Robot Motion(BFS)

    Robot Motion Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 12856   Accepted: 6240 Des ...

  7. pod 安装 Masonry 遇到问题

    pod 导入第三方库 Masonry: 在工程masonryTest的文件下新建一个Podfile文件 编辑如下内容: platform :ios, '8.0'xcodeproj 'mansoryTe ...

  8. 数据库连接jdbc理解

    1.突然在想,既然数据库中有很多数据库,不同的database,在使用数据库时候,要指定使用的哪个数据库,用use database命令,指定特定数据库. 2.那java代码中,直接jdbc,直接st ...

  9. python 不得不知的第三方库以及常用安装包

    mysql 驱动$ sudo pip install MySQL-python redis 数据库$ sudo pip install redis django 全文搜索$ sudo pip inst ...

  10. FAQ&ubuntu12.04 gedit 打开 txt 文件乱码

    ubuntu12.04 gedit 打开 windows 分区中的 txt 文件乱码,是因为 ubuntu 和 windows 两个系统的编码不同.解决办法:终端里依次输入以下2 条命令即可: 代码: ...