前段时间突发奇想,想要做一个前后端结合的系统,就回顾了以下JDBC相关的内容,花了3个小时,学完+敲完,在这里记录一下吧。。。。
(借此想请教一下font-family中,哪个字体比较好看啊。。。)
1.先说说JDBC需要的类吧
①Connection ②Statement或PreparedStatement ③ResultSet呃呃呃呃,好像就这么多。。。。
接下来就是详细说一下这些类的作用了
1.1 Connection
顾名思义,它是连接数据库使用的接口类,主要是负责连接数据库,并担任传送数据的任务。
2.2 Statement或PreparedStatement
连接数据库了,你得执行SQL语句不是,他们就负责把SQL语句传到数据库。
由于Statement自身的一些局限性,并不太推荐使用,它儿子PreparedStatement比它要厉害一点,可以使用占位符,是预编译的,批处理又比Statement要好很多,待会看代码就会知道PreparedStatement要方便得多。
2.3 ResultSet
连接数据库,执行SQL语句,你得拿回来执行之后的数据啊,所以Resultet就可以把想要的数据给拿回来,它是SQL语句执行之后的结果集。
2.上代码。。。
不要忘记,数据库处理的代码要写在DAO层里。
(导入jar文件什么的就不说了)
先写一下一些参数吧(定义全局变量,方便后面调用)
private final String Url = "jdbc:mysql://localhost:3306/数据库名称";
private final String User = "root";//数据库用户名
private final String Password = "root";//密码
private Cinnection conn = null;
private PreparedStatement state = null;
private ResultSet rs = null;
try {
//激活数据库驱动
Class.forName("com.mysql.jdbc.Driver");
//创建数据库连接
conn = DriverManager.getConnection(Url, User, Password);
//创建SQL语句
//这里以Insert为例来说明一下占位符-->?
String updateSql = "Insert into tb_areainfo values(?,?)";
//执行SQL语句(预处理)
state = conn.prepareStatement(selectSql);
//占位符中填充数据
//seInt和setString或者其他类型的参数
//第一个参数表示第几个占位符,也就是SQL语句中的第几个问号
//第二个参数表示数据
state.setInt(1,student.getID());
state.setString(2,student.getName())
//执行
int flag = state.executeUpdate();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
//各种接口用完之后,关闭多余资源
//先打开的后关闭
//这里就会明白为什么说JDBC连接数据库就是一个架桥+炸桥的过程
try {
if (rs != null) {
rs.close();
}
if (state != null) {
state.close();
}
if (conn != null) {
conn.close();
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
ok,就这么多。。。