1、rs.next()在if循环与while循环中的区别
next()方法返回的是boolean型,用来确认有没有数据,执行一次游标后移一位,用来遍历用的。
if(rs.next()){...} 只遍历一次,即第一条数据,或者说是确认是否存在数据,
while(rs.next(){....} 遍历每一条数据
2、使用配置文件配置数据库
过程:首先,新建一个db.properties。
配置内容如下:
driverName=com.mysql.jdbc.Driver
url=jdbc:mysql://192.16.0.111:3306/test
IP=192.16.0.111
Port=3306
dbname=test
username=root
password=123456
接着,读取配置文件。
读取的方法不少,有基于Servlet的,但对于有些项目来说,数据库连接的建立是单独拎出来的一个实现类。在Servlet中的暂时先放着,以后补充。在非Servlet时,我们可以使用getClassLoader()的方式读取配置文件。
Properties properties = new Properties();
InputStream in;
in = MySqlDbiFactory.class.getClassLoader().getResourceAsStream("db.properties");
//MySqlDbiFactory是我们的非Servlet类
try {
properties.load(in);
String IP = properties.getProperty("IP");
int port = Integer.parseInt(properties.getProperty("Port"));
String dbname = properties.getProperty("dbname");
String username = properties.getProperty("username");
String password = properties.getProperty("password");
dbi.connect(IP, port, dbname, username, password);
//这里是调用的外部的方法,把参数传进去。
} catch (IOException e) {
e.printStackTrace();
}
还有,这个方法的一个重要的点是:db.properties文件需要放在WEB-INF/classes目录中。否则出现访问不到路径的情况。
(如果看官有不同想法建议,欢迎评论指正!)