关闭

Java访问MySQL

167人阅读 评论(0) 收藏 举报
分类:

如何使用Java访问MySQL数据库


Java语言访问MySQL Server数据库,需按以下步骤实现。


    第1步  获取Java与MySQL的连接器,可以从MySQL的官方网站上下载,下载地址为http://dev.mysql.com/downloads/connector/j/。

 

第2步  将下载的包存放在自己机器上jdk安装目录下面的jre目录下面的lib目录下面的ext目录中,在程序中导入与数据库操作相关的对象。

 

import java.sql.Connection;     //导入数据库连接对象

import java.sql.DriverManager;  //导入数据库驱动管理对象

import java.sql.ResultSet;      //导入数据记录集对象

import java.sql.SQLException;   //导入数据SQL操作异常对象

import java.sql.Statement;      //导入SQL操作接口对象


第3步:在程序中写入如下内容

 

String url; //连接数据库的字符串

String sql; //执行数据sql查询操作的字符串

Connection conn; //数据库连接变量

Statement st; //数据库操作对象

ResultSet rs; //数据记录集对象

        

url "jdbc:mysql://localhost:3306/test?user=root&password="; //在程序中只要修改这句,就可以实现数据库连接

        

try {

    conn DriverManager.getConnection(url);

    st conn.createStatement();

    sql "select from test"; //只要修改这句,就可以实现各种查询操作

    rs=st.executeQuery(sql); //执行数据查询

 

    while(rs.next())

    {

        System.out.println(rs.getString(1)); //获得数据表test中第1个字段的数据,该字段为字符串类型

        System.out.println(rs.getString(2)); //获得数据表test中第2个字段的数据,该字段为字符串类型

     }

     rs.close(); //关闭数据记录集

     conn.close();    //关闭数据库连接

 catch (SQLException e) {

     System.out.println("Error:"+e.toString()+e.getMessage());

}



Java 访问MySQL的小例子

Java访问MySQL,需要有mysql.jar包,这个需要提前准备好。在java中引入mysql.jar有两种方法,下面将详细介绍。

(一)新建项目时,通过导入外部jar的方法:

(1)打开myeclipse,新建java project,命名为JDBCMysql ,然后点击Next(注意,这里先不要忙着点击finish),如图:

 

点击Libraries-->Add External jars-->,将mysql.jar 导入,然后点击finish。如图:

 

这个时候,可以看到,mysql.jar 已经被导入了

 

(二)第一种方法并不好,这种jar包使用的是绝对路径,(比如D:\java\jars),如果项目换一台电脑或者jar包换了一个地方,那就不能用了,所以,使用上面的方法,不利于项目的扩展。下面介绍第二种方法。

(1)复制mysql.jar ,右击新建的项目,选择paste,这时可以发现mysql.jar已经被复制到了当前项目中了。

(2)右键mysql.jar,选择Build Path-->Add to Build Path,这时可以发现,在项目中多了一个Reference Libraries 目录,里面有刚才导入的mysql.jar。

这种情况下,mysql.jar 已经复制到了当前项目,即使换台电脑运行本项目,mysql.jar包也会跟着被复制,而找不到mysql.jar。这种方法,有良好的扩展性。推荐使用这种方法。

   导完了mysql.jar包后,接着就来写一个java小程序,测试java连接mysql。

java连接mysql,主要有以下几个步骤:

(1)注册驱动

[java] view plain copy
 print?
  1. <span style="font-size:18px;">//1.注册驱动  
  2.   try {  
  3.    Class.forName("com.mysql.jdbc.Driver");  
  4.   } catch (ClassNotFoundException e) {  
  5.    // TODO Auto-generated catch block  
  6.    e.printStackTrace();  
  7.   }</span>  

(2)创建数据库的连接
 

[java] view plain copy
 print?
  1. <span style="font-size:18px;">//2.创建数据库的连接  
  2. //数据库用户名和密码要改成自己的  
  3. //useUnicode=true&characterEncoding=GBK:支持中文  
  4. java.sql.Connection conn = java.sql.DriverManager.getConnection(  
  5.             "jdbc:mysql://localhost/test?useUnicode=true&characterEncoding=GBK","root""wxweven4814");</span>  


(3)获取表达式

[java] view plain copy
 print?
  1. <span style="font-size:18px;">//3.获取表达式SQL  
  2. java.sql.Statement stmt = conn.createStatement();</span>  

(4)执行SQL语句

[java] view plain copy
 print?
  1. <span style="font-size:18px;">//4.执行SQL  
  2. String sql = "select * from test";  
  3. java.sql.ResultSet res = stmt.executeQuery(sql);</span>  

(5)打印结果集里的数据
 

[java] view plain copy
 print?
  1. <span style="font-size:18px;">//5.打印结果集里的数据  
  2. while(res.next()) {  
  3.     System.out.print("the id: ");  
  4.     System.out.println(res.getInt(1));  
  5.     System.out.print("the user: ");  
  6.     System.out.println(res.getString("user"));  
  7.     System.out.print("the address: ");  
  8.     System.out.println(res.getString("addr"));  
  9.     System.out.println();  
  10. }</span>  

(6)释放资源,关闭连接(这是一个良好的习惯)
  

[java] view plain copy
 print?
  1. <span style="font-size:18px;">//6.释放资源,关闭连接(这是一个良好的习惯)  
  2. res.close();  
  3. stmt.close();  
  4. conn.close();</span>  

 

运行结果如下图:


注意,以上代码只是片段,实际运行时会抛出异常,运用myeclipse强大的自动抛出异常或者try、catch功能,就可以正确运行了。同时,需要你的mysql数据库中有相应的表。

居然不能上传附件,好吧,那我就只好把源代码贴出来了~~

[html] view plain copy
 print?
  1. /**  
  2.  * @author wxweven  
  3.  *  
  4.  */  
  5. public class JDBCTest {  
  6.   
  7.     /**  
  8.      * @param args  
  9.      * @throws SQLException   
  10.      */  
  11.     public static void main(String[] args) throws SQLException {  
  12.         //1.注册驱动  
  13.         try {  
  14.             Class.forName("com.mysql.jdbc.Driver");  
  15.         } catch (ClassNotFoundException e) {  
  16.             // TODO Auto-generated catch block  
  17.             e.printStackTrace();  
  18.         }  
  19.           
  20.         //2.创建数据库的连接  
  21.         //useUnicode=true&characterEncoding=GBK:支持中文  
  22.         java.sql.Connection conn = java.sql.DriverManager.getConnection(  
  23.                 "jdbc:mysql://localhost/test?useUnicode=true&characterEncoding=GBK",  
  24.                 "root", "wxweven4814");  
  25.           
  26.         //3获取表达式SQL  
  27.         java.sql.Statement stmt = conn.createStatement();  
  28.           
  29.         //4.执行SQL  
  30.         String sql = "select * from test";  
  31.         java.sql.ResultSet res = stmt.executeQuery(sql);  
  32.           
  33.         //5.打印结果集里的数据  
  34.         while(res.next()) {  
  35.             System.out.print("the id: ");  
  36.             System.out.println(res.getInt(1));  
  37.             System.out.print("the user: ");  
  38.             System.out.println(res.getString("user"));  
  39.             System.out.print("the address: ");  
  40.             System.out.println(res.getString("addr"));  
  41.             System.out.println();  
  42.         }  
  43.           
  44.           
  45.         //测试插入数据库的功能:  
  46.         //String inSql = "insert into test(user,addr) values('插入2','新地址2')";  
  47.         //stmt.executeUpdate(inSql);  
  48.           
  49.         //6.释放资源,关闭连接(这是一个良好的习惯)  
  50.         res.close();  
  51.         stmt.close();  
  52.         conn.close();  
  53.     }  
  54.   
  55. }  

Java 通过JDBC连接Mysql数据库的方法和实例【图文说明】


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

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

另一个文章里面有介绍http://www.cnblogs.com/taoweiji/archive/2012/12/11/2812295.html

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

/**
 * @author :陶伟基 ,微博:http://weibo.com/taoandtao
 * @date :2012/12/11
 * @place:广州大学华软软件学院
 */
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();
        }
 
    }
 
}

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:263664次
    • 积分:3058
    • 等级:
    • 排名:第11377名
    • 原创:18篇
    • 转载:346篇
    • 译文:2篇
    • 评论:4条
    最新评论