Spring框架深度学习--第四天

今天就来学习一下Spring的JDBC

需要导入的包这里就跳过,首先看一下配置文件

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans-4.3.xsd">
    <!--  配置数据源-->
    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
       <!-- 数据库驱动 -->
       <property name = "driverClassName" value = "com.mysql.cj.jdbc.Driver" />
       <!-- 连接数据库URL-->
       <property name = "url" value = "jdbc:mysql://localhost/spring" />
       <!-- 连接数据库的用户名-->
       <property name = "username" value = "root" />
       <!-- 连接数据库的密码-->
       <property name = "password" value = "root" />
       
    </bean>
    <!-- 配置JDBC 模版-->
    <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
       <!-- 默认必须使用数据源 -->
       <property name="dataSource" ref ="dataSource"></property>
    </bean>
    <bean id="***Dao" class="***.DaoImpl">
        <property name="jdbcTemplate" ref="jdbcTemplate"></property>
    </bean>
</beans>

可以看出,这里都是采用设值注入的方式注入jdbc的。使用起来也很方便。

增删改都是用的update()方法:jdbcTemplate.update(...).

查询是query()方法:jdbcTemplate.query(...)/queryForObject(sql.rawMapper,args)

对表的操作用到的是excute()方法:jdbcTemplate.excute(...).

其中比较复杂的是查询,下面我们就重点说一下查询。

查询方法中,单例查询最常用的是queryForObject()方法,调用此方法前需要创建一个BeanPropertyRowMapper对象,那么这个对象是干什么用的?为什么要创建这么一个对象呢?

其实,这玩意儿使用的好处在于,当查询到数据以后,不需要创建对象,调用setter方法来保存数据,而是采用自动映射的方式来存储数据。这样是不是就简便了许多!但是需要注意,这就对数据库字段的命名有要求,需要尽可能的符合Java命名规范才行!但是这里是不是就有一个问题,既然这是自动映射,那如果我要多表联合查询,还能调用这个方法吗?答案是肯定的,需要在bean中添加对应的集合。具体操作详见这里:点我查看

说了这么多,相信各位对jdbc已经有了一定的认识,但是我个人还是建议各位参考一下jdbcTemplate底层源码,看看到底是如何调用这些方法,它们又是如何实现的。这里附上源码网址: 点我前往

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值