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

来源:互联网 发布:手机flac转换软件 编辑:程序博客网 时间:2024/04/30 13:31

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("编号"+"\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();            }    }}
0 0