JDBC简单笔记

package JDBCText;

import java.sql.*;
import java.util.ResourceBundle;

/**
 * @author Cai
 * @time 2020-10-27-20:06
 */
public class TextConclusion {
    public static void main(String[] args) throws Exception {
        //使用资源绑定器绑定属性配置文件
        ResourceBundle bundle = ResourceBundle.getBundle("jdbc");//文件放在src目录下,而且无需带后缀
        String driver = bundle.getString("driver");
        String url = bundle.getString("url");
        String user = bundle.getString("user");
        String password = bundle.getString("password");

        Connection conn = null;
        Statement stmt = null;
        ResultSet rs = null;

        try {
            //1注册驱动
            //方法一:
//            Driver driver = new com.mysql.cj.jdbc.Driver();
//            DriverManager.registerDriver(new com.mysql.cj.jdbc.Driver());
            Driver driver = new com.mysql.jdbc.Driver();//老的驱动类,IDEA会有提醒的
//            DriverManager.registerDriver(driver);

            //方法二:利用反射
            Class.forName(driver);

            //2获取连接
            /*
             * url:统一资源定位符(网络中某个资源的绝对路径)
             * 例如百度的网站https://www.baidu.com/这个就是url
             * url包括
             * 协议
             * IP
             * port
             * 资源名
             *
             * http://182.61.200.7:80/index.html
             *   http://通信协议
             *   182.61.200.7服务器IP地址
             *   80 服务器软件的端口
             *   index.html 是服务器上的某个资源名
             *
             * jdbc:mysql://127.0.0.1:3306/portbjpowernode
             *   jdbc:mysql协议名
             *   127.0.0.1或者localhost都是本机IP地址
             *   3306 mysql数据库端口号
             *   bjpowernode 具体的数据库实例名
             * */
//            String url = "jdbc:mysql://localhost/mysql/lovewhf?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC";//时区问题解决方法1
//            url: jdbc:mysql://localhost/db?serverTimezone=Asia/Shanghai
            conn = DriverManager.getConnection(url,user,password);
            System.out.println("数据库链接对象 = " + conn);

            //3获取数据库操作对象(createStatement对象专门执行sql语句)
            stmt = conn.createStatement();

            //4执行sql
//            String sql = "insert into student(name,age,id,class) values('me',1054,'ass','gf')";
            //executeUpdate专门执行DML语句的(insert delete update)
            //返回值是"影响数据库中的记录条数"
//            int count = stmt.executeUpdate(sql);
//            System.out.println(count == 1 ? "插入成功" : "插入失败");
            String sql = "select * from student";
            //int executeUpdate(insert/delete/update)
            //ResultSet executeQuery(select)
            rs = stmt.executeQuery(sql);//专门执行DQL语句的方法
            //5处理查询结果集
            boolean flag1 = rs.next();//返回Boolean类型
//            if (flag1) {
//                //光标指向行有数据
//                //取数据
//                //getString(),无论数据库中类型是什么,以string类型取出
//                String ename = rs.getString(1);//JDBC中,所有下标从1开始,不是从0开始,代表第几列
//                String eage = rs.getString(2);
//                String eid = rs.getString(3);
//                System.out.println(ename+","+eage+","+eid);
//            }

            while (rs.next()) {//代表那一行有数据
                String ename = rs.getString(1);//JDBC中,所有下标从1开始,不是从0开始,代表第几列
                String eage = rs.getString(2);
                String eid = rs.getString(3);
//                或者可以调成
//                String empno = rs.getString("加上列名");//但是要写重命名之后的列名
//                int id = rs.getInt(1);//也可以转化成int类型,但是像string不能转化成int,要看情况
                System.out.println(ename+","+eage+","+eid);
//                System.out.println(ename+",");
            }
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        } finally {
            //释放资源
            //为了保证资源一定释放,在finally语句中关闭资源
            //从小到大依次关闭
            //分别对其try catch
            try {
                if (stmt != null){
                    stmt.close();
                }
            } catch (SQLException throwables) {
                throwables.printStackTrace();
            }
            try {
                if (conn != null){
                    conn.close();
                }
            } catch (SQLException throwables) {
                throwables.printStackTrace();
            }
        }
    }
}

参考:
https://www.bilibili.com/video/BV1Bt41137iB?p=1

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值