Java知识分享网 - 轻松学习从此开始!    

Java知识分享网

Java1234官方群25:java1234官方群17
Java1234官方群25:838462530
        
SpringBoot+SpringSecurity+Vue+ElementPlus权限系统实战课程 震撼发布        

最新Java全栈就业实战课程(免费)

springcloud分布式电商秒杀实战课程

IDEA永久激活

66套java实战课程无套路领取

锋哥开始收Java学员啦!

Python学习路线图

锋哥开始收Java学员啦!

ORM思想及相关框架实现原理_讲义 PDF 下载


分享到:
时间:2021-03-25 06:52来源:http://www.java1234.com 作者:转载  侵权举报
ORM思想及相关框架实现原理_讲义 PDF 下载
失效链接处理
ORM思想及相关框架实现原理_讲义 PDF 下载


本站整理下载:
提取码:w900 
 
 
相关截图:
 
主要内容:

课程大纲
 ORM 思想
 ORM 的经典应用:Hibernate 案例及实现原理
 ORM 的经典应用:MyBatis 案例及实现原理
 自定义一个 ORM 框架:MiniORM
一.ORM 思想
目前,通过 Java 语言连接并操作数据库的技术或方式已经有很多了,例如:JDBC,
Hibernate,MyBatis,TopLink 等等。其中 JDBC 是 Java 原生的 API,支持连接并操作各种关系
型数据库。相信每个程序员都是从 JDBC 开始学起的,然后才接触到各种持久层框架。
JDBC 作为 Java 原生 API,有优点,也有缺点,这里主要说一下缺点:
1. 编码繁琐,效率低
2. 数据库连接的创建和释放比较重复,也造成了系统资源的浪费
3. 大量硬编码,缺乏灵活性,不利于后期维护
4. 参数的赋值和数据的封装全是手动进行
... ...
可能有些程序员还可以再列出一些 JDBC 的缺点,如果你已经很久没有使用过 JDBC 了,
印象已经不深刻了,那么相信下面的代码能勾引起你的些许回忆。
public List<Book> findAll() {
 Connection connection = null;
 PreparedStatement preparedStatement = null;
 ResultSet resultSet = null;
 List<Book> bookList = null;
 
 try {
 //加载数据库驱动
 Class.forName("com.mysql.jdbc.Driver");
 //通过驱动管理类获取数据库链接
 connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "123");
 //定义 sql 语句 ?表示占位符
 String sql = "select * from t_book where author = ?";
 //获取预处理 statement
 preparedStatement = connection.prepareStatement(sql);
 //设置参数,第一个参数为 sql 语句中参数的序号(从 1 开始),第二个参数为设置的参数值
 preparedStatement.setString(1, "张三");
 //向数据库发出 sql 执行查询,查询出结果集
 resultSet = preparedStatement.executeQuery();
 //遍历查询结果集
 bookList = new ArrayList<>();
 while(resultSet.next()){
 Book book=new Book();
 book.setId(resultSet.getInt("id"));
 book.setName(resultSet.getString("bname"));
 book.setAuthor(resultSet.getString("author"));
 book.setPrice(resultSet.getDouble("price"));
 bookList.add(book);
 }
 return bookList;
 } catch (Exception e) {
 e.printStackTrace();
 return null;
 }finally{
 //释放资源
 if(resultSet!=null){
 try {
 resultSet.close();
 } catch (SQLException e) {
 e.printStackTrace();
 }
 }
 if(preparedStatement!=null){
 try {
 preparedStatement.close();
 } catch (SQLException e) {
 e.printStackTrace();
 }
 }
 if(connection!=null){
 try {
 connection.close();
 } catch (SQLException e) {
 e.printStackTrace();
 }
 }
 } }
正是因为 JDBC 存在着各

 

------分隔线----------------------------

锋哥公众号


锋哥微信


关注公众号
【Java资料站】
回复 666
获取 
66套java
从菜鸡到大神
项目实战课程

锋哥推荐