JDBC是接口 是规范,本身sun公司没有实现 需要各大数据库厂商实现;
为什么要使用JDBC?因为要把数据库持久化,持久化数据最好的方式就是把数据保存到数据库中,而java要把数据保存到数据库中就需要使用jdbc…
步骤: 写配置文件properties
Driver = com.mysql.jdbc.Driver
写一个工具类用来加载驱动和其他一些固定的字符串
private static Properties p = new Properties();
static {
InputStream stream = Thread.currentThread().getContextClassLoader().getResourceAsStream(“db.properties”);
try {
p.load(stream);
Class.forName(p.getProperty(“Driver”));
} catch (Exception e) {
e.printStackTrace();
}
}
这样就可以解决硬编码问题了,如果有需要换数据库的话,直接改配置文件就可以了。
每次操作之后需要关流,也就是释放资源,符合先开后关的原则
public static void close(Connection con, Statement st, ResultSet rs){
try {
if (rs != null) rs.close();
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if (st != null) st.close();
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if (con != null) con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
在工具类中把要用的方法都完成之后,就开始CURD操作,使用dao层
上图对dao的操作进行了说明,IStudentDao是一个接口,说明一下,如果在方法中需要获取一个参数的值:双引号,中间两个+,例 : “+值+”:
StudentDaoImpl实现类
首先是增加:insert into 表名(字段1,字段2…) values(值1,值2…);
修改:update 表名 set 字段名 = 值 where 过滤条件
删除:delete from 表名 where 过滤条件;
查询:select * from 表名(where 过滤条件);如果查询全部就不需要加过滤条件,查询一个就加上
以上总结: 执行JDBC,牢记口诀–贾琏欲执事
贾:加载驱动
链:创建并连接
欲:获得语句对象 Statement(语句对象)(需要SQL语句)
执:执行SQL语句
事:释放资源(用完之后,需要释放,不然会一直占用内存)
希望能帮助到大家,也希望对我也有帮助,哈哈…