• Java对MySQL数据库进行连接、查询和修改(转)


    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. 连接数据库

      (1) 下载Mysql连接驱动

    网址: http://dev.mysql.com/downloads/connector/j/ ,下载后放在F:博士科研资料数据库学习mysql相关程序文件中,解压。

      (2) 加载JDBC驱动

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

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

                      

    复制代码
    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("编号"+"	"+"姓名"+"	"+"年龄");
                    while (rs.next()){
                        System.out.print(rs.getInt(1) + "	");
                        System.out.print(rs.getString(2) + "	");
                        System.out.print(rs.getInt(3) + "	");
                        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("编号"+"	"+"姓名"+"	"+"年龄");
                    while (rs.next()){
                        System.out.print(rs.getInt(1) + "	");
                        System.out.print(rs.getString(2) + "	");
                        System.out.print(rs.getInt(3) + "	");
                        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("编号"+"	"+"姓名"+"	"+"年龄");
                while (rs.next()){
                    System.out.print(rs2.getInt(1) + "	");
                    System.out.print(rs2.getString(2) + "	");
                    System.out.print(rs2.getInt(3) + "	");
                    System.out.println();
                }
                    
                rs.close();
                stmt.close();
                conn.close();
                }catch(Exception e)
                {
                    e.printStackTrace();
                }
        }
    }
    复制代码
  • 相关阅读:
    LeetCode :: Validate Binary Search Tree[具体分析]
    一世12年龄在泥土还在打,硅谷00创业毕竟开始播放!
    大学毕业生上班第一天6月3号码
    发送到快捷方式不见了
    【转】三种方式在C++中调用matlab
    【转】C++调用Matlab的.m文件
    C++函数模板与模板函数
    Visual Studio 行末回车时运算符两侧自动加空格是怎么设置的
    java回顾4 Java基本数据类型
    zoj 2402
  • 原文地址:https://www.cnblogs.com/mxxhit/p/3998166.html
Copyright © 2020-2023  润新知