夜光序言:
今夕何夕兮,搴舟中流。
今日何日兮,得与王子同舟。
蒙羞被好兮,不訾诟耻。
心几烦而不绝兮,得知王子。
山有木兮木有枝,心悦君兮君不知。
正文:
查询【这是重点~~】
使用jdbcTemplate也可以实现查询操作
几天不看,就容易忘记~~,所以要经常回看~~
我们在做项目的时候记得要遵循一个原则:那就是避免用到过多技术
记得有一个项目用到ssm和ssh还有mvc等,结果就是软七八糟,所以不推荐嗯
- 查询返回某一个值
第二个参数:返回类型的class
第一个参数:sql语句
//1、夜光:查询表中有多少条数据
@Test
public void testCount(){
//创建一个对象,用来设置数据库信息
DriverManagerDataSource dataSource =new DriverManagerDataSource();
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
//下面,我们还需要设置数据库地址
dataSource.setUrl("jdbc:mysql:///studentsmanager");
dataSource.setUsername("root");
dataSource.setPassword("1111");
//创建jdbcTemplate模板对象,设置数据源
JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
//夜光:调用jdbcTemplate里面的方法实现计数
//我们先写一个sql语句
String sql = "select count(*) from user";
//调用jdbcTemplate里面的方法来实现
int count = jdbcTemplate.queryForObject(sql, Integer.class);
System.out.println(count);
}
第二个:查询返回对象~
报错:
我们需要冷静下来,好好专研怎么书写嗯~~
//jdbc底层实现的代码
@Test
public void testJDBC() throws SQLException{
Connection conn = null;
PreparedStatement psmt = null;
ResultSet rs = null;
//加载驱动
try {
Class.forName("com.mysql.jdbc.Driver");
//创建连接
conn = DriverManager.getConnection("jdbc:mysql:///studentsmanager", "root", "1111");
//编写sql语句
String sql = "select * from user where username=?";
//预编译sql
psmt = conn.prepareStatement(sql);
//夜光:设置参数值
psmt.setString(1, "lucy");
//执行sql
rs = psmt.executeQuery();
//遍历结果集
while(rs.next()){
//得到返回结果值
String username = rs.getString("username");
String password = rs.getString("password");
//夜光:我想把这两个值放到user对象里面去
User user = new User();
user.setUsername(username);
user.setPassword(password);
System.out.println(user);
}
} catch (Exception e) {
e.printStackTrace();
}finally{
try{
rs.close();
psmt.close();
conn.close();
}catch (SQLException e) {
e.printStackTrace();
}
}
}