java项目中连接MySql

来源:互联网 发布:linux大作业 编辑:程序博客网 时间:2024/06/06 07:45

在Java之中,所有数据库操作的类和接口都保存在了Java.sql包中,在这个包中
一个类:DriverManager类
四个接口:Connection,Statement,ResultS,PreparedStatement

所有JDBC连接数据库的操作流程都是固定的,按照如下几部完成:
1. 加载数据库的驱动程序(向容器加载)
2. 进行数据库连接(通过DriverManager类完成,Connection表示连接)
3. 进行数据的CRUD(Statement,PreparedStatement,ResultSet)
4. 关闭数据库操作以及连接(直接关闭连接就够了)

一. 加载数据库的驱动程序

所有的JDBC实际上都是由各个不同的数据库生产商提供的数据库驱动程序,这些都是由 *.jar包给出来的,所以如果要使用那么就需要为其配置CLASSPATH,而后要设置驱动程序的类名称(包.类)

  1. 新建Java项目
  2. 在项目中引入mysql-connector-java-5.1.44-bin.jar包(包在MySQL官网中下载)右键项目-Build Path-Add External Archievs…
  3. 加载数据库驱动程序(一组类和包)
        MySQL驱动程序类:com.mysql.jdbc.Driver
        加载类使用:Class.forName(“com.mysql.jdbc.Driver”);

二.数据库连接

要想连接数据库需要提供有如下几个信息:

  • 数据库的连接地址 : jdbc:mysql://localhost/
  • 数据库名称:mydata
  • 数据库的用户名 :root
  • 数据库的密码 : xxx
    因此,可写为:
jdbc:mysql://localhost/mydata?user=root&password=xxx

要连接数据库必须依靠DriverManager类完成,在此类定义有如下方法:
连接数据库:

public static Connection getConnection(String url,String user,String password)

在JDBC里面,每一个数据库的连接都要求使用一个Connection对象进行封装,所以只要有一个新的Connection对象就表示要连接一次数据库

三. 数据库的操作

数据库的操作依靠Statement接口完成
如果想要取得Statement接口的实例化对象则需要依靠Connection接口提供的方法完成
取得Statement接口对象:

public Statement createStatement() throw SQLException

当取得了Statement接口对象之后可以使用以下两个方法实现数据库的操作:

  • 数据更新
public int executeUpdate(String sql) throws SQLException

返回更新的行数

  • 数据查询
public ResultSet executeQuery(String sql) throws SQLException

返回一个集合
在ReslutSet接口里面定义了如下方法:
向下移动指针并判断是否有数据行:

public boolean next() throws SQLException()

移动之后就可以直接取得当前数据行中所有数据列的内容了:
取出数据列的内容:getInt(),getDouble,getString(),getDate()

数据更新实例:

Statement stmt=conn.createStatement();String sql="insert into dept values (70,'C','C')";int len=stmt.executeUpdate(sql);System.out.println("影响的数据行:"+len);

输出:
这里写图片描述

数据查询实例:

ResultSet rs=stmt.executeQuery("Select * from dept");while(rs.next()){        System.out.println(rs.getString("deptno"));            }

四. 关闭数据库

Connection接口提供有close()方法:

public void close() throw SQLException

实例:

数据库mydata中表dept中的内容
这里写图片描述
Java代码:

import java.sql.*;public class TestMySqlConnection {    public static void main(String[] args) {        // TODO Auto-generated method stub        try{            //第一步加载数据库驱动程序            Class.forName("com.mysql.jdbc.Driver");        }catch (Exception ex){            ex.printStackTrace();        }        try{            //数据库的连接            Connection conn=DriverManager.getConnection("jdbc:mysql://localhost/mydata?user=root&password=961218");            Statement stmt=conn.createStatement();            ResultSet rs=stmt.executeQuery("Select * from dept");            while(rs.next()){                System.out.println(rs.getString("deptno"));            }        }catch(SQLException ex){            System.out.println("SQLException"+ex.getMessage());            System.out.println("SQLState:"+ex.getSQLState());            System.out.println("VendorError"+ex.getErrorCode());        }    }}

输出:
取出了dept表中的deptno
这里写图片描述

原创粉丝点击