zoukankan      html  css  js  c++  java
  • Java连接MySQL数据库及简单操作代码

    1.Java连接MySQL数据库

    Java连接MySql需要下载JDBC驱动MySQL-connector-java-5.0.5.zip(举例,现有新版本)。然后将其解压缩到任一目录。我是解压到D盘,然后将其目录下的MySQL-connector-java-5.0.5-bin.jar加到classpath里,具体如下:

    “我的电脑”-> “属性” -> “高级” -> “环境变量”,在系统变量那里编辑classpath,将D:MySQL-connector-java-5.0.5MySQL-connector-java-5.0.5-bin.jar加到最后,在加这个字符串前要加“;”,以与前一个classpath区分开。然后确定。

    package hqs;
    import java.sql.*;
    public class DataBasePractice {
     
        public static void main(String[] args) {
            //声明Connection对象
            Connection con;
            //驱动程序名
            String driver = "com.mysql.jdbc.Driver";
            //URL指向要访问的数据库名mydata
            String url = "jdbc:mysql://localhost:3306/mydata";
            //MySQL配置时的用户名
            String user = "root";
            //MySQL配置时的密码
            String password = "root";
            //遍历查询结果集
            try {
                //加载驱动程序
                Class.forName(driver);
                //1.getConnection()方法,连接MySQL数据库!!
                con = DriverManager.getConnection(url,user,password);
                if(!con.isClosed())
                    System.out.println("Succeeded connecting to the Database!");
                //2.创建statement类对象,用来执行SQL语句!!
                Statement statement = con.createStatement();
                //要执行的SQL语句
                String sql = "select * from student";
                //3.ResultSet类,用来存放获取的结果集!!
                ResultSet rs = statement.executeQuery(sql);
                System.out.println("-----------------");
                System.out.println("执行结果如下所示:"); 
                System.out.println("-----------------"); 
                System.out.println(" 学号" " " " 姓名"); 
                System.out.println("-----------------"); 
                 
                String name = null;
                String id = null;
                while(rs.next()){
                    //获取stuname这列数据
                    name = rs.getString("stuname");
                    //获取stuid这列数据
                    id = rs.getString("stuid");
                    //首先使用ISO-8859-1字符集将name解码为字节序列并将结果存储新的字节数组中。
                    //然后使用GB2312字符集解码指定的字节数组。
                    name = new String(name.getBytes("ISO-8859-1"),"gb2312");
                    //输出结果
                    System.out.println(id + " " + name);
                }
                rs.close();
                con.close();
            catch(ClassNotFoundException e) {  
                //数据库驱动类异常处理
                System.out.println("Sorry,can`t find the Driver!");  
                e.printStackTrace();  
                catch(SQLException e) {
                //数据库连接失败异常处理
                e.printStackTrace(); 
                }catch (Exception e) {
                // TODO: handle exception
                e.printStackTrace();
            }finally{
                System.out.println("数据库数据成功获取!!");
            }
        }
     
    }

    2.添加、修改、删除操作

    在上面while代码段后面添加以下代码段:

    String name = null;
                String id = null;
                while(rs.next()){
                    //获取stuname这列数据
                    name = rs.getString("stuname");
                    //获取stuid这列数据
                    id = rs.getString("stuid");
                    //首先使用ISO-8859-1字符集将name解码为字节序列并将结果存储新的字节数组中。
                    //然后使用GB2312字符集解码指定的字节数组。
                    name = new String(name.getBytes("ISO-8859-1"),"gb2312");
                    //输出结果
                    System.out.println(id + " " + name);
                }
             
                 
                 
                PreparedStatement psql;
                ResultSet res;
                //预处理添加数据,其中有两个参数--“?”
                psql = con.prepareStatement("insert into student values(?,?)");
                psql.setInt(18);              //设置参数1,创建id为5的数据
                psql.setString(2"xiaogang");      //设置参数2,name 为小明
                psql.executeUpdate();           //执行更新
                 
                //预处理更新(修改)数据
                psql = con.prepareStatement("update student set stuname = ? where stuid = ?");
                psql.setString(1,"xiaowang");       //设置参数1,将name改为王五
                psql.setInt(2,10);              //设置参数2,将id为2的数据做修改
                psql.executeUpdate();
                 
                //预处理删除数据
                psql = con.prepareStatement("delete from student where stuid = ?");
                psql.setInt(15);
                psql.executeUpdate();
                 
                //查询修改数据后student表中的数据
                psql = con.prepareStatement("select*from student");
                res = psql.executeQuery();          //执行预处理sql语句
                System.out.println("执行增加、修改、删除后的数据");
                while(res.next()){
                    name = res.getString("stuname");
                    id = res.getString("stuid");
                    name = new String(name.getBytes("ISO-8859-1"),"gb2312");
                    System.out.println(id + " " + name);
                }
                res.close();
                psql.close();


    该代码段使用到了预处理语句:

    con.prepareStatement(String sql);

    这样生成数据库底层的内部命令,并将该命令封装在preparedStatement对象中,可以减轻数据库负担,提高访问数据库速度。

    Java连接Oracle数据库的示例代码

    最基本的Oracle数据库连接代码(只针对Oracle11g):

    1、右键项目->构建路径->配置构建路径,选择第三项“库”,然后点击“添加外部Jar”,选择“D:Oracleapporacleproduct11.2.0server jdbclibojdbc6_g.jar”(注:D:Oracle为数据库的安装路径)。

    2、以下代码为非常标准的Oracle数据库连接代码示例:

    /**
     * 一个非常标准的连接Oracle数据库的示例代码
     */
    public void testOracle()
    {
        Connection con = null;// 创建一个数据库连接
        PreparedStatement pre = null;// 创建预编译语句对象,一般都是用这个而不用Statement
        ResultSet result = null;// 创建一个结果集对象
        try
        {
            Class.forName("oracle.jdbc.driver.OracleDriver");// 加载Oracle驱动程序
            System.out.println("开始尝试连接数据库!");
            String url = "jdbc:oracle:" + "thin:@127.0.0.1:1521:XE";// 127.0.0.1是本机地址,XE是精简版Oracle的默认数据库名
            String user = "system";// 用户名,系统默认的账户名
            String password = "147";// 你安装时选设置的密码
            con = DriverManager.getConnection(url, user, password);// 获取连接
            System.out.println("连接成功!");
            String sql = "select * from student where name=?";// 预编译语句,“?”代表参数
            pre = con.prepareStatement(sql);// 实例化预编译语句
            pre.setString(1, "刘显安");// 设置参数,前面的1表示参数的索引,而不是表中列名的索引
            result = pre.executeQuery();// 执行查询,注意括号中不需要再加参数
            while (result.next())
                // 当结果集不为空时
                System.out.println("学号:" + result.getInt("id") + "姓名:"
                        + result.getString("name"));
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
        finally
        {
            try
            {
                // 逐一将上面的几个对象关闭,因为不关闭的话会影响性能、并且占用资源
                // 注意关闭的顺序,最后使用的最先关闭
                if (result != null)
                    result.close();
                if (pre != null)
                    pre.close();
                if (con != null)
                    con.close();
                System.out.println("数据库连接已关闭!");
            }
            catch (Exception e)
            {
                e.printStackTrace();
            }
        }
    }
  • 相关阅读:
    yii2 批量插入
    yii2 ArrayHelper的19个函数+使用实例+功能详解
    thinkphp phpexcel
    yii2 ActiveForm beforeSubmit用法
    YII2项目常用技能知识总结
    Redis 的 fields 遇到的问题
    spring boot +mybatis+druid 多数据源配置
    简单使用shell 自动打包,发布项目 脚本
    cmpp 短信平台
    mysql workbench 导出表结构
  • 原文地址:https://www.cnblogs.com/1175429393wljblog/p/5736989.html
Copyright © 2011-2022 走看看