JdbcTemplate 简介
- 为了使 JDBC 更加易于使用, Spring 在 JDBC API 上定义了一个抽象层, 以此建立一个 JDBC 存取框架.
- 作为 Spring JDBC 框架的核心, JDBC 模板的设计目的是为不同类型的 JDBC 操作提供模板方法. 每个模板方法都能控制整个过程, 并允许覆盖过程中的特定任务. 通过这种方式, 可以在尽可能保留灵活性的情况下, 将数据库存取的工作量降到最低.
需要引入的jar包
1.JDBC
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
2.驱动
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
3、连接池
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.21</version>
</dependency>
设置DB.properties文件
mysql_driver=com.mysql.cj.jdbc.Driver
mysql_url=jdbc:mysql://localhost:3306/final_hotel_system?serverTimezone=UTC
mysql_username=root
mysql_passwd=root
这四行代码分别是jdbc驱动、数据库地址、用户名、密码
XML文件的配置
1、首先要配置一个专项配置文件
<context:property-placeholder location="DB.properties"></context:property-placeholder>
2、创建DateSource创建一个bean
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
<property name="driverClassName" value="${mysql_driver}"></property>
<property name="url" value="${mysql_url}"></property>
<property name="userName" value="${mysql_username}"></property>
<property name="password" value="${mysql_passwd}"></property>
</bean>
3、给jdbcTemplate创建一个bean
<bean id="jdbcTemplete" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" value="#{dataSource}"></property>
</bean>
后面可以添加一个自动扫描
<context:component-scan base-package="com.zzxtit.aop.jdbc"></context:component-scan>
文件配置
1、创建接口
public interface UserDao {
public void insertUserInfo(UserInfo su);
public SysUserInfo getSysUserById(int userId);
}
2、创建信息类UserInfo
public class UserInfor {
private int userId;
private String password;
public int getUserId() {
return userId;
}
public void setUserId(int userId) {
this.userId = userId;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
3、添加实现类
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Repository;
@Repository
public class UserDaoImpl implements UserDao{
@Autowired
private JdbcTemplate jdbcTemplate;
public void insertUserInfo(SysUserInfo su) {
String sql="insert into user (user_id, passwd) " + "values (?, ?)";
jdbcTemplate.update(sql, su.getUserId(), su.getPasswd());
}
public SysUserInfo getSysUserById(int userId) {
String sql = "select * from user where user_id = ?";
List<SysUserInfo> suList = jdbcTemplate.query(sql, new BeanPropertyRowMapper<SysUserInfo>(UserInfo.class), userId);
if(suList != null && suList.size() > 0) {
return suList.get(0);
}else {
return null;
}
}
}