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 接口来 ...
随机推荐
- WP7:模拟开始屏幕Tile漂动效果
在WP7手机的开始屏幕,如果你Hold住某一个瓷贴,就会发现除了你按住的那个瓷贴其他全部下沉半透明,然后开始在不停地漂来漂去~~今天来模仿一下这个效果.新建一个项目,然后在Grid里放一个ListBo ...
- 【BZOJ】1097: [POI2007]旅游景点atr(spfa+状压dp)
http://www.lydsy.com/JudgeOnline/problem.php?id=1097 首先还是我很sb....想到了分层图想不到怎么串起来,,,以为用拓扑序搞转移,,后来感到不行. ...
- jsoncpp封装和解析字符串、数字、布尔值和数组
使用jsoncpp进行字符串.数字.布尔值和数组的封装与解析. 1)下载jsoncpp的代码库 百度网盘地址 :http://pan.baidu.com/s/1ntqQhIT 2)解压缩文件 json ...
- Css3 - 全面学习
css3实验.生成.学习网站 http://www.css3maker.com/ http://www.css3.me/ 查询前缀和兼容性 http://caniuse.com/ 1.文本阴影 < ...
- CSV to XLSX (专用)
$csvFile = "F:\ACL\HZ ACL\ACL-APAC.CSV" $path = "F:\ACL\HZ ACL\ACL-APAC.XLSX" $r ...
- [项目机会]citrix 虚拟桌面对于java等高CPU占用率如何解决
citrix 虚拟桌面对于java等高CPU占用率如何解决 问题1:java等客户端对于虚拟桌面cpu影响较大,但是有些用户的确需要使用java支持的程序,是否可以通过其他途径来解决? 问题2:对于其 ...
- 【ZZ】 移位贴图 Displacement Mapping
http://blog.csdn.net/huazai434/article/details/5650629 说明:该技术需要VS3.0的支持!!! 一,移位贴图类似于地形渲染.不过由于移位纹理可以做 ...
- Alamofire数据请求
let stringurl = "http://www.huiyunche.cn/kyleuat/banner/list" Alamofire.request(.GET,strin ...
- GDC 2016 神秘海域4中使用Substance制作Texture
TEXTURING UNCHARTED 4: A MATTER OF SUBSTANCE 原文链接 http://www.dualshockers.com/2016/03/16/amazing-unc ...
- Yii源码阅读笔记(九)
Behvaior类,Behavior类是所有事件类的基类: namespace yii\base; /** * Behavior is the base class for all behavior ...