今天初学数据库的一些简单创建数据库和表,并进行简单的查询,插入。

接下学习的就是java工程中怎么链接数据库呢。主要的方法和用到的类如下。

切记,mysql需要的jar包 mysql-connector-java-5.1.7-bin.jar

sqlserver需要的jar包 sqljdbc4.jar

oracle需要的jar包 ojdbc6.jar

注意:下面用到的类不是jar中的,而是java.sql中的类。

以下是三个常用数据库的连接实现

一、sqlserver

package com.direct.database;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List; public class TestPreparedStatement {
public static List< Student> list = new ArrayList<Student>();//存学生对象的集合
public int a;
public void flag(){
a = 10;
System.out.println(a);
//驱动类
String driver = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
//url地址
String url = "jdbc:sqlserver://localhost:1433;databaseName=test";
String userName = "sa";
String password = "123456";
Connection conn = null;//用于应用程序和数据的连接
Statement stmt = null;//已经创建连接的基础上,向数据库发送SQL语句
ResultSet rs = null;//暂时存放数据库查询操作所获得的结果 try {
//加载驱动类
Class.forName(driver);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
try {
//得到一个连接
conn = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databaseName=test", "sa","123456");//得到一个连接
stmt = conn.createStatement();
rs = stmt.executeQuery("select * from Info");//执行SQL语句,并存在ResultSet对象中
while (rs.next()) {
//存对象到集合
Student student = new Student(rs.getString("id"), rs.getString("name"), rs.getString("sex"));
TestPreparedStatement.list.add(student); System.out.print(rs.getString("id")); //读取数据
System.out.print(rs.getString("name"));
System.out.print(rs.getString("sex"));
System.out.println();
} // 创建PreparedStatement对象
//PreparedStatement pstmt = conn.prepareStatement("insert into Info values(?, ? ,?)");//添加
//删除
PreparedStatement pstmt1 = conn.prepareStatement("delete from Info where id = ? and name = ?");
//使用set方法设置参数
PreparedStatement pstmt2 = conn.prepareStatement("update Info set name=? where name ='star' ");
pstmt1.setInt(1, 4);
pstmt1.setString(2, "the");//根据id和name删除数据库的内容 /*pstmt.setInt(1, 1);
pstmt.setString(2, "star");
pstmt.setString(3, "nan");//添加数值对到数据库
*/
pstmt2.setString(1, "super");//更新数据
pstmt2.executeUpdate();
//pstmt.executeUpdate();
pstmt1.executeUpdate();//执行PreparedStatement语句
} catch (SQLException e) {
e.printStackTrace();
}finally{
//关闭连接
try {
rs.close();
stmt.close();
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} }
System.out.println("----------------");
for (int i = 0; i < TestPreparedStatement.list.size(); i++) {
System.out.println(TestPreparedStatement.list.get(i));
}
} public static void main(String[] args) {
new TestPreparedStatement().flag(); }
}

 

二、mysql方式一

package com.dkt.mysql.util;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement; public class MysqlConnection {
public static void main(String[] args) {
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
Connection conn=null;
PreparedStatement prep = null;
Statement state = null;
ResultSet rs = null;
try {
String url = "jdbc:mysql://localhost:3306/mytest";
conn = DriverManager.getConnection(url, "root", "123456");
state = conn.createStatement();
prep = conn.prepareStatement("select * from useinfo");
rs = prep.executeQuery();
while (rs.next()) {
int id= rs.getInt("userId");
String name= rs.getString("userName");
String sex = rs.getString("userSex");
System.out.println("从mysql读取的数据:"+id+"---------"+name+"--------"+sex);
} } catch (SQLException e) {
e.printStackTrace();
}finally{ try {
if(rs==null) rs.close();
if(prep==null) prep.close();
if(state==null) state.close();
if(conn==null) conn.close();
} catch (SQLException e) {
e.printStackTrace();
} } }
}

二、mysql方式二

使用jdbc.properties配置文件方式

className=com.mysql.jdbc.Driver
url=jdbc\:mysql\://localhost\:3306/mytest
userName=root
password=123456

  

package com.dkt.mysql.util;

import java.io.InputStream;
import java.sql.Connection;
import java.sql.Driver;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Properties; /*
* 反射链接: 什么是反射?
* 我们在程序运行时得到一个字符串,这个字符串是某个类名称,
* 如果要实例化这个类,就需要用到反射。
* 在工程下的src中创建file文件,命名为 jdbc.properties(配置文件)
* 里面存放是键值对的形式。
* 在java 程序中以文件输入流的形式加载进来
*
* 加载驱动 Class.forName();
* oracle: oracle.jdbc.driver.OracleDriver
* mysql: com.mysql.jdbc.Driver
*
* 链接数据库 DriverManager.getConnection(url,user,password);
* mysql:url如下
* jdbc:mysql://localhost:3306/databaseName?userUnicode=true&characterEncoding=utf-8
* "jdbc:mysql://localhost:3306/mytest"
*/
public class Uconn {
public static void main(String[] args) {
new Uconn().conn();
} public void conn(){ Connection conn=null;
PreparedStatement ps = null;
ResultSet rs = null;
//从配置文件中获得加载驱动信息
InputStream in = getClass().getClassLoader().getResourceAsStream("jdbc.properties");
Properties proper = new Properties();
try {
proper.load(in);
String className = proper.getProperty("className");
String url = proper.getProperty("url");
String userName= proper.getProperty("userName");
String password = proper.getProperty("password"); Driver driver = (Driver) Class.forName(className).newInstance();
System.out.println(driver); String sql = " select * from useInfo where userName='娜娜' ";//sql语句,查询useInfo表的数据
conn = DriverManager.getConnection(url, userName, password);
ps = conn.prepareStatement(sql);// 进行sql语句的预编译,防止sql注入
rs = ps.executeQuery();
System.out.println(rs.next());
while (rs.next()) {
int id= rs.getInt("userId");
String name= rs.getString("userName");
String sex = rs.getString("userSex");
System.out.println("从mysql读取的数据:"+id+"---------"+name+"--------"+sex);
} } catch (Exception e) {
e.printStackTrace();
} finally{
try {
if(rs==null) rs.close();
if(ps==null) ps.close();
if(conn==null) conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}

三、oracle

package com.dkt.util;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet; public class JdbcOracle {
public static void main(String[] args) {
JdbcOracle oracle = new JdbcOracle();
oracle.testOracle();
} /**
* 一个非常标准的连接Oracle数据库的示例代码
*/
public void testOracle(){
Connection con = null;// 创建一个数据库连接
PreparedStatement pre = null;// 创建预编译语句对象,一般都是用这个而不用Statement
ResultSet result = null;// 创建一个结果集对象
try
{
Class.forName("oracle.jdbc.driver.OracleDriver");// 加载Oracle驱动程序
System.out.println("开始尝试连接数据库!");
String url = "jdbc:oracle:thin:@localhost:1521:orcl";// 127.0.0.1是本机地址,XE是精简版Oracle的默认数据库名
String user = "scott";// 用户名,系统默认的账户名
String password = "tiger";// 你安装时选设置的密码
con = DriverManager.getConnection(url, user, password);// 获取连接
System.out.println("连接成功!");
String sql = "select * from scott.emp where ename=?";// 预编译语句,“?”代表参数
pre = con.prepareStatement(sql);// 实例化预编译语句
pre.setString(1, "KING");// 设置参数,前面的1表示参数的索引,而不是表中列名的索引
result = pre.executeQuery();// 执行查询,注意括号中不需要再加参数
while (result.next()){
// 当结果集不为空时
System.out.println("编号:" + result.getInt("empno") + ",姓名:"
+ result.getString("ename")+",工资:"+result.getInt("sal"));
}
}
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 JDBC链接sqlserver/mysql/oracle的更多相关文章

  1. jdbc连接sqlserver,mysql,oracle

    class xxx{ private static String port = "1433"; private static String ip = "192.168.2 ...

  2. Java JDBC链接Oracle数据库

    package com.test.test; import java.io.FileInputStream;import java.io.FileNotFoundException;import ja ...

  3. Java与SQL Server, MySql, Oracle, Access的连接方法以及一些异常解决

    Java与SQL Server, MySql, Oracle, Access的连接方法以及一些异常解决 I. 概述 1.1 JDBC概念 JDBC(Java Database Connectivity ...

  4. C#操作SqlServer MySql Oracle通用帮助类Db_Helper_DG(默认支持数据库读写分离、查询结果实体映射ORM)

    [前言] 作为一款成熟的面向对象高级编程语言,C#在ADO.Net的支持上已然是做的很成熟,我们可以方便地调用ADO.Net操作各类关系型数据库,在使用了多年的Sql_Helper_DG后,由于项目需 ...

  5. C#操作SqlServer MySql Oracle通用帮助类

    C#操作SqlServer MySql Oracle通用帮助类 [前言] 作为一款成熟的面向对象高级编程语言,C#在ADO.Net的支持上已然是做的很成熟,我们可以方便地调用ADO.Net操作各类关系 ...

  6. 关于在Java中链接SQLServer数据库中失败的原因分析

    首先声明:笔者是Java的初学者,并且一值是走在自学的道路上,长久以来只有“度娘”相伴.(加入了各种Java学习群,基本没有热心帮人解决问题的.可以理解-_-!!!)大神级的人物就不必看拙文了,没有什 ...

  7. Java jdbc链接 mySQL 写的crud

    1.JDBC(Java Data Base Connectivity java数据库连接)概念: 是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编 ...

  8. Java jdbc访问sqlserver,oracle数据库

    1.JDBC访问Oracle数据库 public class Jdbc_Oracle { // 静态代码块,只会执行一次,类似C#静态构造方法 static { try { // 加载数据库驱动一次 ...

  9. Java jdbc访问sqlserver,oracle数据库 DEMO

    1.JDBC访问Oracle数据库 public class Jdbc_Oracle { // 静态代码块,只会执行一次,类似C#静态构造方法 static { try { // 加载数据库驱动一次 ...

随机推荐

  1. Extjs在form展示后台单个对象的属性

    目的:写一个按钮事件,点击时弹出一个win窗体,里面镶嵌form表单,并且展示后台单个对象的属性 先来后台: public void find(){ String clientId = request ...

  2. windows10下使用ubuntu,并搭建nodejs环境

    1.首先要在win10的设置里打开开发人员使用模式 2.在bash下,下载ubuntu系统 3.安装git,因为要把下载nvm的话,需要git sudo apt-get install git 4.安 ...

  3. 对cors的理解

    一.简介 CORS需要浏览器和服务器同时支持.目前,所有浏览器都支持该功能,IE浏览器不能低于IE10. 整个CORS通信过程,都是浏览器自动完成,不需要用户参与.对于开发者来说,CORS通信与同源的 ...

  4. IDEA通过Maven WebApp archetype 创建Spring boot项目骨架

    springboot项目资源: GitHub地址:https://github.com/TisFreedom/springbootdome.git 码云地址:https://gitee.com/Tis ...

  5. 集合之五:Set接口

    set接口的简单介绍 set接口在API中的说明是:一个不包含重复元素的 collection.更确切地讲,set 不包含满足 e1.equals(e2) 的元素对 e1 和 e2,并且最多包含一个 ...

  6. Django中的CSRF(跨站请求伪造)

    Django中的CSRF(跨站请求伪造) Django CSRF  什么是CSFR 即跨站请求伪装,就是通常所说的钓鱼网站. 钓鱼网站的页面和正经网站的页面对浏览器来说有什么区别? (页面是怎么来的? ...

  7. [BZOJ 4921][Lydsy1706月赛]互质序列

    传送门 因为区间 gcd 的变换不会超过 log 个,所以我们可以暴力枚举区间起点,复杂度是 n*logn 的 #include <bits/stdc++.h> using namespa ...

  8. MySQL使用UNIQUE实现数据不重复插入

    unique列在一个UNIQUE键上插入包含重复值的记录时,我们可以控制MySQL如何处理这种情况:使用IGNORE关键字或者ON DUPLICATE KEY UPDATE子句跳过INSERT.中断操 ...

  9. C#集合之位数组

    如果需要处理的数字有许多位,就可以使用BitArray类和BitVector32结构.BitArray类位于System.Collection,BitVector32结构位于System.Collec ...

  10. supervisor使用小记

    最近使用supervisor部署爬虫,百度了很多,磕磕绊绊自己也算是用起来了,以下是整理的使用情况. 第一步: 下载安装supervisor 使用的ubuntu16.04,直接 sudo apt-ge ...