Java学习-006-三种数据库连接 MySQL、Oracle、sqlserver
此文主要讲述在初学 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 }
- 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 }
- 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学习-006-三种数据库连接 MySQL、Oracle、sqlserver 顺利完结,希望此文能够给初学 Java 的您一份参考。
最后,非常感谢亲的驻足,希望此文能对亲有所帮助。热烈欢迎亲一起探讨,共同进步。非常感谢! ^_^
欢迎 【 留言 || 关注 || 打赏 】 。您的每一份心意都是对我的鼓励和支持!非常感谢!欢迎互加,相互交流学习!
作者:范丰平,本文链接:https://www.cnblogs.com/fengpingfan/p/4273708.html
Copyright @范丰平 版权所有,如需转载请标明本文原始链接出处,严禁商业用途! 我的个人博客链接地址:http://www.cnblogs.com/fengpingfan