码迷,mamicode.com
首页 > 数据库 > 详细

Java学习-006-三种数据库连接 MySQL、Oracle、sqlserver

时间:2015-02-05 00:45:58      阅读:358      评论:0      收藏:0      [点我收藏+]

标签:

此文主要讲述在初学 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

标签:

原文地址:http://www.cnblogs.com/fengpingfan/p/4273708.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!