期末复习
一、数据库连接与使用
Connection:
Connection的获取:
获取connection首先要获取配置信息,配置信息可以写在配置文件,也可以直接写在代码中,这里使用的是从配置文件获取:
//获取信息
Properties pro = new Properties();
pro.load(JDBCUntils.class.getClassLoader().getResourceAsStream("jdbc.properties"));
String driverClassName = pro.getProperty("driverClassName");
String user = pro.getProperty("name");
String password = pro.getProperty("password");
String url = pro.getProperty("url");
使用DriverManager获取Connection,要先确保DriverManger类被加载,然后使用getConnection方法获取Connection:
//确保类加载
Class.forName(driverClassName);
//连接数据库
Connection con = DriverManager.getConnection(url, user, password);
Connection的使用在后面会应用
PreparedStatement:
获取PreparedStatement:
(connection的使用)使用Connection的prepareStatement()方法获取PreparedStatement,并且预加载sql代码
String sql = "select id,name,birth from customers where id = ?";
PreparedStatement pre = con.prepareStatement(sql);
使用PreparedStatement:
填充PreparedStatement,将sql代码中的’?‘填充:
pre.setObject(1, 15); // 查询id为15的的customers
用PreparedStatement获取ResultSet在ResultSet的获取中体现
ResultSet:
ResultSet的获取:
用PreparedStatement获取ResultSet:
ResultSet resultSet = pre.executeQuery();
ResultSet的使用:
ResultSet可以想象为sql搜索数据得到的表,而初始状态在表的第零行。
// re.next()就是跳到下一行,初始在第零行所以要先跳到第一行。如果是最后一行就跳出循环
while (re.next()) {
// 下面是每一行的各个数据,就是查询到的用户的所有信息
int id = re.getInt("id"); // 用getInt获取列名为"id"的int类型的数据
String name = re.getString(2); // 用getString获取第二列的类型为String的数据
Date birth = re.getDate(3); // 用 getDate获取第三列类型为Date的数据
System.out.println(" id=" + id + " name=" + name + " birth=" + birth);
}
补充 getXX()方法总结:
结果集读取数据的方法主要是getXXX() ,括号里的参数可以是整数或者字符串。
整数代表想要获取数据的列数,就是第几列
字符串代表想要获取数据的列名
而XXX可以代表的类型有:
基本的数据类型如整型(int),布尔型(Boolean),浮点型(Float,Double)等,比特(byte),还包括一些特殊的类型,如:日期类型(java.sql.Date),时间类型(java.sql.Time),时间戳类型 (java.sql.Timestamp),大数型(BigDecimal和BigInteger等)等。
具体体现就是getInt()、getBoolean()等
总结:
DriverManager —获取—> Connection —获取—> PreparedStatement —获取—> ResultSet —获取—> 数据库数据