下面我为大家详细讲解一下“Spring Boot实战之数据库操作的示例代码”的完整攻略。
1. 环境准备
在开始实战前,先确保电脑中已经安装好了Java和Spring Boot。另外,如果需要连接数据库,还需要安装相应的数据库驱动程序,例如MySQL的驱动程序。
2. 创建Maven项目
使用Maven创建一个Spring Boot项目,添加依赖项,以便在代码中使用Spring Boot的相关功能。
3. 配置数据库
在配置文件(application.properties或application.yml)中添加数据库的相关配置信息,例如连接地址、用户名和密码等。
4. 创建实体类
根据需要在代码中定义实体类,用于映射数据库中的表结构。
5. 创建DAO
在代码中创建DAO(Data Access Object)层,用于实现数据的增、删、改、查等操作。可以使用Spring的JdbcTemplate等模板或者Hibernate等ORM框架。
以下是一个使用JdbcTemplate模板进行数据库操作的示例:
@Repository
public class UserDao {
@Autowired
private JdbcTemplate jdbcTemplate;
public void addUser(User user) {
String sql = "INSERT INTO user(name, age) VALUES(?,?)";
jdbcTemplate.update(sql, new Object[] { user.getName(), user.getAge() });
}
public void updateUser(User user) {
String sql = "UPDATE user SET name=?, age=? WHERE id=?";
jdbcTemplate.update(sql, new Object[] { user.getName(), user.getAge(), user.getId() });
}
public void deleteUser(Long id) {
String sql = "DELETE FROM user WHERE id=?";
jdbcTemplate.update(sql, new Object[] { id });
}
public User getUserById(Long id) {
String sql = "SELECT * FROM user WHERE id=?";
RowMapper<User> rowMapper = new BeanPropertyRowMapper<>(User.class);
return jdbcTemplate.queryForObject(sql, new Object[] { id }, rowMapper);
}
public List<User> getUsers() {
String sql = "SELECT * FROM user";
RowMapper<User> rowMapper = new BeanPropertyRowMapper<>(User.class);
return jdbcTemplate.query(sql, rowMapper);
}
}
6. 创建控制器
在代码中创建控制器(Controller)层,用于接收和响应前端页面的请求。
以下是一个实现用户增删改查的示例控制器:
@RestController
@RequestMapping("/users")
public class UserController {
@Autowired
private UserDao userDao;
@PostMapping("")
public String addUser(@RequestBody User user) {
userDao.addUser(user);
return "addUser success";
}
@PutMapping("")
public String updateUser(@RequestBody User user) {
userDao.updateUser(user);
return "updateUser success";
}
@DeleteMapping("/{id}")
public String deleteUser(@PathVariable Long id) {
userDao.deleteUser(id);
return "deleteUser success";
}
@GetMapping("/{id}")
public User getUserById(@PathVariable Long id) {
return userDao.getUserById(id);
}
@GetMapping("")
public List<User> getUsers() {
return userDao.getUsers();
}
}
7. 运行测试
启动Spring Boot应用程序并测试,检查是否成功实现了数据库操作功能。
示例1
我们将创建一个简单的图书管理系统,包含图书的增删改查等功能。首先,需要在代码中创建一个Book实体类,用于映射数据库表结构,代码如下:
@Entity
@Table(name = "book")
public class Book {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name;
private String author;
public Book() {}
public Book(String name, String author) {
this.name = name;
this.author = author;
}
// getter和setter方法省略
}
然后,在代码中创建一个BookDao类,用于实现图书的增删改查等操作,代码如下:
@Repository
public class BookDao {
@Autowired
private JdbcTemplate jdbcTemplate;
public void addBook(Book book) {
String sql = "INSERT INTO book(name, author) VALUES(?,?)";
jdbcTemplate.update(sql, new Object[] { book.getName(), book.getAuthor() });
}
public void updateBook(Book book) {
String sql = "UPDATE book SET name=?, author=? WHERE id=?";
jdbcTemplate.update(sql, new Object[] { book.getName(), book.getAuthor(), book.getId() });
}
public void deleteBook(Long id) {
String sql = "DELETE FROM book WHERE id=?";
jdbcTemplate.update(sql, new Object[] { id });
}
public Book getBookById(Long id) {
String sql = "SELECT * FROM book WHERE id=?";
RowMapper<Book> rowMapper = new BeanPropertyRowMapper<>(Book.class);
return jdbcTemplate.queryForObject(sql, new Object[] { id }, rowMapper);
}
public List<Book> getBooks() {
String sql = "SELECT * FROM book";
RowMapper<Book> rowMapper = new BeanPropertyRowMapper<>(Book.class);
return jdbcTemplate.query(sql, rowMapper);
}
}
最后,在代码中创建一个BookController类,用于接收和响应前端页面的请求,代码如下:
@RestController
@RequestMapping("/books")
public class BookController {
@Autowired
private BookDao bookDao;
@PostMapping("")
public String addBook(@RequestBody Book book) {
bookDao.addBook(book);
return "addBook success";
}
@PutMapping("")
public String updateBook(@RequestBody Book book) {
bookDao.updateBook(book);
return "updateBook success";
}
@DeleteMapping("/{id}")
public String deleteBook(@PathVariable Long id) {
bookDao.deleteBook(id);
return "deleteBook success";
}
@GetMapping("/{id}")
public Book getBookById(@PathVariable Long id) {
return bookDao.getBookById(id);
}
@GetMapping("")
public List<Book> getBooks() {
return bookDao.getBooks();
}
}
示例2
我们将创建一个在线商城系统,包含商品的增删改查等功能。与示例1相同,首先需要创建一个Product实体类,代码如下:
@Entity
@Table(name = "product")
public class Product {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name;
private String description;
private double price;
public Product() {}
public Product(String name, String description, double price) {
this.name = name;
this.description = description;
this.price = price;
}
// getter和setter方法省略
}
在代码中创建一个ProductDao类,用于实现商品的增删改查等操作,代码如下:
@Repository
public class ProductDao {
@Autowired
private JdbcTemplate jdbcTemplate;
public void addProduct(Product product) {
String sql = "INSERT INTO product(name, description, price) VALUES(?,?,?)";
jdbcTemplate.update(sql, new Object[] { product.getName(), product.getDescription(), product.getPrice() });
}
public void updateProduct(Product product) {
String sql = "UPDATE product SET name=?, description=?, price=? WHERE id=?";
jdbcTemplate.update(sql, new Object[] { product.getName(), product.getDescription(), product.getPrice(), product.getId() });
}
public void deleteProduct(Long id) {
String sql = "DELETE FROM product WHERE id=?";
jdbcTemplate.update(sql, new Object[] { id });
}
public Product getProductById(Long id) {
String sql = "SELECT * FROM product WHERE id=?";
RowMapper<Product> rowMapper = new BeanPropertyRowMapper<>(Product.class);
return jdbcTemplate.queryForObject(sql, new Object[] { id }, rowMapper);
}
public List<Product> getProducts() {
String sql = "SELECT * FROM product";
RowMapper<Product> rowMapper = new BeanPropertyRowMapper<>(Product.class);
return jdbcTemplate.query(sql, rowMapper);
}
}
最后,在代码中创建一个ProductController类,用于接收和响应前端页面的请求,代码如下:
@RestController
@RequestMapping("/products")
public class ProductController {
@Autowired
private ProductDao productDao;
@PostMapping("")
public String addProduct(@RequestBody Product product) {
productDao.addProduct(product);
return "addProduct success";
}
@PutMapping("")
public String updateProduct(@RequestBody Product product) {
productDao.updateProduct(product);
return "updateProduct success";
}
@DeleteMapping("/{id}")
public String deleteProduct(@PathVariable Long id) {
productDao.deleteProduct(id);
return "deleteProduct success";
}
@GetMapping("/{id}")
public Product getProductById(@PathVariable Long id) {
return productDao.getProductById(id);
}
@GetMapping("")
public List<Product> getProducts() {
return productDao.getProducts();
}
}
这样,我们就完成了两个基于Spring Boot的数据库操作示例,分别用于图书管理和在线商城系统。这些示例代码可以在实际项目中进行进一步的修改和拓展,具有一定的参考价值。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Spring Boot实战之数据库操作的示例代码 - Python技术站