先下载相关连接数据库的jar包

getResourceAsStream是加载那个目录的文件 getresourceasstream报错_sql


在项目下新建一个lib存放jar文件

右键 build path引入

getResourceAsStream是加载那个目录的文件 getresourceasstream报错_加载_02


现在就是使用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使用。

详情去看

关于IO的文件读取路径问题

eclipse下

getResourceAsStream是加载那个目录的文件 getresourceasstream报错_sql_03


路径是默认在该类所在项目下根目录idea下

getResourceAsStream是加载那个目录的文件 getresourceasstream报错_加载_04


默认也是在项目不过得是模块下的路径 因为idea的模块等于eclipse的项目 比较是模块就是在项目里 所以得写模块名 如果在eclipse就不用了,因为已经在项目下关于getResource路径下问题

getResourceAsStream是加载那个目录的文件 getresourceasstream报错_bc_05


一个默认是从该类文件下所在的包中开始找

一个是从项目根目录开始找

如果是多方寻找需要加/ 或者\

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