JDBC的使用与IO流文件路径问题和getResourceAsSteam

先下载相关连接数据库的jar包
在这里插入图片描述
在项目下新建一个lib存放jar文件
右键 build path引入
在这里插入图片描述
现在就是使用jdbc相关的接口

关于使用读取配置文件的 getResourceAsStream的路径问题

使用.class.getResourceAs("/")
如果在src目录下即加个斜杠即可 若配置文件在该类所属包下不要加/

如果使用.getclass().getResource
.class.getClassLoader().getResourceAsStream(“db.properties”)
因为db是在src目录下直接就可以使用 如果在相关包里面就用/

在使用statement数据库操作对象的方法中
execute(sql) 若是查询的sql语句是成功返回true 而增删改是false

常用的方法是
executeQuery(sql)返回一个Result
通过while循环 .next()遍历
通过getXXX(字段名)即可得到数据

executeUpdate(sql)—主要是执行增删改的操作,返回int 大于0成功
否则失败。

对于解决sql注入问题 我们需要采用更好的方法
connection.prepareStatement.setInt(参数一,参数二)
对于第一个参数是sql语句中第几个问号
parameterIndex 表示的是sql语句中第几个"?", setInt(), 如果你要set的字段是整形的,那就要用它, 如果是Long型的那就要用setLong(), 同理 String型的用setString().
executeQuery()这是无参的!!!!返回一个Result避免sql语句注入

总结:
在使用相关程序连接数据库时要使用jdbc就必须实现jdbc所提供的接口才能访问
这里所谓的驱动,其实就是实现了java.sql.Driver接口的类。如oracle的驱动类是 oracle.jdbc.driver.OracleDriver.class(此类可以在oracle提供的JDBC jar包中找到),此类实现了java.sql.Driver接口。

由于驱动本质上还是一个class,将驱动加载到内存和加载普通的class原理是一样的:使用Class.forName(“driverName”)。以下是将常用的数据库驱动加载到内存中的代码:

//加载Oracle数据库驱动 Class.forName(“oracle.jdbc.driver.OracleDriver”);
//加载SQL Server数据库驱动 Class.forName(“com.microsoft.sqlserver.jdbc.SQLServerDriver”);
//加载MySQL 数据库驱动 Class.forName(“com.mysql.jdbc.Driver”);

注意:Class.forName()将对应的驱动类加载到内存中,然后执行内存中的static静态代码段,代码段中,会创建一个驱动Driver的实例,放入DriverManager中,供DriverManager使用。

详情去看
https://www.cnblogs.com/javazs/p/7825316.html

关于IO的文件读取路径问题
eclipse下
在这里插入图片描述
路径是默认在该类所在项目下根目录

idea下
在这里插入图片描述
默认也是在项目不过得是模块下的路径 因为idea的模块等于eclipse的项目 比较是模块就是在项目里 所以得写模块名 如果在eclipse就不用了,因为已经在项目下

关于getResource路径下问题
在这里插入图片描述
一个默认是从该类文件下所在的包中开始找
一个是从项目根目录开始找
如果是多方寻找需要加/ 或者\

通过类加载器去找就是从项目开始搜索 范围更大
默认是项目的src下的不同于io路径 所以不要再加src了

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值