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 接口来 ...
随机推荐
- VSPM虚拟串口使用
(1)打开虚拟串口工具,当你设置好你程序中的串口信息后,打开程序中的串口,然后虚拟串口中所显示的就是程序的所提供的串口信息 (2)选中其中一个串口,修改管理信息,点击”重新连接“ , 直接在管理那里, ...
- Ubuntu根目录下各文件夹的功能详细介绍
Ubuntu的根目录下存在着很多的文件夹,但你知道他们都存放着哪些文件呢?这些是深入了解Ubuntu系统必不缺少的知识,本文就关于此做一下介绍吧. /bin/ 用以存储二进制可执行命令文件. / ...
- 设置TOMCAT的JVM虚拟机内存大小
你知道如何设置TOMCAT的JVM虚拟机内存大小吗,这里和大家分享一下,JAVA程序启动时JVM都会分配一个初始内存和最大内存给这个应用程序.这个初始内存和最大内存在一定程度都会影响程序的性能. 设置 ...
- 不要使用SBJSON(json-framework)
不要使用SBJSON(json-framework) 文章目录 不知道为什么,在iOS开发中,有很多人使用 SBJSON (又被称作json-framework)来做JSON解析库.我想这是因为SBJ ...
- Excel操作类
'引入Excel的COM组件 Imports System Imports System.Data Imports System.Configuration Imports System.Web Im ...
- [转]WinForm和WebForm下读取app.config web.config 中邮件配置的方法
本文转自:http://blog.csdn.net/jinbinhan/article/details/1598386 1. 在WinForm下读取 App.config中的邮件配置语句如下: Con ...
- 【GK101 谐波数据生成器】上位机软件升级(版本:1.1)
============================= 技术论坛:http://www.eeschool.org 博客地址:http://xiaomagee.cnblogs.com 官方网店:ht ...
- iisNS 安装程序的思路
1. 安装程序的目录和 frontEnd一个目录,通过判断是否存在 common/config/db.php 来验证是否已经安装过,如果已经安装过,该文件会自动生成 2. 如果没有安装过,则跳转到 ...
- easyui datagrid 列隐藏和显示
easyui datagrid 列隐藏和显示 用js怎么控制列的显示和隐藏? 最佳答案 $('#grid').datagrid('hideColumn','列field');把hideColu ...
- 关于Depth Bounds Test (DBT)和在CE3的运用
Depth Bounds Test (DBT) Depth Bounds Test(深度范围检测),是Nvdia GeForce 6系列以后显卡的特性(GPU Programming Guide Ge ...