日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
SpringMVC連接數(shù)據(jù)庫(kù)實(shí)現(xiàn)數(shù)據(jù)交互(springmvc鏈接數(shù)據(jù)庫(kù))

SpringMVC是一種基于Spring框架的MVC(Model-View-Controller)架構(gòu)模式的Web應(yīng)用程序開(kāi)發(fā)框架,它提供了一種輕量級(jí)且靈活的方式來(lái)構(gòu)建Web應(yīng)用程序。SpringMVC框架旨在將應(yīng)用程序的業(yè)務(wù)邏輯與Web應(yīng)用程序的UI表示分離開(kāi)來(lái),這樣使得應(yīng)用程序能夠更加容易地進(jìn)行維護(hù)和擴(kuò)展。在Web應(yīng)用程序開(kāi)發(fā)過(guò)程中,與數(shù)據(jù)庫(kù)進(jìn)行交互是不可避免的一個(gè)環(huán)節(jié),因此本篇文章將重點(diǎn)介紹如何使用SpringMVC框架連接數(shù)據(jù)庫(kù)實(shí)現(xiàn)數(shù)據(jù)交互。

我們提供的服務(wù)有:成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作、微信公眾號(hào)開(kāi)發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、廣東ssl等。為千余家企事業(yè)單位解決了網(wǎng)站和推廣的問(wèn)題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的廣東網(wǎng)站制作公司

一、配置數(shù)據(jù)源

在使用SpringMVC框架連接數(shù)據(jù)庫(kù)之前,首先需要在Spring配置文件中配置數(shù)據(jù)源。Spring提供了多種不同的數(shù)據(jù)源實(shí)現(xiàn),包括基于JDBC的數(shù)據(jù)源、基于JNDI的數(shù)據(jù)源等等。其中,基于JDBC的數(shù)據(jù)源是最常用的一種方式。下面是一個(gè)基于JDBC的數(shù)據(jù)源配置示例:

“`xml

“`

以上配置代碼中,我們使用DriverManagerDataSource來(lái)實(shí)例化數(shù)據(jù)源,指定了MySQL的JDBC驅(qū)動(dòng)程序、數(shù)據(jù)庫(kù)連接地址、數(shù)據(jù)庫(kù)登錄用戶名和密碼。通過(guò)配置數(shù)據(jù)源,我們可以在應(yīng)用程序中直接使用Spring的JDBC模板來(lái)進(jìn)行數(shù)據(jù)庫(kù)操作。

二、編寫數(shù)據(jù)訪問(wèn)代碼

在使用SpringMVC框架連接數(shù)據(jù)庫(kù)時(shí),常常需要編寫數(shù)據(jù)訪問(wèn)代碼來(lái)實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的CRUD(Create, Read, Update, Delete)操作。Spring提供了多種不同的方式來(lái)實(shí)現(xiàn)數(shù)據(jù)訪問(wèn),包括JDBC模板、ORM框架、MyBatis等等。下面我們以JDBC模板為例,示范如何實(shí)現(xiàn)數(shù)據(jù)訪問(wèn)操作。

1. 創(chuàng)建DAO接口

“`java

public interface UserDao {

public User getUserById(int userId);

public List getAllUsers();

public void addUser(User user);

public void updateUser(User user);

public void deleteUser(User user);

}

“`

在這個(gè)接口中,我們定義了5個(gè)方法,分別是根據(jù)用戶id獲取用戶信息、獲取所有用戶信息、添加用戶、更新用戶信息和刪除用戶。

2. 創(chuàng)建DAO實(shí)現(xiàn)類

“`java

public class UserDaoImpl extends JdbcDaoSupport implements UserDao {

// 獲取指定id的用戶信息

public User getUserById(int userId) {

String sql = “SELECT * FROM users WHERE id = ?”;

return getJdbcTemplate().queryForObject(sql, new Object[]{userId}, new UserMapper());

}

// 獲取所有用戶信息

public List getAllUsers() {

String sql = “SELECT * FROM users”;

return getJdbcTemplate().query(sql, new UserMapper());

}

// 添加用戶

public void addUser(User user) {

String sql = “INSERT INTO users(username, password, eml) VALUES (?, ?, ?)”;

getJdbcTemplate().update(sql, user.getUsername(), user.getPassword(), user.getEml());

}

// 更新用戶信息

public void updateUser(User user) {

String sql = “UPDATE users SET username = ?, password = ?, eml = ? WHERE id = ?”;

getJdbcTemplate().update(sql, user.getUsername(), user.getPassword(), user.getEml(), user.getId());

}

// 刪除用戶

public void deleteUser(User user) {

String sql = “DELETE FROM users WHERE id = ?”;

getJdbcTemplate().update(sql, user.getId());

}

}

“`

以上代碼中,我們繼承了Spring提供的JdbcDaoSupport類,它提供了一些通用的JDBC操作,例如獲取JdbcTemplate、釋放資源等等。在getUserById方法中,我們使用queryForObject方法返回一個(gè)User對(duì)象,其中第三個(gè)參數(shù)UserMapper是繼承了Spring提供的RowMapper接口實(shí)現(xiàn)的一個(gè)類,用于將查詢結(jié)果映射到一個(gè)Java對(duì)象。在addUser方法中,我們使用update方法進(jìn)行了一次插入操作。對(duì)于更新和刪除操作,update方法的使用方式與插入操作類似。

3. 創(chuàng)建RowMapper類

在上述代碼中,我們需要自定義一個(gè)UserMapper類,實(shí)現(xiàn)RowMapper接口用于將查詢結(jié)果映射到一個(gè)Java對(duì)象上面。示例代碼如下:

“`java

public class UserMapper implements RowMapper {

public User mapRow(ResultSet rs, int rowNum) throws SQLException {

User user = new User();

user.setId(rs.getInt(“id”));

user.setUsername(rs.getString(“username”));

user.setPassword(rs.getString(“password”));

user.setEml(rs.getString(“eml”));

return user;

}

}

“`

以上代碼中,我們重寫了RowMapper接口的mapRow方法,將ResultSet中的數(shù)據(jù)轉(zhuǎn)換為User對(duì)象。

三、添加控制器代碼

以上代碼只是實(shí)現(xiàn)了對(duì)數(shù)據(jù)庫(kù)的數(shù)據(jù)訪問(wèn)操作,而要將這些數(shù)據(jù)顯示在Web頁(yè)面上,我們還需要編寫控制器代碼。我們可以在控制器中調(diào)用DAO層的方法,將查詢結(jié)果設(shè)置到ModelAndView中,然后返回到前臺(tái)頁(yè)面進(jìn)行顯示。

下面是一個(gè)簡(jiǎn)單的示例控制器代碼:

“`java

@Controller

public class UserController {

@Autowired

private UserDao userDao;

@RequestMapping(value=”/user/{userId}”, method=RequestMethod.GET)

public ModelAndView getUser(@PathVariable(“userId”) int userId) {

User user = userDao.getUserById(userId);

ModelAndView model = new ModelAndView(“user/view”);

model.addObject(“user”, user);

return model;

}

@RequestMapping(value=”/user/add”, method=RequestMethod.POST)

public ModelAndView addUser(@ModelAttribute(“user”)User user) {

userDao.addUser(user);

return new ModelAndView(“redirect:/user/”);

}

@RequestMapping(value=”/user/update”, method=RequestMethod.POST)

public ModelAndView updateUser(@ModelAttribute(“user”)User user) {

userDao.updateUser(user);

return new ModelAndView(“redirect:/user/”);

}

@RequestMapping(value=”/user/delete”, method=RequestMethod.POST)

public ModelAndView deleteUser(@ModelAttribute(“user”)User user) {

userDao.deleteUser(user);

return new ModelAndView(“redirect:/user/”);

}

@RequestMapping(value=”/user/”, method=RequestMethod.GET)

public ModelAndView getAllUsers() {

List userList = userDao.getAllUsers();

ModelAndView model = new ModelAndView(“user/list”);

model.addObject(“userList”, userList);

return model;

}

}

“`

在上述代碼中,我們定義了4個(gè)RequestMapping請(qǐng)求,參數(shù)分別是用戶id、User對(duì)象、以及空參數(shù)。在getUser方法中,我們使用@PathVariable注解將url中的參數(shù)綁定到userId參數(shù)上。在addUser、updateUser和deleteUser三個(gè)方法中,我們使用@ModelAttribute注解將表單中的參數(shù)綁定到User對(duì)象上。在getAllUsers方法中,我們調(diào)用了UserDao中的getAllUsers方法,將查詢結(jié)果設(shè)置到ModelAndView中,然后返回到前臺(tái)頁(yè)面進(jìn)行顯示。

四、編寫前端頁(yè)面

最后一步是編寫前端頁(yè)面,以顯示數(shù)據(jù)庫(kù)中的數(shù)據(jù)。SpringMVC框架支持多種不同的視圖解析器,包括P、Thymeleaf、Velocity等等。我們可以根據(jù)自己的喜好選擇一個(gè)合適的視圖解析器來(lái)實(shí)現(xiàn)前端頁(yè)面的開(kāi)發(fā)。這里我們以P為例,給出一個(gè)用戶列表頁(yè)面示例代碼:

“`html

User List

User List

ID Username Password Eml
${user.id} ${user.username} ${user.password} ${user.eml}

Add User

Username:

Password:

Eml:

Edit User

Username:

Password:

Eml:

Delete User

Username: ${user.username}

Password: ${user.password}

Eml: ${user.eml}

“`

以上代碼中,我們以表格的形式顯示了所有用戶信息,并且在頁(yè)面上提供了添加用戶、編輯用戶和刪除用戶的功能。

相關(guān)問(wèn)題拓展閱讀:

  • Java的SpringMVC框架操作數(shù)據(jù)庫(kù),一定要建立對(duì)應(yīng)的實(shí)體類嗎,能不能通過(guò)直接嵌入sql命令方式操作數(shù)據(jù)庫(kù)?
  • springMVC怎么使用log4j將數(shù)據(jù)寫到數(shù)據(jù)庫(kù)

Java的SpringMVC框架操作數(shù)據(jù)庫(kù),一定要建立對(duì)應(yīng)的實(shí)體類嗎,能不能通過(guò)直接嵌入sql命令方式操作數(shù)據(jù)庫(kù)?

springmvc只是視圖層控制容器不能直接操作數(shù)據(jù)庫(kù),要通過(guò)持久層hibernate或者灶芹晌mybatis等框架對(duì)隱鋒數(shù)據(jù)庫(kù)操作??梢圆挥檬字珜?shí)體,使用jdbc直接查詢數(shù)據(jù)庫(kù)也行,查出來(lái)轉(zhuǎn)換成json字符串

是要有實(shí)體類的。什么是MVC,什么是MVC思想?沒(méi)有實(shí)體類,M怎么來(lái)。

java spring-mvc,sql多枯游表查詢,將查詢結(jié)果放入一個(gè)臨時(shí)定義的class中,怎么執(zhí)行語(yǔ)句

,這是實(shí)體類,用hibernate,他和數(shù)據(jù)庫(kù)里面的表的列應(yīng)該是對(duì)應(yīng)明鬧的,你查出來(lái)的字段需要在實(shí)體類里面對(duì)應(yīng),你自己看看沒(méi)槐銷,a.target as target 他對(duì)應(yīng)的屬性都沒(méi)有 ,maping絕對(duì)報(bào)錯(cuò)

springMVC怎么使用log4j將數(shù)據(jù)寫到數(shù)據(jù)庫(kù)

1.創(chuàng)建日志數(shù)據(jù)表:

view plainprint?CREATE02TABLE02log02(0202IDENTITY02(1,021)02primary02key02NOT02NULL02,0202NOT02NULL02,0202(50)02COLLATE02Chinese_PRC_CI_AS02NOT02NULL02,0202(20)02COLLATE02Chinese_PRC_CI_AS02NOT02NULL02,0202(200)02COLLATE02Chinese_PRC_CI_AS02NOT02NULL02,0202(2023)02COLLATE02Chinese_PRC_CI_AS02NOT02NULL0202)0202GO02023.寫log4j.properties文件,這里我的數(shù)據(jù)庫(kù)舉動(dòng)是用的JTDS:

引用# level : 是日志記錄的優(yōu)先級(jí),分為OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或者您定義的級(jí)別。

# Log4j建議只使用四個(gè)級(jí)別,優(yōu)先級(jí)從高到低分別是ERROR、WARN、INFO、DEBUG。

log4j.rootLogger=ERROR,DATABASE

log4j.addivity.org.apache=true

# 用于數(shù)據(jù)庫(kù)

log4j.appender.DATABASE=org.apache.log4j.jdbc.JDBCAppender

log4j.appender.DATABASE.URL=jdbc:jtds:

log4j.appender.DATABASE.driver=net.sourceforge.jtds.jdbc.Driver

log4j.appender.DATABASE.user=username

log4j.appender.DATABASE.password=password

# 本處設(shè)置為”WARN”以上級(jí)別在數(shù)據(jù)庫(kù)存儲(chǔ)(默認(rèn)情況使用rootLogger中的設(shè)置)

log4j.appender.DATABASE.Threshold=DEBUG

log4j.appender.DATABASE.sql=INSERT INTO log(optime,thread,infolevel,class,message) VALUES (‘%d{yyyy-MM-dd HH:mm:ss}’, ‘%t’, ‘%p’, ‘%l’, ‘%m’)

# 寫入數(shù)據(jù)庫(kù)中的表LOG4J的Message字段中,

# 內(nèi)容%d(日期)%c: 日志信息所在地(類名)%p: 日志信息級(jí)別%m: 產(chǎn)生的日志具體信息 %n: 輸出日志信息換行

log4j.appender.DATABASE.layout=org.apache.log4j.PatternLayout

log4j.appender.DATABASE.layout.ConversionPattern= %d – %c -%-4r %-5p %c %x – %m%n3.在程序中需要將日志信息寫入數(shù)據(jù)庫(kù)的地方寫入如下代碼:

view plainprint?

法規(guī)和法國(guó)恢復(fù)規(guī)劃法規(guī)和

創(chuàng)新互聯(lián)服務(wù)器托管擁有成都T3+級(jí)標(biāo)準(zhǔn)機(jī)房資源,具備完善的安防設(shè)施、三線及BGP網(wǎng)絡(luò)接入帶寬達(dá)10T,機(jī)柜接入千兆交換機(jī),能夠有效保證服務(wù)器托管業(yè)務(wù)安全、可靠、穩(wěn)定、高效運(yùn)行;創(chuàng)新互聯(lián)專注于成都服務(wù)器托管租用十余年,得到成都等地區(qū)行業(yè)客戶的一致認(rèn)可。


本文標(biāo)題:SpringMVC連接數(shù)據(jù)庫(kù)實(shí)現(xiàn)數(shù)據(jù)交互(springmvc鏈接數(shù)據(jù)庫(kù))
標(biāo)題網(wǎng)址:http://www.dlmjj.cn/article/dpoccis.html