后面学了mybaties这个其实就没什么用了,还是简单的写一下,经典白学。
JdbcTemplate概述
它是spring框架中提供的一个对象,是对原始繁琐的JdbcAPI对象的简单封装。spring框架为我们提供了很多的操作模板类。例如:操作关系型数据的JdbcTemplate和ltbernateTemplate,操作nosql数据库的RedisTemplate,操作消息队列的JmsTemplate等等。
JdbcTemplate开发步骤
1导入spring-jdbc和spring-tx坐标
2创建数据库表和实体
3创建JdbcTemplate对象执行数据库操作
代码实现:
第一步导入spring-jdbc和spring-tx坐标
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>5.0.5.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>5.0.5.RELEASE</version>
</dependency>
第二步:创建数据库表和实体
实体:
public class Account {
private String name;
private int money;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getMoney() {
return money;
}
public void setMoney(int money) {
this.money = money;
}
@Override
public String toString() {
return "Account{" +
"name='" + name + '\'' +
", money=" + money +
'}';
}
}
数据库表:
第三步创建JdbcTemplate对象执行数据库操作
public class JdbcTemplateTest {
@Test
//测试JdbcTemplate开发步骤
public void test1() throws PropertyVetoException {
//创建数据源对象
ComboPooledDataSource dataSource=new ComboPooledDataSource();
dataSource.setDriverClass("com.mysql.jdbc.Driver");
dataSource.setJdbcUrl("jdbc:mysql://localhost:3306/test01");
dataSource.setUser("root");
dataSource.setPassword("root");
JdbcTemplate jdbcTemplate=new JdbcTemplate();
//设置数据源对象,知道数据库在哪
jdbcTemplate.setDataSource(dataSource);
//执行操作
int row = jdbcTemplate.update("insert into account values(?,?)", "tom", 5000);
System.out.println(row);
}
}
首先我们了解update返回的是操作的行数。所以它的返回值是一个int类型。
运行效果:
接下来我们利用我们的Spring的优势,进行解耦。
我们通过上面的代码发现,我们把获得数据库写死了,现在我们来进行解耦,通过Spring容器来完成
首先现在配置文件中进行如下配置:
<!-- 加载properties-->
<context:property-placeholder location="classpath:jdbc.properties"/>
<!-- 数据源对象-->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass" value="${jdbc.driver}"/>
<property name="jdbcUrl" value="${jdbc.url}"/>
<property name="user" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</bean>
<!-- jdbc模板对象-->
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="dataSource"/>
</bean>
有文件properties:
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/test01
jdbc.username=root
jdbc.password=root
编写测试类进行测试:
接下来我们再了解一下其他的sql语句:
首先增删改我们用到的都是update方法:
更新语句:
在这里我强调的是那个?代表的意思是占位符,跟后面的参数是一一对应的,然后后面参数的写法并不是全部都用引号括起来的,而是字符串用引号括起来。
效果:
删除语句:
效果:
查询操作:
利用的方法不是update了而是query方法
查询全部:
我们在这要知道的是Spring已经给我们封装好了结果,我们不需要像以前一样手动进行封装。所以我们在这里需要new一个list集合,用来装结果。最后返回的也是list集合
效果:
查询单个:
效果: