在学习任何一种ORM的时候,免不了都要让我们想起原生态的JDBC是如何写的,因为只有这样你才能感受到为什么要用到新的ORM产品,
诸如学习hibernate等等。jdbc顾名思义的意思是java的数据库连接(java database connectity).它是一种执行sql的javaAPI,可以为多种数据库提供统一的访问基准。
一般执行jdbc的流程是这样的:1,加载数据库的驱动 2,获得连接 3,向数据库发起sql请求 4,获取返回数据库处理的结果 5,处理数据库返回的结果 6,释放资源。
package jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class jdbcDemo {
public static void main(String[] args) throws SQLException {
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
// 1注册驱动
try {
Class.forName("com.mysql.jdbc.Driver");
// 2获得连接
conn = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/test", "root", "root");
System.out.println("数据库连接成功。。。");
// 3编写sql语句
// String sql = "select * from userName where username=?";
String sql = "select * from userName ";
ps = conn.prepareStatement(sql);
// ps.setString(1, "world");
// 4执行sql
rs = ps.executeQuery();
// 5处理结果集
while (rs.next()) {
System.out.println(rs.getString("id") + " "
+ rs.getString("username"));
}
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
// 6关闭资源
if (rs != null) {
rs.close();
}
if (ps != null) {
ps.close();
}
if (conn != null) {
conn.close();
}
}
}
}
用jdbc编码的方式的缺点
1,数据库的连接使用时就创建 不使用时就关闭 每次连接数据库 对数据库进行频繁的操作 导致资源严重被浪费 一开一闭
2,sql语句被写到java代码中 如果数据库表改变了 就必须重新编写java类
3,设置参数比较麻烦,必须明确知道参数的位置,要不然会出错
4,结果集处理比较繁琐 获取结果时存在大量的手工操作,如果一张表有十几个字段的话就需要十几次rs.get语句,造成大量的重复工作