首页 > 其他分享 >mybatis - Jdbc、Hibernate、Mybatis的区别

mybatis - Jdbc、Hibernate、Mybatis的区别

时间:2024-04-07 10:11:23浏览次数:14  
标签:ps Jdbc rs ResultSet Mybatis connection mybatis close null

 

 

一、采用JDBC方式访问数据库

 

1.1、使用JDBC的5个步骤

① 注册驱动和数据库信息

② 获得 Connection,并使用它打开Statement对象

③ 通过 Statement 对象执行SQL语句,并获得结果对象 ResultSet

④ 通过代码将ResultSet 对象转化为 POJO对象

⑤ 关闭数据库资源

 

1.2、优点

① 只需要会调用JDBC接口中的方法即可。

② 具有代码复用性,只需进行少量修改即可访问其他JDBC支持的数据库。

 

1.3、缺点

① 代码量大,编码麻烦。

② 需要对异常进行正确捕获并关闭连接。

 

1.4、Demo

public class UserExecutor {
    public static void main(String[] args) throws Throwable {
        // 加载驱动程序
        Class.forName("com.mysql.cj.jdbc.Driver");
        
        // 获得Connection,并使用它打开Statement对象
        Connection connection = null;
        PreparedStatement ps = null;
        ResultSet rs = null;
        try {
            connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/seaking?useSSL=false","root","123456");
            
            // 通过Statement对象执行SQL语句,并获得结果对象ResultSet
            ps = connection.prepareStatement("select name,address from role");
            rs = ps.executeQuery();
            
            // 通过代码将ResultSet对象转化为POJO对象
            while (rs.next()){
                System.out.println(String.format("姓名: %s, 上船地点: %s",rs.getString("name"),rs.getString("address")));
            }
            
            // 附加: 参数查询带
            ps = connection.prepareStatement("select roleId,name,apearNum,address,dgreeId" 
                                             + "from role where roleId = ?");
            ps.setInt(1,1);
            rs = ps.executeQuery();
            while(rs.next()) {
                System.out.println(String.format("roleId:%d,姓名:%s,上船集数:%s,上船地点:%s,身份:%d",
                                                rs.getInt("roleId"),rs.getString("name"),rs.getString("apearNum"),
                                                rs.getString("address"),rs.getInt("dgreeId")));
            }
        } finally {
            // 关闭数据库资源
            close(connection,ps,rs);
        }
    }
    
    
    public static void close(Connection connection,PreparedStatement ps,ResultSet rs) throws Throwable {
        if (rs != null && !rs.isClosed()) rs.close();
        if (ps != null && !ps.isClosed()) ps.close();
        if (connection != null && !connection.isClosed()) connection.close();
        System.out.println("资源已关闭");
    }
}

 

 

二、

 

 

 

 

— 要养成终生学习的习惯 —

标签:ps,Jdbc,rs,ResultSet,Mybatis,connection,mybatis,close,null
From: https://www.cnblogs.com/houhuilinblogs/p/18118499

相关文章

  • MyBatis plus 详解
    当使用MyBatisPlus进行开发时,首先需要添加相应的依赖到项目中。通常,在Maven项目中,可以在pom.xml文件中添加以下依赖:<dependency>  <groupId>com.baomidou</groupId>  <artifactId>mybatis-plus-boot-starter</artifactId>  <version>latest_version</versi......
  • 【附源码】计算机毕业设计在线教育平台(java+springboot+mysql+mybatis+论文)
    本系统(程序+源码)带文档lw万字以上  文末可领取本课题的JAVA源码参考系统程序文件列表系统的选题背景和意义在数字化时代背景下,传统教育模式正在逐渐向在线教育转型。一个高效的在线教育平台不仅可以突破时间和空间的限制,提供灵活多样的学习方式,还能够实现个性化教育资源......
  • SSM(Spring+SpringMVC+MyBatis)常用注解大全
    提示使用浏览器查找系统也快速查找,可避免漏看和疲劳Win:Ctrl+FMac:Command+F@Bean功能:用于在配置类中声明一个bean。用法:@ConfigurationpublicclassAppConfig{@BeanpublicMyServicemyService(){returnnewMyServiceImpl();}}@Com......
  • 【附源码】计算机毕业设计招投标管理系统(java+springboot+mysql+mybatis+论文)
    本系统(程序+源码)带文档lw万字以上  文末可领取本课题的JAVA源码参考系统程序文件列表系统的选题背景和意义在建筑、工程及众多行业领域,招投标活动是获取项目和签订合同的关键环节。一个高效的招投标管理系统能够帮助企业规范招投标流程,提高文档处理效率,确保信息透明公正,......
  • 【附源码】计算机毕业设计在线音乐播放平台(java+springboot+mysql+mybatis+论文)
    本系统(程序+源码)带文档lw万字以上  文末可领取本课题的JAVA源码参考系统程序文件列表系统的选题背景和意义在线音乐播放平台随着互联网技术的发展和数字媒体的普及逐渐成为人们获取音乐的主要途径。这类平台不仅为用户提供了便捷的音乐收听体验,还推动了音乐产业的新商业......
  • Spring/SpringBoot/SpringCloud Mybatis 执行流程
    在后续分析Mybatis流程中代码的可能会用到IDEAdebug技巧:条件断点代码断点,右键勾选弹窗Condition:写入表达式回到上一步:Java动态代理实现InvocationHandler接口:packagecom.lvyuanj.core.test;importcom.lvyuanj.core.model.User;importorg.apache.......
  • 【附源码】计算机毕业设计智慧社区团购系统的设计(java+springboot+mysql+mybatis+论文
    本系统(程序+源码)带文档lw万字以上  文末可领取本课题的JAVA源码参考系统程序文件列表系统的选题背景和意义随着互联网技术的发展和普及,社区团购作为一种新兴的电商模式,正逐渐改变着人们的购物习惯。然而,传统的社区团购系统存在着一些问题,如信息不透明、效率低下、用户体......
  • 【附源码】计算机毕业设计游戏分享网站(java+springboot+mysql+mybatis+论文)
    本系统(程序+源码)带文档lw万字以上  文末可领取本课题的JAVA源码参考系统程序文件列表系统的选题背景和意义随着互联网技术的发展,游戏行业正逐渐向数字化、网络化方向发展。越来越多的游戏玩家开始通过网络分享自己的游戏心得、攻略和视频等内容,形成了一个庞大的游戏分享......
  • 【附源码】计算机毕业设计在线药品销售系统(java+springboot+mysql+mybatis+论文)
    本系统(程序+源码)带文档lw万字以上  文末可领取本课题的JAVA源码参考系统程序文件列表系统的选题背景和意义随着互联网技术的不断发展,人们的生活方式也在逐渐改变。在药品销售领域,传统的线下药店已经不能满足人们的需求。在线药品销售系统应运而生,为人们提供了一个更加便......
  • Mybatis plue(二) 扩展功能、插件功能
    扩展功能P12扩展功能-代码生成器方法一:mybatisplus官方文档中的代码生成配置方法二:插件mybatsx方法三:插件mybatisplusP13DB静态工具iservice中的方法是非静态的,db方法是静态的。静态方法无法读取到类的泛型的,也就无法知道实体类类型、表信息,可以看到方法中都需......