了解最新公司动态及行业资讯
<dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>5.3.10</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.3.10</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.26</version> </dependency></dependencies>
import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.jdbc.core.JdbcTemplate;import org.springframework.jdbc.datasource.DriverManagerDataSource;import javax.sql.DataSource;@Configurationpublic class AppConfig { @Bean public DataSource dataSource() { DriverManagerDataSource dataSource = new DriverManagerDataSource(); dataSource.setDriverClassName("com.mysql.cj.jdbc.Driver"); dataSource.setUrl("jdbc:mysql://localhost:3306/mydb"); dataSource.setUsername("root"); dataSource.setPassword("password"); return dataSource; } @Bean public JdbcTemplate jdbcTemplate(DataSource dataSource) { return new JdbcTemplate(dataSource); }}
<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 http://www.springframework.org/schema/beans/spring-beans.xsd"> <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" value="com.mysql.cj.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/mydb"/> <property name="username" value="root"/> <property name="password" value="password"/> </bean> <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"> <constructor-arg ref="dataSource"/> </bean></beans>
public void insertUser(JdbcTemplate jdbcTemplate, String name, int age) { String sql = "INSERT INTO users (name, age) VALUES (?, ?)"; jdbcTemplate.update(sql, name, age);}
public User getUserById(JdbcTemplate jdbcTemplate, int id) { String sql = "SELECT * FROM users WHERE id = ?"; return jdbcTemplate.queryForObject(sql, new Object[]{id}, new BeanPropertyRowMapper<>(User.class));}public List<User> getAllUsers(JdbcTemplate jdbcTemplate) { String sql = "SELECT * FROM users"; return jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(User.class));}
public void updateUser(JdbcTemplate jdbcTemplate, int id, String name, int age) { String sql = "UPDATE users SET name = ?, age = ? WHERE id = ?"; jdbcTemplate.update(sql, name, age, id);}
public void deleteUser(JdbcTemplate jdbcTemplate, int id) { String sql = "DELETE FROM users WHERE id = ?"; jdbcTemplate.update(sql, id);}
public void batchInsertUsers(JdbcTemplate jdbcTemplate, List<User> users) { String sql = "INSERT INTO users (name, age) VALUES (?, ?)"; jdbcTemplate.batchUpdate(sql, new BatchPreparedStatementSetter() { @Override public void setValues(PreparedStatement ps, int i) throws SQLException { ps.setString(1, users.get(i).getName()); ps.setInt(2, users.get(i).getAge()); } @Override public int getBatchSize() { return users.size(); } });}
import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.transaction.annotation.EnableTransactionManagement;import org.springframework.transaction.PlatformTransactionManager;import org.springframework.transaction.annotation.Transactional;import org.springframework.jdbc.datasource.DataSourceTransactionManager;@Configuration@EnableTransactionManagementpublic class AppConfig { // DataSource 和 JdbcTemplate 配置省略 @Bean public PlatformTransactionManager transactionManager(DataSource dataSource) { return new DataSourceTransactionManager(dataSource); }}@Transactionalpublic void transferFunds(JdbcTemplate jdbcTemplate, int fromAccount, int toAccount, double amount) { String withdrawSql = "UPDATE accounts SET balance = balance - ? WHERE id = ?"; String depositSql = "UPDATE accounts SET balance = balance + ? WHERE id = ?"; jdbcTemplate.update(withdrawSql, amount, fromAccount); jdbcTemplate.update(depositSql, amount, toAccount);}