JDBC流程

JDBC 使用要求加载相应jar包,所有语句自动commit
推荐一篇超详细的JDBC原理和开发步骤
https://www.jianshu.com/p/8a9635c156ea
具体流程
1、加载驱动(注册驱动)
这里推荐使用Class.forName()反射方法载入驱动,这样不会对详细驱动类产生依赖
连接Oracle

Class.forName("oracle.jdbc.driver.OracleDriver");

连接MySQL

Class.forName("com.mysql.jdbc.Driver");

2、建立连接+创建连接对象
Connection 连接对象,用于与数据库取得连接
Driver 用于创建 Connection对象
getConnection(url,user,password);
URL格式为 “子协议:自名称://主机名:port/数据库名”

Connection coon=DriverManager.getConnection
("jdbc:mysql://localhost:3306/数据库名称","用户名称","密码");//mysql
("jdbc:mysql://127.0.0.1:3306/sms?characterEncoding=UTF-8", "root", "root");//我的
("jdbc:oracle:thin:@127.0.0.1:1521:orcl","scott","tiger");//oracle

ps:在句柄前,获得连接对象后,可以通过
conn.setAutoCommit(false);取消自动提交 //里面参数为boolean
配合conn.commit();conn.rollback()使用,以防止脏数据
https://blog.csdn.net/chuck_kui/article/details/53909482

3、执行SQL语句(对数据库发出请求/创建运行对象)
Statement/PreparedStatement 语句对象,用于执行sql语句

preparedStatement pstm = conn.prepareStatement(sql);//预编译

配合 pstm.setType(index,value);//设置预处理的sql语句的值

不知道具体类型是,用pstm.setObject();
执行效率PreparedStatement>Statement

Statement sta = conn.createStatement();

ps: CallableStatement接口实现了preparedStatement
CallableStatement 储存过程语句对象,用于调用执行存储过程

4、返回查询结果
ResultSet 结果集

ResultSet rs = pstm.executeQuery();||sta.executeQuery(sql);

executeQuery()用于查询功能的sql语句;
executeUpdate()用于增、删、改;返回结果为Int
execute();适用于所有情况,返回boolean

ps: ResultSetMetaData rsmd = rs.getMetaData();
返回结果集的表结构对象

下面链接为三者区别
https://blog.csdn.net/Lee_QH/article/details/78033187?utm_source=distribute.pc_relevant.none-task

5、处理运行结果

while(rs.next()){//rs.next()指向结果第一条
    rs.getType(index);||rs.getType("attributeName");
}

注意日期型数据,下面链接是日期型数据的处理
https://www.cnblogs.com/dirgo/p/5025466.html

6、关闭连接
顺序为 rs pstm conn

-----20210330 update-----
最近在做对接,发现一个很坑的地方。

需要在一个接口获取一些数据,然后需要在某一个时刻,根据这些数据获取其他数据。好办,给这些要用到的数据存起来就好了,然后就想到了csv文件

诶嘿,我先存起来,然后确定用不到了再删除。我简直是个天才。

后来发现,尼玛,这不就是数据库的底层么……数据库文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值