018,Spring 数据库编程

Spring和数据库编程


V哥官网:http://www.vgxit.com

本博客对应视频教程:http://www.vgxit.com/course/23

1,概述:

Spring最重要的功能毫无疑问就是操作数据。在Java互联网项目中,数据大部分存储在数据库和NoSQL工具中,我们接下来就要接触到基于Spring的数据库编程。数据库的编程是互联网编程的基础,Spring为开发者提供了JDBC模板模式,那就是它自身的jdbcTemplate,它可以简化许多代码的编程,但是在实际的工作中jdbcTemplate并不常用。Spring还提供了基于TransactionTemplate的支持事务的模板。只不过这些都不是常用技术。对于持久层,我们在开发的时候更多的是使用Mybatis或者Hibernate这样的技术。对于Hibernate的话,Spring提供了HibernateTemplate给与支持,它可以简化对于Hibernate的编程。对于Mybatis框架,由于版本原因,Spring并没有支持Mybatis,好在Mybatis社区开发了介入Spring的开发包,该包也提供了SqlSessionTemplate给开发者使用。更让人欣喜的是该包还屏蔽了SqlSessionTemplate这种功能性的代码。让开发者在开发的时候可以擦除SqlSessionTemplate让开发者直接使用Mapper接口编程,大大提高了编码的可读性。


2,传统的JDBC代码的弊端:

传统的jdbc代码,是非常有弊端的。比如如下代码:

public class ConnMysqlTest {
    public static void main(String[] args) throws ClassNotFoundException, SQLException {
        //1,加载驱动
        Class.forName("com.mysql.jdbc.Driver");
        //2,获取数据库连接,通过DriverManager
        //连接的地址,书写格式 jdbc:数据库驱动类型://ip:端口/数据库名?serverTimezone=时区[&useUnicode=true&characterEncoding=utf8]
        //如果使用utf8编码用如下方式
        String connUrl = "jdbc:mysql://localhost:3306/vgxit_test?serverTimezone=Asia/Shanghai";
        //4,编写查询语句
        String selectSql = "select id, name, gender, age, phone from user;";
        try (
                Connection connection = DriverManager.getConnection(connUrl, "root", "Abc@123456");
                //3,使用Connection来创建一个Statement对象
                Statement statement = connection.createStatement();
                //5,执行对应的sql,获取到一个ResultSet
                ResultSet rs = statement.executeQuery(selectSql);
                ) {
            //遍历查询出来的数据
            while (rs.next()) {
                System.out.println(rs.getInt(1) + ":" + rs.getString(2) + "," + rs.getShort(3) + "," + rs.getInt(4) + "," + rs.getString(5));
            }
        }
    }
}

这段代码是老师第一次给同学们讲Jdbc的时候给大家写的代码,我是原样的复制过来的。同学们可以看到使用jdbc编程,就算是一条sql,其实也不是太简单。因为我们要考虑打开数据库连接,然后执行sql,然后遍历结果集,然后封装数据,然后关闭Statement,ResultSet,Connection。其实我们就是想要简单的写一条sql来查询数据而已。上面的代码对于我们来说真的是太复杂了。
当然如果我们使用原生的Jdbc编程,效率肯定是最好的。但是我们有太多的逻辑和异常处理等需要我们编码,这个时候其实我们再这么使用在大项目中肯定是不行的。而Spring就可以为我们大大的简化数据库的开发。

Spring数据库编程和MyBatis框架是两种不同的数据库访问方式,它们有以下区别: 1. 设计理念: - Spring数据库编程是基于Spring框架的一种数据库访问方式,它提供了一套统一的API和一系列的模板类,用于简化数据库操作。Spring数据库编程注重于整合各种数据访问技术,提供了更高层次的抽象和更强大的功能。 - MyBatis框架是一种轻量级的持久层框架,它通过XML或注解的方式将SQL语句与Java代码进行映射,提供了灵活的SQL编写和结果映射功能。 2. 配置方式: - Spring数据库编程需要在Spring配置文件中配置数据源、事务管理器等相关信息,并使用Spring提供的JdbcTemplate等模板类进行数据库操作。 - MyBatis框架需要配置MyBatis的核心配置文件,其中包括数据库连接信息、映射文件路径等,同时还需要编写SQL映射文件或使用注解进行SQL语句与Java代码的映射。 3. SQL编写方式: - Spring数据库编程使用JdbcTemplate等模板类提供的方法进行SQL操作,可以直接在Java代码中编写SQL语句。 - MyBatis框架将SQL语句与Java代码进行分离,可以通过XML文件或注解的方式编写SQL语句,提供了更灵活的SQL编写方式。 4. 对象关系映射: - Spring数据库编程可以使用Spring提供的ORM框架(如Hibernate)进行对象关系映射 - MyBatis框架本身不提供对象关系映射功能,但可以与其他ORM框架(如Hibernate)结合使用。 5. 社区支持和生态系统: - Spring是一个非常庞大且活跃的开源框架,有着广泛的社区支持和完善的生态系统。 - MyBatis也有一定的社区支持,但相对于Spring来说规模较小。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

V哥学It

赏小的一个钱吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值