欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Java 通过JDBC连接Mysql数据库

程序员文章站 2024-03-07 20:23:09
jdbc(java data base connectivity,java数据库连接)是一种用于执行sql语句的java api,可以为多种关系数据库提供统一访问,它由一组...

jdbc(java data base connectivity,java数据库连接)是一种用于执行sql语句的java api,可以为多种关系数据库提供统一访问,它由一组用java语言编写的类和接口组成。jdbc提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。

如果要使用数据库就要添加数据库的驱动,不同的数据库有不用的驱动,这里就不一一说明,添加jar程序驱动包的方法就不在这里解释,

另一个文章里面有介绍

下面是一个实例去介绍mysql数据库的连接,其它数据库的方法也是差不多的。

import java.sql.drivermanager;
import java.sql.resultset;
import java.sql.sqlexception;
import java.sql.connection;
import java.sql.statement;
public class mysqldemo {
  public static void main(string[] args) throws exception {
    connection conn = null;
    string sql;
    // mysql的jdbc url编写方式:jdbc:mysql://主机名称:连接端口/数据库的名称?参数=值
    // 避免中文乱码要指定useunicode和characterencoding
    // 执行数据库操作之前要在数据库管理系统上创建一个数据库,名字自己定,
    // 下面语句之前就要先创建javademo数据库
    string url = "jdbc:mysql://localhost:3306/javademo?"
        + "user=root&password=root&useunicode=true&characterencoding=utf8";
    try {
      // 之所以要使用下面这条语句,是因为要使用mysql的驱动,所以我们要把它驱动起来,
      // 可以通过class.forname把它加载进去,也可以通过初始化来驱动起来,下面三种形式都可以
      class.forname("com.mysql.jdbc.driver");// 动态加载mysql驱动
      // or:
      // com.mysql.jdbc.driver driver = new com.mysql.jdbc.driver();
      // or:
      // new com.mysql.jdbc.driver();
      system.out.println("成功加载mysql驱动程序");
      // 一个connection代表一个数据库连接
      conn = drivermanager.getconnection(url);
      // statement里面带有很多方法,比如executeupdate可以实现插入,更新和删除等
      statement stmt = conn.createstatement();
      sql = "create table student(no char(20),name varchar(20),primary key(no))";
      int result = stmt.executeupdate(sql);// executeupdate语句会返回一个受影响的行数,如果返回-1就没有成功
      if (result != -1) {
        system.out.println("创建数据表成功");
        sql = "insert into student(no,name) values('2012001','陶伟基')";
        result = stmt.executeupdate(sql);
        sql = "insert into student(no,name) values('2012002','周小俊')";
        result = stmt.executeupdate(sql);
        sql = "select * from student";
        resultset rs = stmt.executequery(sql);// executequery会返回结果的集合,否则返回空值
        system.out.println("学号\t姓名");
        while (rs.next()) {
          system.out
              .println(rs.getstring(1) + "\t" + rs.getstring(2));// 入如果返回的是int类型可以用getint()
        }
      }
    } catch (sqlexception e) {
      system.out.println("mysql操作错误");
      e.printstacktrace();
    } catch (exception e) {
      e.printstacktrace();
    } finally {
      conn.close();
    }
  }
}

另附上jdbc连接各种数据库的方法(经典)

1)连接oracle 8/8i/9i/10g/11g(thin模式)

class.forname("oracle.jdbc.driver.oracledriver").newinstance();

string url="jdbc:oracle:thin:@localhost:1521:orcl"    //orcl为oracle数据库的sid

string user="test";

string password="test";

connection con=drivermanager.getconnection(url,user,password);

2)连接db2数据库

class.forname("com.ibm.db2.jcc.db2driver");

string url="jdbc:db2://localhost:5000/testdb";

string user="test"; string password="test";

connection con=drivermanager.getconnection(url,user,password);

3)连接mysql数据库

class.forname("com.mysql.jdbc.driver");

string url="jdbc:mysql://localhost:8080/testdb";

string user="test"; string password="test";

connection con=drivermanager.getconnection(url,user,password);

4)连接sql server2000数据库

class.forname("com.microsoft.jdbc.sqlserver.sqlserverdriver");

string url="jdbc:microsoft:sqlserver://localhost:1433;databasename=testdb";

string user="test"; string password="test";

connection con=drivermanager.getconnection(url,user,password);

5)连接postgresql数据库

class.forname("org.postgresql.driver");

string url="jdbc:postgresql://localhost/testdb";

string user="test"; string password="test";

connection con=drivermanager.getconnection(url,user,password);

6)连接access数据库

复制代码 代码如下:
class.forname("sun.jdbc.odbc.jdbcodbcdriver");

string url="jdbc:odbc:driver={microsoft access driver (*.mdb)};dbq="+application.getrealpath("/data/testdb/mdb");

connection conn=drivermanager.getconnection(url,"","");

7连接sybase数据库

class.forname("com.sybase.jdbc.sybdriver");

string url="jdbc:sybase:tds:localhost:5007/testdb";

properties pro=system.getproperties();

pro.put("user","userid");

pro.put("password","user_password");

connection con=drivermanager.getconnection(url,pro);

8连接informix数据库

复制代码 代码如下:
class.forname("com.informix.jdbc.ifxdriver");

string url="jdbc:informix-sqli:localhost:1533/testdb:informixserver=myserver"user=testuser;password=testpassword"; connection con=drivermanager.getconnection(url);