SpringMVC是一种基于Spring框架的MVC(Model-View-Controller)架构模式的Web应用程序开发框架,它提供了一种轻量级且灵活的方式来构建Web应用程序。SpringMVC框架旨在将应用程序的业务逻辑与Web应用程序的UI表示分离开来,这样使得应用程序能够更加容易地进行维护和扩展。在Web应用程序开发过程中,与数据库进行交互是不可避免的一个环节,因此本篇文章将重点介绍如何使用SpringMVC框架连接数据库实现数据交互。
我们提供的服务有:成都网站设计、成都网站制作、微信公众号开发、网站优化、网站认证、广东ssl等。为千余家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的广东网站制作公司
一、配置数据源
在使用SpringMVC框架连接数据库之前,首先需要在Spring配置文件中配置数据源。Spring提供了多种不同的数据源实现,包括基于JDBC的数据源、基于JNDI的数据源等等。其中,基于JDBC的数据源是最常用的一种方式。下面是一个基于JDBC的数据源配置示例:
“`xml
“`
以上配置代码中,我们使用DriverManagerDataSource来实例化数据源,指定了MySQL的JDBC驱动程序、数据库连接地址、数据库登录用户名和密码。通过配置数据源,我们可以在应用程序中直接使用Spring的JDBC模板来进行数据库操作。
二、编写数据访问代码
在使用SpringMVC框架连接数据库时,常常需要编写数据访问代码来实现对数据库的CRUD(Create, Read, Update, Delete)操作。Spring提供了多种不同的方式来实现数据访问,包括JDBC模板、ORM框架、MyBatis等等。下面我们以JDBC模板为例,示范如何实现数据访问操作。
1. 创建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);
}
“`
在这个接口中,我们定义了5个方法,分别是根据用户id获取用户信息、获取所有用户信息、添加用户、更新用户信息和删除用户。
2. 创建DAO实现类
“`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方法返回一个User对象,其中第三个参数UserMapper是继承了Spring提供的RowMapper接口实现的一个类,用于将查询结果映射到一个Java对象。在addUser方法中,我们使用update方法进行了一次插入操作。对于更新和删除操作,update方法的使用方式与插入操作类似。
3. 创建RowMapper类
在上述代码中,我们需要自定义一个UserMapper类,实现RowMapper接口用于将查询结果映射到一个Java对象上面。示例代码如下:
“`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中的数据转换为User对象。
三、添加控制器代码
以上代码只是实现了对数据库的数据访问操作,而要将这些数据显示在Web页面上,我们还需要编写控制器代码。我们可以在控制器中调用DAO层的方法,将查询结果设置到ModelAndView中,然后返回到前台页面进行显示。
下面是一个简单的示例控制器代码:
“`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个RequestMapping请求,参数分别是用户id、User对象、以及空参数。在getUser方法中,我们使用@PathVariable注解将url中的参数绑定到userId参数上。在addUser、updateUser和deleteUser三个方法中,我们使用@ModelAttribute注解将表单中的参数绑定到User对象上。在getAllUsers方法中,我们调用了UserDao中的getAllUsers方法,将查询结果设置到ModelAndView中,然后返回到前台页面进行显示。
四、编写前端页面
最后一步是编写前端页面,以显示数据库中的数据。SpringMVC框架支持多种不同的视图解析器,包括P、Thymeleaf、Velocity等等。我们可以根据自己的喜好选择一个合适的视图解析器来实现前端页面的开发。这里我们以P为例,给出一个用户列表页面示例代码:
“`html
User List
ID | Username | Password | Eml |
---|---|---|---|
${user.id} | ${user.username} | ${user.password} | ${user.eml} |
Username:
Password:
Eml:
Username:
Password:
Eml:
Username: ${user.username}
Password: ${user.password}
Eml: ${user.eml}
“`
以上代码中,我们以表格的形式显示了所有用户信息,并且在页面上提供了添加用户、编辑用户和删除用户的功能。
相关问题拓展阅读:
springmvc只是视图层控制容器不能直接操作数据库,要通过持久层hibernate或者灶芹晌mybatis等框架对隐锋数据库操作。可以不用首肢实体,使用jdbc直接查询数据库也行,查出来转换成json字符串
是要有实体类的。什么是MVC,什么是MVC思想?没有实体类,M怎么来。
java spring-mvc,sql多枯游表查询,将查询结果放入一个临时定义的class中,怎么执行语句
,这是实体类,用hibernate,他和数据库里面的表的列应该是对应明闹的,你查出来的字段需要在实体类里面对应,你自己看看没槐销,a.target as target 他对应的属性都没有 ,maping绝对报错
1.创建日志数据表:
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文件,这里我的数据库举动是用的JTDS:
引用# level : 是日志记录的优先级,分为OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或者您定义的级别。
# Log4j建议只使用四个级别,优先级从高到低分别是ERROR、WARN、INFO、DEBUG。
log4j.rootLogger=ERROR,DATABASE
log4j.addivity.org.apache=true
# 用于数据库
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
# 本处设置为”WARN”以上级别在数据库存储(默认情况使用rootLogger中的设置)
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’)
# 写入数据库中的表LOG4J的Message字段中,
# 内容%d(日期)%c: 日志信息所在地(类名)%p: 日志信息级别%m: 产生的日志具体信息 %n: 输出日志信息换行
log4j.appender.DATABASE.layout=org.apache.log4j.PatternLayout
log4j.appender.DATABASE.layout.ConversionPattern= %d – %c -%-4r %-5p %c %x – %m%n3.在程序中需要将日志信息写入数据库的地方写入如下代码:
view plainprint?
法规和法国恢复规划法规和
创新互联服务器托管拥有成都T3+级标准机房资源,具备完善的安防设施、三线及BGP网络接入带宽达10T,机柜接入千兆交换机,能够有效保证服务器托管业务安全、可靠、稳定、高效运行;创新互联专注于成都服务器托管租用十余年,得到成都等地区行业客户的一致认可。
文章标题:SpringMVC连接数据库实现数据交互(springmvc链接数据库)
网站网址:http://www.gawzjz.com/qtweb2/news44/9194.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联