原生JDBC连接总结

今天开始继续编写代码,用的IDE是Intellij Idea。

是在github上寻找到一个基础的涉及[会议管理系统]的web设计,在下载下来源码并重新编写源码,有如下感受。

该系统很少使用第三方框架,完整来说没有熟悉的ibatis,mybatis,spring,亦或是log4j这样的日志管理。

主要涉及技术:JDBC,MySQL,Servlet,Filter,Listener,jsp,jQuery、Ajax

重新复习了下大学的课程。

先从类和数据库交互说起,每次从页面传来的请求通过Web.xml找到对应的servlet处理类,没有spring的注入,那么每个类在使用的时候都需要重新创建一个毋庸置疑。

从servlet的doGet和doPost调用Service中的方法,Sevice调用Dao层的处理,Dao层是我第一个研究的重点,

服务器到数据库的交互不可无中生有,因此,在Dao中的每一次处理都会有一次数据库的连接,数据的处理,处理的结果,连接的断开。从代码来看主要涉及

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
这三个类,

Connection处理与数据库的连接,每次连接都需要驱动注册,连接的具体条件请参考这篇文章,很详细的解释了基础连接[原生JDBC]

PreparedStatement的对象通过connection.prepareStatement("Sql语句")来新建出来,这里需要注意的是PreparedStatement继承Statement类,算是对父类进行了优化处理,对于初学者很容易能掌握。

ResultSet是sql语句执行的结果,主要针对查询操作。当你要取出结果集中的数据时,通过while循环,条件是resultSet.next(),可以直接用resultSet.get属性("表列名")/get属性(index),index是查询结果的第几列的意思。

con = DBUtils.getConnection();
ps = con.prepareStatement("SELECT * FROM employee WHERE username=? AND password=?");
ps.setString(1, userName);
ps.setString(2, password);
rs = ps.executeQuery();
if (rs.next()) {
    return new Employee(rs.getInt("employeeid"), rs.getString("employeename"), rs.getString("username"), rs.getString("phone"), rs.getString("email"), rs.getInt("status"), rs.getInt("departmentid"), rs.getString("password"), rs.getInt("role"));
}
上面代码就是一个数据库连接,通过用户名和密码查询一个员工实体的过程。

与快捷方便的框架相比,记住每次数据库连接后都需要关闭连接,依次关闭ResultSet,PreparedStatement,Connection!!

未完待续...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值