Spring Boot系列之jdbc
1、添加依赖
新建项目后,在pom.xml中新增以下依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
2、新建表和mysql数据库配置
建表语句如下
CREATE TABLE T_USER (
ID BIGINT(20) NOT NULL,
USER_NAME VARCHAR (20),
USER_PASS VARCHAR (50),
PRIMARY KEY (ID)
);
在application.properties文件下配置mysql数据库连接
spring.datasource.url=jdbc:mysql://localhost:3306/mysql?useUnicode=true
spring.datasource.username=mysql
spring.datasource.password=mysql
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
3、创建实体类
定义实体类UserInfo,使用@Entity标识,并声明@Id属性。
@Entity
public class UserInfo implements Serializable{
@Id
private Long id;
private String userName;
private String passWord;
/**省略get set 方法*/
}
4、创建Dao
使用jdbcTemplate实现数据库操作
@Repository
public class UserDao {
@Autowired
private JdbcTemplate jdbcTemplate;
public List<User> getUserByName(String userName) {
String sql = "SELECT ID, USER_NAME userName, USER_PASS passWord FROM T_USER WHERE USER_NAME= ?";
return jdbcTemplate.query(sql,new Object[]{userName},new BeanPropertyRowMapper(User.class));
}
public int addUserInfo(UserInfo user) {
String sql = "INSERT INTO T_USER(ID,USER_NAME,USER_PASS) VALUES (?,?,?)";
return jdbcTemplate.update(sql,user.getId(),user.getUserName(),user.getPassWord());
}
}
5、创建Service类
定义新增,查询数据方法
@Service
public class UserService {
@Autowired
private UserDao userDao;
public List<User> getUser(String userName) {
return userDao.getUserByName(userName);
}
public int addUserInfo(UserInfo user) {
return userDao.addUserInfo(user);
}
}
6、测试类
测试UserService中的新增、查询方法
@RunWith(SpringRunner.class)
@SpringBootApplication
public class MyJdbcTest {
@Autowired
private UserService userService;
@Test
public void test() {
UserInfo user = new UserInfo();
user.setId(10000l);
user.setUserName("user");
user.setPassWord("pwd");
int addCount = userService.addUserInfo(user);
System.out.println("add user count=" + addCount);
List<User> userList = userService.getUser("user");
if(!CollectionUtils.isEmpty(userList)) {
userList.forEach(userInfo ->
System.out.println("user.id="+userInfo.getId()
+",user.name="+userInfo.getUserName()
+",user.password="+userInfo.getPassWord()));
} else {
System.out.println("未查询到此用户");
}
}
}
7、测试结果
执行该测试方法,输出结果为:
add user count=1
user.id=10000,user.name=user,user.password=pwd
8、数据库结果
测试userService.addUser方法后,新增一条数据至数据库中。
SELECT * FROM T_USER;