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 数据库
- /**
- * 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的更多相关文章
- 21Spring_JdbcTemplatem模板工具类的使用——配置文件(连接三种数据库连接池)
上一篇文章提到过DriverManagerDataSource只是Spring内置的数据库连接池,我们可选的方案还有c3p0数据库连接池以及DBCP数据库连接池. 所以这篇文章讲一下上面三种数据库连接 ...
- Atitit. 数据约束 校验 原理理论与 架构设计 理念模式java php c#.net js javascript mysql oracle
Atitit. 数据约束 校验 原理理论与 架构设计 理念模式java php c#.net js javascript mysql oracle 1. 主键1 2. uniq index2 3. ...
- Hibernate 系列 07 - Hibernate中Java对象的三种状态
引导目录: Hibernate 系列教程 目录 1. Java对象的三种状态 当应用通过调用Hibernate API与框架发生交互时,需要从持久化的角度关注应用对象的生命周期. 持久化声明周期是Hi ...
- Hibernate中Java对象的三种状态
Hibernate中Java对象的三种 ...
- Java多线程的三种实现方式
java多线程的三种实现方式 一.继承Thread类 二.实现Runnable接口 三.使用ExecutorService, Callable, Future 无论是通过继承Thread类还是实现Ru ...
- OID,主键生成策略,PO VO DTO,get和load区别,脏检查,快照,java对象的三种状态
主键生成策略 sequence 数据库端 native 数据库端 uuid 程序端 自动赋值 生成的是一个32位的16进制数 实体类需把ID改成String 类型 assigned 程序端 需手 ...
- 斐波那契数列-java编程:三种方法实现斐波那契数列
题目要求:编写程序在控制台输出斐波那契数列前20项,每输出5个数换行 斐波那契数列指的是这样一个数列:1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, … 这个数列 ...
- java php c# 三种语言的AES加密互转
java php c# 三种语言的AES加密互转 最近做的项目中有一个领取优惠券的功能,项目是用php写得,不得不佩服,php自带的方法简洁而又方便好用.项目是为平台为其他公司发放优惠券,结果很囧的是 ...
- 【Java 线程的深入研究1】Java 提供了三种创建线程的方法
Java 提供了三种创建线程的方法: 通过实现 Runnable 接口: 通过继承 Thread 类本身: 通过 Callable 和 Future 创建线程. 1.通过实现 Runnable 接口来 ...
随机推荐
- [Cocos2d-x For WP8]Progress 进度条
Cocos2d-x可以有多种进度条的展示方式,进度条的种类是根据进度条运动的方向来区分,包括顺时针,逆时针,从左到右,从右到左,从下到上和从上到下6种方式,这和WP8的进度条是由很大的区别的.那么Co ...
- 【wikioi】2216 行星序列(线段树)
http://wikioi.com/problem/2216/ 这题太让我感动了QAQ,让我找到了我一直以来写线段树的错误!!!! 就是,pushdown一定要放在最前面!要不然顺序会错.也就是说,当 ...
- java实现吸血鬼数字
public class Vempire { public static void main(String[] arg) { String[] ar_str1, ar_str2; ; int from ...
- Swift UICollectionView 简单使用
最近要研究下排布的游戏关卡界面的实现,简单做了个UICollectionView的demo. 先看最后的效果: 下面来看实现的方法把,在Storyboard对应的ViewController中增加一个 ...
- Wilddog - 野狗统计
根据业务需求提出的统计代码. <!DOCTYPE HTML> <html lang="en-US"> <head> <meta chars ...
- POJ 1573 Robot Motion(BFS)
Robot Motion Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 12856 Accepted: 6240 Des ...
- pod 安装 Masonry 遇到问题
pod 导入第三方库 Masonry: 在工程masonryTest的文件下新建一个Podfile文件 编辑如下内容: platform :ios, '8.0'xcodeproj 'mansoryTe ...
- 数据库连接jdbc理解
1.突然在想,既然数据库中有很多数据库,不同的database,在使用数据库时候,要指定使用的哪个数据库,用use database命令,指定特定数据库. 2.那java代码中,直接jdbc,直接st ...
- python 不得不知的第三方库以及常用安装包
mysql 驱动$ sudo pip install MySQL-python redis 数据库$ sudo pip install redis django 全文搜索$ sudo pip inst ...
- FAQ&ubuntu12.04 gedit 打开 txt 文件乱码
ubuntu12.04 gedit 打开 windows 分区中的 txt 文件乱码,是因为 ubuntu 和 windows 两个系统的编码不同.解决办法:终端里依次输入以下2 条命令即可: 代码: ...