SpringMVC中数据库链接配置

从昨天开始一直在纠结数据库链接的问题,现在可以说才从库里面查出数据。这种感觉还是希望和大家分享一下

首先我们来看看我用ecplise创建项目的目录结构:


上面是我的目录结构,和数据库链接的都放在了applicantContent.xml这个配置文件里面了。在最开始学习SpringMVC的时候配置文件的位置真的是一个比较困扰的问题。而且如果你是自学的话找,往往在网上看一篇文章然后跟着做发现在自己本地就是不行,有的时候尽管从望山直接拉下一个别人布置好的SpringMVC你兴致冲冲的导入到ecplise中,可是还是不行,伴随着各种无奈,并不是说人家的项目不行,各种原因吧,可能你本地ecplise配置和人家的不一样都有。好了,不扯这些,我们首先来看看配置文件,首先我们在一开始创建web工程的时候自带的 是一个web.xml,所有的开始我们都从web.xml中进行,而且我还是注意的是web.xml你需要审批,配置什么,别看到网上的代码全部都复制过来。配置文件其实是你的代码里面需要读取的,你需要实现怎样的功能,就配置什么,然后引入相关的jar

那么我们这个地方需实现的是配置jdbc的配置,我们来看看web.xml应该怎样来进行配置:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns="http://xmlns.jcp.org/xml/ns/javaee"
	xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
	id="WebApp_ID" version="3.1">
	<display-name>Shopping</display-name>
	<!-- 过滤器编码设置 -->
	<filter>
		<filter-name>CharacterEncodingFilter</filter-name>
		<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
		<init-param>
			<param-name>encoding</param-name>
			<param-value>utf-8</param-value>
		</init-param>
	</filter>
	<filter-mapping>
		<filter-name>CharacterEncodingFilter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>
	<!-- 信息转发器 -->
	<servlet>
		<servlet-name>springMVC</servlet-name>
		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
		<load-on-startup>1</load-on-startup>
	</servlet>
	<servlet-mapping>
		<servlet-name>springMVC</servlet-name>
		<url-pattern>/</url-pattern>
	</servlet-mapping>
	<listener>
	<listener-class>
	org.springframework.web.context.ContextLoaderListener</listener-class>
        </listener>
	<context-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>classpath*:applicationContext.xml</param-value>
	</context-param>
	<!-- 允许访问静态资源 -->
	<servlet-mapping>
		<servlet-name>default</servlet-name>
		<url-pattern>*.html</url-pattern>
	</servlet-mapping>
	<!-- 欢迎页 -->
	<welcome-file-list>
		<welcome-file>index.html</welcome-file>
	</welcome-file-list>
	<!-- 配置log4j配置文件路径 -->
	<context-param>
		<param-name>log4jConfigLocation</param-name>
		<param-value>log4j.properties</param-value>
	</context-param>
	<!-- 60s 检测日志配置 文件变化 -->
	<context-param>
		<param-name>log4jRefreshInterval</param-name>
		<param-value>60000</param-value>
	</context-param>
	<!-- 配置Log4j监听器 -->
	<listener>
		<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
	</listener>
</web-app>
上面是我的web.xml的配置,其中有一段忘记了注释,也是我们这地方比较重要的,那就是
	<listener-class>
	org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
	<context-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>classpath*:applicationContext.xml</param-value>
	</context-param>
为什么说这一段重要,因为我们从在SpringMVC中许多的bean都是配置在applicantContent.xml中,当然链接数据库也是一样配置到了这个文件,其实这一段为加载配置文件applicantContent.xml只有在加载之后我们在java代码中才能找到这个文件,

从上面的目录中我们可以看到的是还有一个配置文件SpringMVC-Servlet.xml这个配置文件,其实这个是用来控制我们的访问,作为web项目接口不可避免的,为了很好的访问,我们用这个配置文件来进行控制访问的权限,或者对url进行转发。也就是我们在上面注释的信息转发器,那么我们拿出来这个SpringMVC-servlet.xml看看:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
	xmlns:context="http://www.springframework.org/schema/context"
	xmlns:util="http://www.springframework.org/schema/util" xmlns:mvc="http://www.springframework.org/schema/mvc"
	xsi:schemaLocation="
  http://www.springframework.org/schema/beans
  http://www.springframework.org/schema/beans/spring-beans-4.2.xsd
  http://www.springframework.org/schema/util
  http://www.springframework.org/schema/util/spring-util-4.2.xsd
  http://www.springframework.org/schema/context 
  http://www.springframework.org/schema/context/spring-context-4.2.xsd
  http://www.springframework.org/schema/mvc
  http://www.springframework.org/schema/mvc/spring-mvc-4.2.xsd">

	<!-- 解决中文乱码 -->
	<mvc:annotation-driven>
		<mvc:message-converters register-defaults="true">
			<bean class="org.springframework.http.converter.StringHttpMessageConverter">
				<property name="supportedMediaTypes">
					<list>
						<value>text/plain;charset=UTF-8</value>
						<value>text/html;charset=UTF-8</value>
						<value>application/json;charset=UTF-8</value>
					</list>
				</property>
			</bean>
		</mvc:message-converters>
	</mvc:annotation-driven>
	<!-- 支持返回json(避免IE在ajax请求时,返回json出现下载 ) -->
	<bean id="utf8Charset" class="java.nio.charset.Charset"
		factory-method="forName">
		<constructor-arg value="UTF-8" />
	</bean>
	<bean
		class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
		<property name="messageConverters">
			<list>
				<bean
					class="org.springframework.http.converter.StringHttpMessageConverter">
					<constructor-arg ref="utf8Charset" />
				</bean>
				<bean id="mappingJacksonHttpMessageConverter"
					class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
					<property name="supportedMediaTypes">
						<list>
							<value>text/plain;charset=UTF-8</value>
							<value>application/json;charset=UTF-8</value>
						</list>
					</property>
				</bean>
			</list>
		</property>
	</bean>
	<bean class="org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter" />
	<bean
		class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter" />
	<bean
		class="org.springframework.web.servlet.view.InternalResourceViewResolver">
		<property name="prefix" value="/WEB-INF/html/" />
	</bean>
	<!-- 静态资源处理 -->
	<mvc:default-servlet-handler />
	<mvc:annotation-driven />
	<context:component-scan base-package="com.wdg.controller"></context:component-scan>
</beans>
对于这个文件的介绍我们就一一多说了,网上有很多详细的介绍,我们来继续看applicantContent.xml:

<?xml version="1.0" encoding="UTF-8" ?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
	xmlns:context="http://www.springframework.org/schema/context"
	xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
	xsi:schemaLocation="http://www.springframework.org/schema/beans
   http://www.springframework.org/schema/beans/spring-beans.xsd
   http://www.springframework.org/schema/context
   http://www.springframework.org/schema/context/spring-context.xsd
   http://www.springframework.org/schema/tx
   http://www.springframework.org/schema/tx/spring-tx.xsd
   http://www.springframework.org/schema/aop
   http://www.springframework.org/schema/aop/spring-aop.xsd">

	<!-- <context:component-scan base-package="com.spring.controller" /> -->
	<!--view -->
	<!-- 获取配置文件 -->
	<bean id="config"
		class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
		<property name="locations">
			<list>
				<value>classpath*:jdbc.properties</value>
			</list>
		</property>
	</bean>
	<!-- 获取数据源 -->
	<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
		destroy-method="close">
		<property name="driverClassName" value="com.mysql.jdbc.Driver" />
		<property name="url" value="jdbc:mysql://localhost:3306/shopping?characterEncoding=utf8" />
		<property name="username" value="root" />
		<property name="password" value="11111" />
	</bean>


	<bean id="userDao" class="com.wdg.dao.UserDao">
		<property name="dataSource" ref="dataSource"></property>
	</bean>

	<bean
		class="org.springframework.web.servlet.view.InternalResourceViewResolver">
		<property name="prefix" value="/view/" />
		<property name="suffix" value=".html" />
	</bean>
</beans>
这个里面配置了数据源,当然在这个过程中会缺少包之类的ClassNotFound,

UserDao是你自己创建的类:

package com.wdg.dao;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.springframework.jdbc.core.RowMapper;
import org.springframework.jdbc.core.support.JdbcDaoSupport;

public class UserDao extends JdbcDaoSupport {
	@SuppressWarnings("rawtypes")
	public  void getUserName(){
		String sql="select * from userinfo";
		List<Map> result = super.getJdbcTemplate().query(sql, new RowMapper<Map>() {  
			@Override  
		      public Map<String,String> mapRow(ResultSet rs, int rowNum) throws SQLException {  
		          Map<String,String> row = new HashMap<String, String>();  
		          row.put("rowguid", rs.getString("rowguid"));  
		          return row;  
		  }}); 
		  System.out.println(result.toString());
	}
	public UserDao() {
		super();
	}
	
}

希望对你有所帮助

  • 6
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
步骤如下: 1.添加MySQL驱动 在pom.xml添加MySQL驱动依赖。 ``` <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.23</version> </dependency> ``` 2.配置数据库连接信息 在application.properties配置数据库连接信息。 ``` spring.datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=GMT%2B8 spring.datasource.username=root spring.datasource.password=123456 spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver ``` 3.创建数据源 在@Configuration类创建数据源。 ``` @Configuration public class DataSourceConfig { @Value("${spring.datasource.url}") private String url; @Value("${spring.datasource.username}") private String username; @Value("${spring.datasource.password}") private String password; @Value("${spring.datasource.driver-class-name}") private String driverClassName; @Bean public DataSource dataSource() { DriverManagerDataSource dataSource = new DriverManagerDataSource(); dataSource.setDriverClassName(driverClassName); dataSource.setUrl(url); dataSource.setUsername(username); dataSource.setPassword(password); return dataSource; } } ``` 4.创建JdbcTemplate 在@Configuration类创建JdbcTemplate。 ``` @Configuration public class JdbcTemplateConfig { @Autowired private DataSource dataSource; @Bean public JdbcTemplate jdbcTemplate() { return new JdbcTemplate(dataSource); } } ``` 5.使用JdbcTemplate操作数据库 在Controller使用JdbcTemplate进行数据库操作。 ``` @RestController @RequestMapping("/user") public class UserController { @Autowired private JdbcTemplate jdbcTemplate; @GetMapping("/{id}") public User getUserById(@PathVariable Long id) { String sql = "SELECT * FROM user WHERE id = ?"; return jdbcTemplate.queryForObject(sql, new Object[]{id}, new BeanPropertyRowMapper<>(User.class)); } } ``` 以上就是使用SpringMVC链接MySQL数据库的步骤。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值