【Spring 從0開始】JdbcTemplate 操作資料庫
阿新 • • 發佈:2021-08-06
spring 對 jdbc 做了封裝,就是 JdbcTemplate,可以讓操作資料庫更加方便。
一、準備工作
1. 引入依賴
在之前的基礎上,再引入這些依賴。
2. 配置檔案中配置資料庫連線池
外部檔案 jdbc.properties:
prop.driverClass=com.mysql.jdbc.Driver
prop.url=jdbc:mysql://localhost:3306/userDb
prop.username=root
prop.password=123456
配置檔案引入:
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:aop="http://www.springframework.org/schema/aop" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd"> <context:component-scan base-package="com.pingguo.spring5"></context:component-scan> <!--引入外部屬性檔案--> <context:property-placeholder location="classpath:jdbc.properties"/> <!--配置連線池--> <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"> <property name="driverClassName" value="${prop.driverClass}"></property> <property name="url" value="${prop.url}"></property> <property name="username" value="${prop.username}"></property> <property name="password" value="${prop.password}"></property> </bean> </beans>
3. 配置 JdbcTemplate 物件
注入 DataSource。
... ...
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<!--注入datasource-->
<property name="dataSource" ref="dataSource"></property>
</bean>
... ...
4. dao 中注入 JdbcTemplate 物件
建立 dao,在裡面注入 JdbcTemplate 。
@Repository
public class BookDaoImpl implements BookDao {
// 注入 jdbcTemplate
@Autowired
private JdbcTemplate jdbcTemplate;
}
建立 service 類,在裡面注入 dao。
@Service
public class BookService {
// 注入dao
@Autowired
private BookDao bookDao;
}
二、操作資料庫
以新增為例。
建一個很簡單的表,裡面有 3 個欄位。
1. 建立對應實體類
建立資料表對應的實體類,並且生成 3 個屬性的 get、set方法。
public class Book {
private String userId;
private String username;
private String userStatus;
public String getUserId() {
return userId;
}
public void setUserId(String userId) {
this.userId = userId;
}
... ...
2. 編寫service 和 dao
service
@Service
public class BookService {
// 注入dao
@Autowired
private BookDao bookDao;
public void addBook(Book book) {
bookDao.add(book);
}
}
dao 的實現類。
@Repository
public class BookDaoImpl implements BookDao {
// 注入 jdbcTemplate
@Autowired
private JdbcTemplate jdbcTemplate;
@Override
public void add(Book book) {
String sql = "insert into t_book values (?, ?, ?)";
int result = jdbcTemplate.update(sql, book.getUserId(), book.getUsername(), book.getUserStatus());
System.out.println(result);
}
}
使用 jdbcTemplate.update() 方法進行新增,第一個引數是 sql,第二個不定長引數,成功則返回 1。
3. 編寫測試
public class TestBook {
@Test
public void testJdbc() {
ApplicationContext context =
new ClassPathXmlApplicationContext("bean1.xml");
BookService bookService = context.getBean("bookService", BookService.class);
Book book = new Book();
book.setUserId("1");
book.setUsername("ceshi");
book.setUserStatus("3");
bookService.addBook(book);
}
}
執行結果:
八月 05, 2021 10:35:15 下午 com.alibaba.druid.pool.DruidDataSource info
資訊: {dataSource-1} inited
1
Process finished with exit code 0
檢視資料表
成功新增。
刪除跟修改操作跟上面類似了,不再演示。
--不要用肉體的勤奮,去掩蓋思考的懶惰--