新聞中心
隨著互聯(lián)網(wǎng)的發(fā)展和數(shù)據(jù)量的不斷增加,各種數(shù)據(jù)庫也應運而生。其中常見的關系型數(shù)據(jù)庫有MySQL、Oracle、SQL Server等,非關系型數(shù)據(jù)庫有MongoDB、Redis等。在實際的項目開發(fā)中,我們往往需要同時連接和操作多個不同類型的數(shù)據(jù)庫。SpringMVC提供了強大的數(shù)據(jù)訪問層支持,能夠輕松處理多種數(shù)據(jù)庫,本文將介紹如何使用SpringMVC實現(xiàn)多種數(shù)據(jù)庫的連接和操作。

成都創(chuàng)新互聯(lián)是一家以網(wǎng)站建設、網(wǎng)頁設計、品牌設計、軟件運維、seo優(yōu)化排名、小程序App開發(fā)等移動開發(fā)為一體互聯(lián)網(wǎng)公司。已累計為混凝土攪拌機等眾行業(yè)中小客戶提供優(yōu)質的互聯(lián)網(wǎng)建站和軟件開發(fā)服務。
1. 引入SpringMVC數(shù)據(jù)訪問支持
在項目中引入SpringMVC數(shù)據(jù)訪問支持,需要在pom.xml文件中添加對應依賴。以下是集成MySQL、Oracle、SQL Server和MongoDB的依賴:
“`
org.springframework
spring-jdbc
5.1.8.RELEASE
mysql
mysql-connector-java
8.0.13
com.oracle
ojdbc6
11.2.0.3
com.microsoft.sqlserver
mssql-jdbc
7.0.0.jre8
org.springframework.data
spring-data-mongodb
2.1.7.RELEASE
org.mongodb
mongodb-driver-sync
3.12.2
“`
其中,spring-jdbc是Spring JDBC的核心包,包含了Spring JDBC的所有功能。mysql-connector-java是MySQL的Java驅動。ojdbc6是Oracle的Java驅動。 mssql-jdbc是SQL Server的Java驅動。spring-data-mongodb是Spring封裝的操作MongoDB的Java包。mongodb-driver-sync是MongoDB的Java驅動。
2. 配置數(shù)據(jù)源
在配置文件中添加數(shù)據(jù)源相關信息。以下是MySQL、Oracle、SQL Server和MongoDB的配置示例:
MySQL:
“`
spring.datasource.url=jdbc:mysql://localhost:3306/test
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver
“`
Oracle:
“`
spring.datasource.url=jdbc:oracle:thin:@localhost:1521:XE
spring.datasource.username=system
spring.datasource.password=123456
spring.datasource.driverClassName=oracle.jdbc.driver.OracleDriver
“`
SQL Server:
“`
spring.datasource.url=jdbc:sqlserver://localhost:1433;databaseName=test
spring.datasource.username=sa
spring.datasource.password=123456
spring.datasource.driverClassName=com.microsoft.sqlserver.jdbc.SQLServerDriver
“`
MongoDB:
“`
spring.data.mongodb.uri=mongodb://localhost:27017/test
“`
3. 編寫Dao層代碼
創(chuàng)建對應的Dao類,在其中提供操作數(shù)據(jù)庫的方法,實現(xiàn)數(shù)據(jù)的增刪改查等操作。以下是MySQL、Oracle、SQL Server和MongoDB的Dao類示例:
MySQL:
“`
@Repository
public class UserDao {
@Autowired
JdbcTemplate jdbcTemplate;
public List findAll() {
return jdbcTemplate.query(“select * from user”, new BeanPropertyRowMapper(User.class));
}
public void add(User user) {
jdbcTemplate.update(“insert into user (name, age) values (?, ?)”, user.getName(), user.getAge());
}
public void delete(long id) {
jdbcTemplate.update(“delete from user where id = ?”, id);
}
public void update(User user) {
jdbcTemplate.update(“update user set name = ?, age = ? where id = ?”, user.getName(), user.getAge(), user.getId());
}
}
“`
Oracle:
“`
@Repository
public class UserDao {
@Autowired
JdbcTemplate jdbcTemplate;
public List findAll() {
return jdbcTemplate.query(“select * from \”user\””, new BeanPropertyRowMapper(User.class));
}
public void add(User user) {
jdbcTemplate.update(“insert into \”user\” (name, age) values (?, ?)”, user.getName(), user.getAge());
}
public void delete(long id) {
jdbcTemplate.update(“delete from \”user\” where id = ?”, id);
}
public void update(User user) {
jdbcTemplate.update(“update \”user\” set name = ?, age = ? where id = ?”, user.getName(), user.getAge(), user.getId());
}
}
“`
SQL Server:
“`
@Repository
public class UserDao {
@Autowired
JdbcTemplate jdbcTemplate;
public List findAll() {
return jdbcTemplate.query(“select * from [user]”, new BeanPropertyRowMapper(User.class));
}
public void add(User user) {
jdbcTemplate.update(“insert into [user] (name, age) values (?, ?)”, user.getName(), user.getAge());
}
public void delete(long id) {
jdbcTemplate.update(“delete from [user] where id = ?”, id);
}
public void update(User user) {
jdbcTemplate.update(“update [user] set name = ?, age = ? where id = ?”, user.getName(), user.getAge(), user.getId());
}
}
“`
MongoDB:
“`
@Repository
public class UserDao {
@Autowired
private MongoTemplate mongoTemplate;
public List findAll() {
return mongoTemplate.findAll(User.class);
}
public void add(User user) {
mongoTemplate.save(user);
}
public void delete(User user) {
mongoTemplate.remove(user);
}
public void update(User user) {
mongoTemplate.save(user);
}
}
“`
其中,JdbcTemplate是Spring提供的JDBC模板,能夠簡化JDBC的操作。BeanPropertyRowMapper是Spring提供的一個實現(xiàn)了ResultSetExtractor接口的類,能夠將一個ResultSet對象轉換成一個Java對象。MongoTemplate是Spring封裝的操作MongoDB的類。
4. 編寫Service層代碼
創(chuàng)建對應的Service類,在其中調用Dao層提供的方法,實現(xiàn)業(yè)務邏輯的處理。以下是MySQL、Oracle、SQL Server和MongoDB的Service類示例:
MySQL:
“`
@Service
public class UserService {
@Autowired
UserDao userDao;
public List findAll() {
return userDao.findAll();
}
public void add(User user) {
userDao.add(user);
}
public void delete(long id) {
userDao.delete(id);
}
public void update(User user) {
userDao.update(user);
}
}
“`
Oracle:
“`
@Service
public class UserService {
@Autowired
UserDao userDao;
public List findAll() {
return userDao.findAll();
}
public void add(User user) {
userDao.add(user);
}
public void delete(long id) {
userDao.delete(id);
}
public void update(User user) {
userDao.update(user);
}
}
“`
SQL Server:
“`
@Service
public class UserService {
@Autowired
UserDao userDao;
public List findAll() {
return userDao.findAll();
}
public void add(User user) {
userDao.add(user);
}
public void delete(long id) {
userDao.delete(id);
}
public void update(User user) {
userDao.update(user);
}
}
“`
MongoDB:
“`
@Service
public class UserService {
@Autowired
UserDao userDao;
public List findAll() {
return userDao.findAll();
}
public void add(User user) {
userDao.add(user);
}
public void delete(User user) {
userDao.delete(user);
}
public void update(User user) {
userDao.update(user);
}
}
“`
5. 編寫Controller層代碼
創(chuàng)建對應的Controller類,在其中調用Service層提供的方法,實現(xiàn)接口的處理。以下是MySQL、Oracle、SQL Server和MongoDB的Controller類示例:
MySQL:
“`
@RestController
public class UserController {
@Autowired
UserService userService;
@GetMapping(“/user”)
public List findAll() {
return userService.findAll();
}
@PostMapping(“/user”)
public void add(@RequestBody User user) {
userService.add(user);
}
@DeleteMapping(“/user/{id}”)
public void delete(@PathVariable(“id”) long id) {
userService.delete(id);
}
@PutMapping(“/user”)
public void update(@RequestBody User user) {
userService.update(user);
}
}
“`
Oracle:
“`
@RestController
public class UserController {
@Autowired
UserService userService;
@GetMapping(“/user”)
public List findAll() {
return userService.findAll();
}
@PostMapping(“/user”)
public void add(@RequestBody User user) {
userService.add(user);
}
@DeleteMapping(“/user/{id}”)
public void delete(@PathVariable(“id”) long id) {
userService.delete(id);
}
@PutMapping(“/user”)
public void update(@RequestBody User user) {
userService.update(user);
}
}
“`
SQL Server:
“`
@RestController
public class UserController {
@Autowired
UserService userService;
@GetMapping(“/user”)
public List findAll() {
return userService.findAll();
}
@PostMapping(“/user”)
public void add(@RequestBody User user) {
userService.add(user);
}
@DeleteMapping(“/user/{id}”)
public void delete(@PathVariable(“id”) long id) {
userService.delete(id);
}
@PutMapping(“/user”)
public void update(@RequestBody User user) {
userService.update(user);
}
}
“`
MongoDB:
“`
@RestController
public class UserController {
@Autowired
UserService userService;
@GetMapping(“/user”)
public List findAll() {
return userService.findAll();
}
@PostMapping(“/user”)
public void add(@RequestBody User user) {
userService.add(user);
}
@DeleteMapping(“/user”)
public void delete(@RequestBody User user) {
userService.delete(user);
}
@PutMapping(“/user”)
public void update(@RequestBody User user) {
userService.update(user);
}
}
“`
6. 測試接口
啟動項目,在瀏覽器或Postman中訪問接口,測試數(shù)據(jù)的增刪改查功能。以下是MySQL、Oracle、SQL Server和MongoDB的測試接口:
MySQL:
“`
GET http://localhost:8080/user
POST http://localhost:8080/user Body: {“name”:”tom”,”age”:18}
PUT http://localhost:8080/user Body: {“id”:1,”name”:”tom”,”age”:19}
DELETE http://localhost:8080/user/1
“`
Oracle:
“`
GET http://localhost:8080/user
POST http://localhost:8080/user Body: {“name”:”tom”,”age”:18}
PUT http://localhost:8080/user Body: {“id”:1,”name”:”tom”,”age”:19}
DELETE http://localhost:8080/user/1
“`
SQL Server:
“`
GET http://localhost:8080/user
POST http://localhost:8080/user Body: {“name”:”tom”,”age”:18}
PUT http://localhost:8080/user Body: {“id”:1,”name”:”tom”,”age”:19}
DELETE http://localhost:8080/user/1
“`
MongoDB:
“`
GET http://localhost:8080/user
POST http://localhost:8080/user Body: {“name”:”tom”,”age”:18}
PUT http://localhost:8080/user Body: {“id”:”5e6cef61f6fb8a43b0e6b9a9″,”name”:”tom”,”age”:19}
DELETE http://localhost:8080/user Body: {“id”:”5e6cef61f6fb8a43b0e6b9a9″,”name”:”tom”,”age”:18}
“`
成都網(wǎng)站建設公司-創(chuàng)新互聯(lián),建站經(jīng)驗豐富以策略為先導10多年以來專注數(shù)字化網(wǎng)站建設,提供企業(yè)網(wǎng)站建設,高端網(wǎng)站設計,響應式網(wǎng)站制作,設計師量身打造品牌風格,熱線:028-86922220springmvc+mybatis怎么使用線程進行數(shù)據(jù)庫操作
首先,你的確定數(shù)據(jù)的主鍵是否可以返配使用序列自增。
如果可以那么你可以在插入數(shù)察純據(jù)的時候獲取序列里的值,這樣數(shù)據(jù)就不會重復了。
其次,可以創(chuàng)建一個公共方漏沒指法,進行數(shù)據(jù)的插入操作,并且方法類型聲明為 static synchronized
類型,這樣基本上就不會出現(xiàn)數(shù)據(jù)重復的現(xiàn)象了
最后,要看你是怎么獲得待插入源數(shù)據(jù)了,這個獲得數(shù)據(jù)源的方法也做成static synchronized的公
共方法。
關于springmvc處理數(shù)據(jù)庫的介紹到此就結束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關注本站。
創(chuàng)新互聯(lián)是成都專業(yè)網(wǎng)站建設、網(wǎng)站制作、網(wǎng)頁設計、SEO優(yōu)化、手機網(wǎng)站、小程序開發(fā)、APP開發(fā)公司等,多年經(jīng)驗沉淀,立志成為成都網(wǎng)站建設第一品牌!
本文名稱:使用SpringMVC輕松處理多種數(shù)據(jù)庫(springmvc處理數(shù)據(jù)庫)
網(wǎng)頁地址:http://www.dlmjj.cn/article/cogggpe.html


咨詢
建站咨詢
