简单的数据库连接查询之JDBC六部曲

	此处会有详细说明连接数据库的操作!首先要自己在网上下载好mysql对应版本的包(www.mysql.com——>DOWNLOADS——>MySQL Community——>Connector/J——>选择需要下载的对应版本(Platform Independent “平台独立”)——>下载压缩包——>No thanks, just start my download.),具体操作如下。后续连接数据库操作在文件TestJDBC的注释(JDBC六部曲)中详细体现。Java代码使用IDEA编辑器编辑。

第3步
第4步

第5步
第6步
emp表格结构:
emp表格
emp表格数据:
7369 SMITH CLERK 7902 1980-12-17 800.00 20
7499 ALLEN SALESMAN 7698 1981-02-20 1600.00 300.00 30
7521 WARD SALESMAN 7698 1981-02-22 1250.00 500.00 30
7566 JONES MANAGER 7839 1981-04-02 2975.00 20
7654 MARTIN SALESMAN 7698 1981-09-28 1250.00 1400.00 30
7698 BLAKE MANAGER 7839 1981-05-01 2850.00 30
7782 CLARK MANAGER 7839 1981-06-09 2450.00 10
7788 SCOTT ANALYST 7566 1987-04-19 3000.00 20
7839 KING PRESIDENT 1981-11-17 5000.00 10
7844 TURNER SALESMAN 7698 1981-09-08 1500.00 0.00 30
7876 ADAMS CLERK 7788 1987-05-23 1100.00 20
7900 JAMES CLERK 7698 1981-12-03 950.00 30
7902 FORD ANALYST 7566 1981-12-03 3000.00 20
7934 MILLER CLERK 7782 1982-01-23 1300.00 10
9999 zzt
dept表格结构:
dept表格
项目结构:
两文件区别:执行数据库操作。
文件TestJDBC为写(DML:insert,delect,update“数据库更新”) stat.executeUpdate(String sql);
文件TestUpdate为读(DQL:select“数据库不发生变化,只处理结果”) ? = stat.executeQuery(String sql);
项目结构
文件TestUpdate中内容:(做查询此emp表格中所有信息操作)

package query;

import java.sql.*;

public class TestUpdate {
    public static void main(String[] args){
        try {
            String classname = "com.mysql.jdbc.Driver";
            String url = "jdbc:mysql://localhost:3306/test";
            String user = "root";
            String password = "root";
            //String sql = "insert into emp(empno,ename) values(9999,'zzt')";
            String sql = "select * from emp";

            //2.加载驱动类   “有三(5)种方式”
            Class.forName(classname);
            //DriverManager.registerDriver(new com.mysql.jdbc.Driver());    或new Driver;    要把catch (ClassNotFoundException e) {}删掉。
            //System.setProperty("jdbc.driver","com.mysql.cj.jdbc.Driver");     //System.setProperty("属性名","值");
            //或不创建。 因为DriverManager可以默认创建,但性能较慢。  要把catch (ClassNotFoundException e) {}删掉。

            //3.获取链接
            Connection conn = DriverManager.getConnection(url,user,password);

                //操作事务
                // JDBC默认的开启事务,默认的自动提交事务。
                // 可以自己设置手动提交事务。conn.setAutoCommit(false);  默认是true(自动),false(手动)
                // 可以设置事务的隔离级别。conn.setTransactionIsolation(Connection.TRANSACTION_READ_UNCOMMITTED);
                // 事务最终的处理操作。
                        // 提交commit();回滚rollback(s);保存环境点Savepoint s = conn.setSavepoint("x");

            //开启事务
            conn.setAutoCommit(true);

            //4.创建状态参数
            Statement stat = conn.createStatement();
            //5.执行一个Update操作。(DML,DDL)
//            int count = stat.executeUpdate(sql);    //有返回值,表示数据库更新的行数。
            //查询    执行一个query操作,数据库没发生真是变化,需要结果做处理,肯定要返回值。
            //        数组[8] Object[8] 集合List<Object> Set<Object> Map<String,Object>
            //        一行记录,里面有8个值,怎么存? “Map集合最好——Map<列名key,单元格内值value>”
            //              empno = 7369 , ename = smith , job = clerk , mgr = 7902 , hiredate = 1980-1-1 , sam = 800 , comm = null , deptno = 10
            //        多行记录,14行记录,怎么存? “Set<Map<String,Object>>集合最好”
            //              set目的是为了存储好多行记录,每一行是一个map对象。
            //              map目的是为了存储一行中多个单元格的值。key列名 value单元格查询出来。
            //        在JDBC中有专门的 ResultSet
            //Iterator it = set.iterator();
            //      it.hasNext();判断是否有下一个元素 it.next();获取
            //Properties pro = new Properties();    可以读取配置文件
            //      pro.load(inputStream/Reader);     加载输入输出流
            //      pro.getProperty(key);     通过键找值
            //Enumeration en = pro.propertyNames();     遍历
            //      en.hasMoreElements();       判断是否有下一个元素。若有则en.nextElement();获取。

            ResultSet rs = stat.executeQuery(sql);
            //ResultSet类中有两个常用方法:rs.next();判断是否有下有一个元素  若有则rs.getXXX();获取
            while (rs.next()){     //若知道只有一条记录则可用if判断。多条记录就用while。
                int empno = rs.getInt("empno");     //也可以写索引号。“从1开始!”
                String ename = rs.getString("ename");
                Date hiredate = rs.getDate("hiredate");  //此Date存在java.sql包中。(java.util包中也有)
                float sal = rs.getFloat("sal");
                System.out.println(empno+"--"+ename+"--"+hiredate+"--"+sal);
//                System.out.println("执行完毕!");
            }

            System.out.println("执行完毕!");
            stat.close();
            conn.close();
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

文件TestJDBC中内容:(做删除此emp表格中其中一条信息操作)

package testjdbc;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;

//JDBC六部曲
//1.导包。(将下载好的jar文件包导入此工程里。)
//      在工程里创建一个Directory文件夹lib,将网上下载好的压缩包解压后的文件中的mysql-connecter-java-5.1.48.jar复制到此文件夹中。
//      再建立连接:File——>Project Structure...(工程设置)——>librsries——> + ——>java——>选择此工程lib文件夹里的.jar文件——>Apply OK。
//2.加载驱动类Driver。
//      在.jar文件中有com.mysql——>jdbc——>Driver。 即com.mysql.jdbc.Driver。
//3.获取连接。 DriverManager
//        DriverManager.getConnection()
//4.创建状态参数。可以理解为曾经的流。
//        conn.createStatement()
//*5.执行数据库操作。
//      写(DML:insert,delect,update“数据库更新”) stat.executeUpdate(String sql);
//      读(DQL:select“数据库不发生变化,只处理结果”) ? = stat.executeQuery(String sql);
//6.关闭。
public class TestJDBC {
    public static void main(String[] args){
        try {
            //2.
            String className = "com.mysql.jdbc.Driver";
            Class.forName(className); //加载类 类中的静态元素就执行了。   Class clazz = Class.forName("className");
            //3.
            String url = "jdbc:mysql://localhost:3306/test";    //jdbc:mysql://ip:port/database名
            String user = "root";
            String password = "root";
            Connection conn = DriverManager.getConnection(url,user,password);
            //4.
            Statement stat = conn.createStatement();
            //5.
            //数据库中添加一行数据的语句:insert into emp(empno,ename) values(9999,'zzt');
            //String sql = "insert into emp(empno,ename) values(9999,'zzt')";
            String sql = "delete from emp where empno = 9999";
            stat.executeUpdate(sql);
            System.out.println("执行完毕");
            //6.
            stat.close();
            conn.close();

        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }

    }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值