(Java 基础知识) Java 连接数据库

无情 阅读:620 2021-03-31 22:57:10 评论:0
一般过程:

  (1) 调用Class.forName()方法加载驱动程序。

  (2) 调用DriverManager对象的getConnection()方法,获得一个Connection对象。

  (3) 创建一个Statement对象,准备一个SQL语句,这个SQL语句可以是Statement对象(立即执行的的语句)、PreparedStatement语句(预编译的语句)或CallableStatement对象(存储过程调用的语句)。

  (4) 调用excuteQuery()等方法执行SQL语句,并将结果保存在ResultSet对象;或者调用executeUpdate()等方法执行SQL语句,不返回ResultSet对象的结果。

  (5)对返回的ResultSet对象进行显示等相当的处理。

  (6)释放资源。

 

环境搭建:

        连接数据库

  (1) 下载Mysql连接驱动

  (2) 加载JDBC驱动

         操作方法:在Eclipse中,选中相应的工程,点击Project-Properties中的Java Build Path,在Libraries中增加mysql-connector-java-5.1.21-bin.jar,点OK。

  (3) 建一个简单的数据库如下:

                                                          

1、连接数据库

import java.sql.*; 
public class GetConnection { 
    public static void main(String[] args){ 
        try{ 
            //调用Class.forName()方法加载驱动程序 
            Class.forName("com.mysql.jdbc.Driver"); 
            System.out.println("成功加载MySQL驱动!"); 
        }catch(ClassNotFoundException e1){ 
            System.out.println("找不到MySQL驱动!"); 
            e1.printStackTrace(); 
        } 
         
        String url="jdbc:mysql://localhost:3306/mysql";    //JDBC的URL     
        //调用DriverManager对象的getConnection()方法,获得一个Connection对象 
        Connection conn; 
        try { 
            conn = DriverManager.getConnection(url,    "root",""); 
            //创建一个Statement对象 
            Statement stmt = conn.createStatement(); //创建Statement对象 
            System.out.print("成功连接到数据库!"); 
            stmt.close(); 
            conn.close(); 
        } catch (SQLException e){ 
            e.printStackTrace(); 
        } 
    } 
}

2. 查询数据表

  在询数据表时,需要用到ResultSet接口,它类似于一个数据表,通过该接口的实例可以获得检索结果集,以及对应数据表的接口信息。

import java.sql.*; 
 
public class SelectTable { 
     
    public static void main(String[] args){ 
        try{ 
            //调用Class.forName()方法加载驱动程序 
            Class.forName("com.mysql.jdbc.Driver"); 
            System.out.println("成功加载MySQL驱动!"); 
                 
            String url="jdbc:mysql://localhost:3306/aniu";    //JDBC的URL     
            Connection conn; 
 
            conn = DriverManager.getConnection(url,    "root",""); 
            Statement stmt = conn.createStatement(); //创建Statement对象 
            System.out.println("成功连接到数据库!"); 
 
            String sql = "select * from stu";    //要执行的SQL 
            ResultSet rs = stmt.executeQuery(sql);//创建数据对象 
                System.out.println("编号"+"\t"+"姓名"+"\t"+"年龄"); 
                while (rs.next()){ 
                    System.out.print(rs.getInt(1) + "\t"); 
                    System.out.print(rs.getString(2) + "\t"); 
                    System.out.print(rs.getInt(3) + "\t"); 
                    System.out.println(); 
                } 
                rs.close(); 
                stmt.close(); 
                conn.close(); 
            }catch(Exception e) 
            { 
                e.printStackTrace(); 
            } 
    } 
}


 

3. 修改和删除数据库

//修改删除数据 
import java.sql.*; 
public class UpdateDeleteDemo { 
    public static void main(String[] args)throws Exception{ 
        try{ 
            //调用Class.forName()方法加载驱动程序 
            Class.forName("com.mysql.jdbc.Driver"); 
            System.out.println("成功加载MySQL驱动!"); 
                 
            String url="jdbc:mysql://localhost:3306/aniu";    //JDBC的URL     
            Connection conn; 
 
            conn = DriverManager.getConnection(url,    "root",""); 
            Statement stmt = conn.createStatement(); //创建Statement对象 
            System.out.println("成功连接到数据库!"); 
 
            //查询数据的代码 
            String sql = "select * from stu";    //要执行的SQL 
            ResultSet rs = stmt.executeQuery(sql);//创建数据对象 
                System.out.println("编号"+"\t"+"姓名"+"\t"+"年龄"); 
                while (rs.next()){ 
                    System.out.print(rs.getInt(1) + "\t"); 
                    System.out.print(rs.getString(2) + "\t"); 
                    System.out.print(rs.getInt(3) + "\t"); 
                    System.out.println(); 
                } 
                 
            //修改数据的代码 
            String sql2 = "update stu set name=? where number=?"; 
            PreparedStatement pst = conn.prepareStatement(sql2); 
            pst.setString(1,"8888"); 
            pst.setInt(2,198); 
            pst.executeUpdate(); 
                 
            //删除数据的代码 
            String sql3 = "delete from stu where number=?"; 
            pst = conn.prepareStatement(sql3); 
            pst.setInt(1,701); 
            pst.executeUpdate(); 
                 
            ResultSet rs2 = stmt.executeQuery(sql);//创建数据对象 
            System.out.println("编号"+"\t"+"姓名"+"\t"+"年龄"); 
            while (rs.next()){ 
                System.out.print(rs2.getInt(1) + "\t"); 
                System.out.print(rs2.getString(2) + "\t"); 
                System.out.print(rs2.getInt(3) + "\t"); 
                System.out.println(); 
            } 
                 
            rs.close(); 
            stmt.close(); 
            conn.close(); 
            }catch(Exception e) 
            { 
                e.printStackTrace(); 
            } 
    } 
}



 

声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

关注我们

一个IT知识分享的公众号