JdbcTemplate은 가장 기본적인 Spring JDBC 템플릿입니다. 이 템플릿은 인덱스 매개변수를 기반으로 하는 간단한 JDBC 데이터베이스 액세스 기능과 쿼리를 지원합니다.
Spring 데이터 액세스 템플릿: 데이터베이스 작업 과정에서 트랜잭션 제어, 리소스 관리, 예외 처리 등 반복되는 작업이 많은 부분이 있습니다. Spring의 템플릿 클래스는 이러한 고정된 부분을 처리합니다. 동시에 명령문, 바인딩 매개변수 및 정렬 결과를 포함하여 애플리케이션 관련 데이터 액세스가 콜백 구현에서 처리됩니다. 이런 방식으로 우리는 우리 자신의 데이터 액세스 논리에 대해서만 걱정하면 됩니다.
Spring의 JDBC 프레임워크는 리소스 관리 및 예외 처리 작업을 담당하므로 JDBC 코드를 단순화하면 데이터베이스에서 데이터를 읽고 쓰는 데 필요한 코드만 작성하면 됩니다.
우리의 학습 목표는 Category에서 CRUD 작업을 구현하는 데모를 작성하는 것입니다.
1 . 완성된 코드 구조는 다음과 같습니다.create table Category ( Id int not null, Name varchar(80) null,constraint pk_category primary key (Id) );INSERT INTO category(id,Name) VALUES (1,'女装');INSERT INTO category(id,Name) VALUES (2,'美妆');INSERT INTO category(id,Name) VALUES (3,'书籍');4를 수정하고 관련 종속성을 도입합니다.
public class Category{ private int cateId; private String cateName; public int getCateId() { return cateId; } public void setCateId(int cateId) { this.cateId = cateId; } public String getCateName() { return cateName; } public void setCateName(String cateName) { this.cateName = cateName; } @Override public String toString() { return "id="+cateId+" name="+cateName; } }
5. applicationContext.xml 구성jdbcTemplate의 데이터 소스로 dataSource를 구성해야 합니다. 그런 다음 CategoryDao 빈을 구성하고 jdbcTemplate 개체를 구성합니다. 완전한 applicationContext.xml은 다음과 같습니다:
<dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> </dependency> <!-- Mysql数据库链接jar包 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.21</version> <scope>runtime</scope> </dependency> </dependencies>6. 데이터 액세스 구현 클래스 CategoryDaoCategoryDao 생성자는 jdbcTemplate 매개변수를 포함하고 일반적인 데이터 액세스 작업을 구현합니다. 보시다시피 특정 SQL 문에만 주의하면 됩니다. 또한 getById() 및 getAll() 메서드에는 람다 구문이 사용됩니다.
<?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 "> <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver"></property> <property name="url" value="jdbc:mysql://localhost:3306/store"></property> <property name="username" value="root"></property> <property name="password" value="root"></property> </bean> <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"> <property name="dataSource" ref="dataSource"></property> </bean> <bean id="categoryDao" class="CategoryDao"> <constructor-arg ref="jdbcTemplate"></constructor-arg> </bean> </beans>7. 테스트
import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.core.RowMapper; import java.sql.ResultSet; import java.sql.SQLException; import java.util.List; import java.util.Map; /** * Created by 陈敬 on 2017/6/6. */ public class CategoryDao { private JdbcTemplate jdbcTemplate; public CategoryDao(JdbcTemplate jdbcTemplate) { this.jdbcTemplate = jdbcTemplate; } public int add(Category category) { String sql = "INSERT INTO category(id,name)VALUES(?,?)"; return jdbcTemplate.update(sql, category.getCateId(), category.getCateName()); } public int update(Category category) { String sql = "UPDATE Category SET Name=? WHERE Id=?"; return jdbcTemplate.update(sql, category.getCateName(), category.getCateId()); } public int delete(int id) { String sql = "DELETE FROM Category WHERE Id=?"; return jdbcTemplate.update(sql, id); } public int count(){ String sql="SELECT COUNT(0) FROM Category"; return jdbcTemplate.queryForObject(sql,Integer.class); } public Category getById(int id) { String sql = "SELECT Id,Name FROM Category WHERE Id=?"; return jdbcTemplate.queryForObject(sql, (ResultSet rs, int rowNumber) -> { Category category = new Category(); category.setCateId(rs.getInt("Id")); category.setCateName(rs.getString("Name")); return category; }, id); } public List<Category> getAll(){ String sql="SELECT Id,Name FROM Category"; List<Category> result=jdbcTemplate.query(sql, (resultSet, i) -> { Category category = new Category(); category.setCateId(resultSet.getInt("Id")); category.setCateName(resultSet.getString("Name")); return category; }); return result; } }
위 내용은 JdbcTemplate에 대한 간략한 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!