学习目标:
掌握Spring学习内容:
1、 开发步骤 2、 JdbcTemplate 中常用的方法 3、 基本操作学习时间:
2021年11月10日学习产出:
1、 技术笔记 1 遍 2、CSDN 技术博客 1 篇Spring 是个一站式框架:Spring 自身也提供了控制层的 SpringMVC 和 持久层的 Spring JdbcTemplate。
开发步骤
下载 Spring JdbcTemplate 的 jar 包
<!-- spring-jdbc -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>5.2.2.RELEASE</version>
</dependency>
<!-- 阿里数据源 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.10</version>
</dependency>
创建JDBC配置文件
db.xml
导入属性文件
<context:property-placeholder location="config.properties"/>
管理数据源对象
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
<property name="driverClassName" value="${driverClassName}"></property>
<property name="url" value="${url}"></property>
<property name="username" value="${user}"></property>
<property name="password" value="${pwd}"></property>
<property name="initialSize" value="10"></property>
<property name="minIdle" value="5"></property>
<property name="maxActive" value="20"></property>
</bean>
在配置文件中创建 JdbcTemplate
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="dataSource"></property>
</bean>
在类中获取JdbcTemplate对象可以直接使用
@Autowired
JdbcTemplate jdbcTemplate;
JdbcTemplate 中常用的方法
execute:无返回值,可执行 ddl,增删改语句
update:执行新增、修改、删除语句;
queryForXXX:执行查询相关语句;
基本操作
插入数据,返回的结果为影响的条数
int row = jdbcTemplate.update("insert into admin (account,password,sex) value(?,?,?)","jim","111","男");
System.out.println("插入成功");
创建表
jdbcTemplate.execute("create table test(id int)");
查询
查询返回单个类型
int count = jdbcTemplate.queryForObject("select count(*) from admin", Integer.class);
通过传参查询单个对象,参数为一个数组,写内部类来映射返回的类型
Admin admin = jdbcTemplate.queryForObject("select * from admin where id = ?", new Object[]{2},
new RowMapper<Admin>() {
@Override
public Admin mapRow(ResultSet resultSet, int i) throws SQLException {
Admin admin = new Admin();
admin.setId(resultSet.getInt("id"));
admin.setAccount(resultSet.getString("account"));
admin.setPassword(resultSet.getString("password"));
admin.setSex(resultSet.getString("sex"));
return admin;
}
});
查询结果为map对象,map的键为列名,值为对应列的值
List<Map<String, Object>> maps = jdbcTemplate.queryForList("select * from admin");
System.out.println(maps);
查询返回对象的集合
List<Admin> list = jdbcTemplate.query("select * from admin",
new RowMapper<Admin>() {
@Override
public Admin mapRow(ResultSet resultSet, int i) throws SQLException {
Admin admin = new Admin();
admin.setId(resultSet.getInt("id"));
admin.setAccount(resultSet.getString("account"));
admin.setPassword(resultSet.getString("password"));
admin.setSex(resultSet.getString("sex"));
return admin;
}
});
System.out.println(list);