使用jdbc连接数据库
1.导入jar包 mysql-connector-java-5.1.7-bin.jar。并加入到环境中。
2.注册驱动,获取连接
//注册驱动 Class.forName("com.mysql.jdbc.Driver");//com.mysql.jdbc.Driver mysql驱动
//获取链接 con = DriverManager.getConnection("jdbc:mysql:///数据库名称", "账号", "密码");
3.不推荐使用Statement对象执行sql语句,有sql注入的风险。
@Test public void test(){ String sql = "select * from t_user WHERE id ="+1; try { Statement stmt = con.createStatement(); ResultSet set = stmt.executeQuery(sql); while(set.next()){ int id = set.getInt("id"); String user_name = set.getString("user_name"); String password = set.getString("password"); System.out.println(id+"**"+user_name+"**"+password); } } catch (SQLException e) { e.printStackTrace(); } }
4.推荐使用PrepareStatement对象执行sql语句
@Test public void test02(){ String sql = "select * from t_user WHERE id = ?";
PrepareStatement ps = null; try { ps = con.prepareStatement(sql); ps.setInt(1,1); ResultSet set = ps.executeQuery(); while(set.next()){ int id = set.getInt("id"); String user_name = set.getString(2); String password = set.getString("password"); System.out.println(id+"**"+user_name+"**"+password); } } catch (SQLException e) { e.printStackTrace(); }
finally{
try {
ps.close();
} catch (SQLException e) {
e.printStackTrace();
}
try {
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
1. executeQuery();返回一个ResultSet结果集
2. execute(); //返回类型为boolean,是否执行成功
3. executeUpdate(); //返回int类型,是影响的行数
4.setXxx(... , ...);对问号进行赋值
Xxx:代表数据类型
两个参数第一个参数是对应第几个?号占位符下标从1开始,第二个是赋的值
5.getXxx(...);获取对应的字段的值
Xxx:代表数据类型
参数可以写数据库中的字段名,也可以写序号下标从1开始
6.关闭连接 close();
前面后执行那个就先关闭那个,上面从上往下执行,关闭的时候就从下往上关闭。