一、项目分层
二、连接数据库
https://blog.csdn.net/saytime/article/details/78963121 步骤一、引入连接数据库的相关依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<!-- https://mvnrepository.com/artifact/com.alibaba/druid -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.14</version>
</dependency>
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.15</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.6</version>
<scope>provided</scope>
</dependency>
步骤二、配置数据库连接池相关信息
步骤三、初始化数据库连接
@Configuration
@PropertySource(value = "classpath:application.properties")
public class DataSourceConfiguration {
@Bean(destroyMethod = "close", initMethod = "init")
@ConfigurationProperties(prefix = "spring.datasource")
public DataSource druidDataSource() {
DruidDataSource druidDataSource = new DruidDataSource();
return druidDataSource;
}
}
启动报错:
Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary.
解决方法:https://blog.csdn.net/anaini1314/article/details/71157791
步骤四、增删改查
https://blog.csdn.net/sunxiaoyu94/article/details/50511340
1、新增
/**
* 新增用户
* @param user 用户信息
* @return
*/
@Override
public int add(User user) {
String sql = "insert into sys_user (user_name,password,email,telephone) values(?,?,?,?)";
int result = jdbcTemplate.update(sql, user.getUserName(),user.getPassword(),user.getEmail(),user.getTelephone());
return result;
}
2、修改
/**
* 修改用户 用户信息
* @param user
* @return
*/
@Override
public int update(User user) {
String sql = "update sys_user set user_name =?,password=?,email=?,telephone=? where id = ?";
int result = jdbcTemplate.update(sql, user.getUserName(),user.getPassword(),user.getEmail(),user.getTelephone(),user.getId());
return result;
}
3、删除
/**
* 删除用户
* @param id 用户id
* @return
*/
@Override
public int deleteById(String id) {
String sql = "delete from sys_user where id = ?";
int result = jdbcTemplate.update(sql, id);
return result;
}
4、根据用户id获取用户
/**
* 根据用户id获取用户
* @param id 用户id
* @return
*/
@Override
public User getUserById(String id) {
String sql="select * from sys_user where id=?";
return jdbcTemplate.queryForObject(sql, new RowMapper<User>() {
@Override
public User mapRow(ResultSet rs, int rowNum) throws SQLException {
return User.builder()
.id(rs.getInt(1))
.userName(rs.getString(2))
.password(rs.getString(3))
.email(rs.getString(4))
.telephone(rs.getString(5))
.build();
}
}, id);
}
注意: 1、接收参数的两种方式 (1)参数在路径上
(2)问号传参