Spring MVC是一款优秀的Web开发框架,它以MVC设计模式为核心,通过注解和配置文件将Controller、Service、DAO、数据源、事务等功能进行整合,为我们在Web开发中带来了很大的方便。
在Spring MVC中进行数据库操作,需要先进行连接数据库的配置。今天,我们就来介绍一下Spring MVC数据库连接配置的方法。
一、添加依赖
在pom.xml配置文件中添加数据源依赖:
“`
com.alibaba
druid-spring-boot-starter
1.2.6
“`
二、配置数据源
在application.yml(或application.properties)配置文件中添加以下内容:
“`
spring.datasource.url=jdbc:mysql://localhost:3306/test?useSSL=false&characterEncoding=UTF-8&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
“`
其中,url是连接数据库的URL地址,username和password是连接数据库的用户名和密码,driver-class-name是数据库驱动名称。
三、配置MyBatis
如果要使用MyBatis进行数据库操作,需要进行如下配置:
1.添加依赖:
“`
org.mybatis.spring.boot
mybatis-spring-boot-starter
2.1.3
“`
2.在application.yml(或application.properties)配置文件中添加以下内容:
“`
mybatis:
type-aliases-package: com.xxx.xxx.domn
mapper-locations: classpath:mapper/*.xml
“`
其中,type-aliases-package是实体类所在的包名,mapper-locations是Mapper配置文件所在的路径。
四、配置事务管理器
如果需要使用事务管理器,需要进行如下配置:
1.添加依赖:
“`
org.springframework.boot
spring-boot-starter-jdbc
“`
2.在application.yml(或application.properties)配置文件中添加以下内容:
“`
spring.jmx.enabled=true
spring.datasource.continue-on-error=true
spring.datasource.schema=classpath:db/schema.sql
spring.datasource.sql-script-encoding=UTF-8
spring.datasource.initialize=true
spring.datasource.platform=mysql
spring.jpa.hibernate.ddl-auto=none
spring.jpa.show-sql=false
spring.datasource.type: com.alibaba.druid.pool.DruidDataSource
spring.datasource.url=jdbc:mysql://localhost:3306/test?useSSL=false&characterEncoding=UTF-8&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
mybatis:
type-aliases-package: com.xxx.xxx.domn
mapper-locations: classpath:mapper/*.xml
spring.datasource.max-active=20
spring.datasource.initial-size=1
spring.datasource.min-idle=1
spring.datasource.validation-query=select 1
spring.datasource.test-on-borrow=true
spring.datasource.pool-prepared-statements=true
spring.datasource.max-pool-prepared-statement-per-connection-size=20
spring.datasource.filters=stat,wall,log4j
spring.datasource.connection-properties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
“`
其中,需要注意配置的是事务管理器的类型为com.atomikos.jdbc.AtomikosDataSourceBean,这是Spring Boot默认的事务管理器,需要在类路径下添加如下配置文件:
“`
# jta.properties
com.atomikos.icatch.service=com.atomikos.icatch.standalone.UserTransactionServiceFactory
com.atomikos.icatch.log_base_dir=./tmlog
com.atomikos.icatch.output_dir=./
com.atomikos.icatch.console_file=./tm_console.log
com.atomikos.icatch.console_listeners=com.atomikos.icatch.standalone.ConsoleLogManager
“`
到此,Spring MVC数据库连接配置就介绍完了。希望对大家有所帮助。
相关问题拓展阅读:
- spring mvc mybatis 整合 大体步骤
spring mvc mybatis 整合 大体步骤
一、简单说明
用到的框架:spring、springmvc,mybatis
开发工具:eclipse,apache-tomcat-6.0.39
jar包管理:maven
开发过程
一、建立工程
1、引入相关jar包:
junit
junit
4.8.1
test
provided, 因为provided表明该包只在编译和测试的时候用–>
javax.servlet
servlet-api
2.5
provided
二、引入mybatis相关内容并测试
1、引入JAR包
UTF-8
yyyyMMddHHmmss
3.3.1
junit
junit
4.8.1
test
provided,因为provided表明该包只在编译和测试的时候用–>
javax.servlet
servlet-api
2.5
provided
org.mybatis
mybatis
${mybatis.version}
mysql
mysql-connector-java
5.1.25
这里面在pom里面使用了 标签重点看一下,在这个环节添加了数据库连接的jar包和mybatis的jar包。这里要想可以操作数据库需要编程式的读取配置文件一般放在classpath下面。这里取名为conf.xml.这个里面主要完成2件事:
a:对数据库4个基本信息的配置, b:引入mapper.xml文件。
下面对这个步骤里面的内容进行详细说明:
1、创建im.fenqi.study.user.entity.User实体对象,这里导入一个lombok插件,这个插件要安装(具体百度),可以不用显示的写set/get方法。
2、创建im/fenqi/study/user/mapper/UserMapper.xml文件,这个里面是对数据库进行操作一般和 im.fenqi.study.user.mapper.UserMapper配对使用,里面注意点。
标签mapper里面的namespace的值就是配对的JAVA类im.fenqi.study.user.mapper.UserMapper
标签resultMap:是为了解决实体类的属性名字和数据库字段名字不一致的问题。主键和其他键是有区别的。
resultMap里面定义的字段和属性在对应的表和实体必须有对应的内容否则会报错。
标签trim:可以处理user(user_id,user_name,password)等问题,里面的子标签为:
prefix:前缀覆盖并增加其内容
suffix:后缀覆盖并增加其内容
prefixOverrides:前缀判断的条件
找到最前面的和条件一样的内容然后变成prefix里面的内容
例:
根据条件判断trim里面的字符串为”AND id=#{id} AND name like #{name}”
找到最前面的AND(prefixOverrides的内容)替换成where(prefix内容)
如果没有prefixOverrides的内容就直接加在前面。
suffixOverrides:后缀判断的条件
和prefixOverrides类似。
标签if:比较简单,
标签sql:
id, user_id,user_name,password
使用场景:
select from user
需要返回的字段很多的时候不用每次都写一遍
3、创建im.fenqi.study.user.mapper.UserMapper类这个和上面的文件是成对出现的,这是一个接口接口里面的方法名和UserMapper.xml里面的id要一致
4、测试类userTest
在本地测试主要使用SqlSession对象二这个对象需要使用SqlSessionFactory对象才能创建,下面先说SqlSessionFactory对象是怎么得到的
a:获取配置文件config.xml的输入流:
String resource = “/conf.xml”;
//从classpath里面寻找
InputStream resourceAsStream = Object.class.getResourceAsStream(resource);
b:获取SqlSessionFactory对象
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(resourceAsStream);
c:获取SqlSession对象:
SqlSession session = factory.openSession();
d:得到dao层的对象
UserMapper userMapper = session.getMapper(UserMapper.class);
d:插入数据
User user = new User();
user.setUserId(UUID.randomUUID().toString());
user.setUserName(“zw1”);
user.setPassword(“123456”);
int count = userMapper.saveUserInfo(user);
session.commit();
System.out.println(“insert:”+count);
三、引入spring框架并测试
首先需要引入必要的jar包,主要是spring必要的包和spring支持mybatis,jdbc的包
org.springframework
spring-core
${spring.version}
org.springframework
spring-beans
${spring.version}
org.springframework
spring-context
${spring.version}
org.springframework
spring-expression
${spring.version}
org.mybatis
mybatis-spring
1.2.1
org.springframework
spring-jdbc
${spring.version}
这个时候conf.xml这个配置文件已经不需要了,统一在spring.xml里面进行配置
1、配置数据库连接
当然这个配置可以写在properties文件里面(用到再说)
2、spring引入以后主要目的就是利用IOC容器进行创建对象,没有加入spring之前SqlSessionFactory、SqlSession、UserMapper 对象的创建都是我们硬编码实现,spring就是为了解决这些问题,最后直接返回UserMapper 给我们使用。其他的事情都在配置里完成。这里面具体操作流程以后会详细分析
3、创建SqlSessionFactory
创建这个对象需要数据源和mapper.xml配置文件的位置
4、创建UserMapper 对象(这一部分还要重点研究)
需要SqlSessionFactory对象创建SqlSession对象,然后创建UserMapper 对象,所以需要SqlSessionFactory和UserMapper 接口的位置,MapperScannerConfigurer是扫描包,不要每次都创建MapperFactoryBean
5、测试获取对象
ApplicationContext context = new ClassPathXmlApplicationContext(“/spring.xml”);
UserMapper bean = context.getBean(“userMapper”,UserMapper.class);
List userByUser = bean.getUserByUser(null);
6、这个测试还可以使用spring自带的test类
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(“/spring.xml”)
public class springtest {
@Autowired
private UserMapper userMapper;
@Test
public void save()
{
User user = new User(“zw1”, 20);
userMapper.save(user);
}
四、引入springmvc框架
首先引入springmvc的JAR包
org.springframework
spring-web
${spring.version}
org.springframework
spring-webmvc
${spring.version}
这个时候需要配置web.xml,也要配置springmvc.xml
1、配置web.xml
添加加载spring.xml的监听器和spring文件路径
org.springframework.web.context.ContextLoaderListener
contextConfigLocation
classpath:spring.xml
springmvc
org.springframework.web.servlet.DispatcherServlet
contextConfigLocation
classpath:springmvc.xml
springmvc
/*
配置Dispatcherservlet和springmvx.xml配置文件的位置
2、配置springmvc.xml文件
springmvc.xml主要配置控制器、handlerMapper、HandlerAdapter、渲染器
3、编写控制器控制器和配置的类型要一致
public class UserController implements Controller{
private UserService userService;
public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
ModelAndView modelAndView = new ModelAndView();
List userList = userService.getUserByUser(null);
modelAndView.addObject(“user”, userList.get(0));
modelAndView.setViewName(“mypage”);
return modelAndView;
}
}
五、整合过程中出现的问题
1、IOC容器。
如果我使用XML配置IOC容器,自己定义一个类这个类里面的属性想用IOC容器里面的对象初始化,必须提供set/get方法。
2、P不能使用el表达式,这个问题要解决
这个问题是缺少jar包的问题要想jsp使用起来不出现问题需要添加下面的包,最上面的包之前添加过了
provided,因为provided表明该包只在编译和测试的时候用–>
javax.servlet
servlet-api
2.5
provided
javax.servlet.jsp
jsp-api
2.2
provided
javax.servlet
jstl
1.2
taglibs
standard
1.1.2
3、mybatis和spring的配置过程还要具体分析
A:这个里面有很多种配置这一次就详细说明一下我们这里使用的sqlSessionFactory和 MapperScannerConfigurer
sqlSessionFactory:创建的时候需要dataSource和mapper.xml的配置文件
MapperScannerConfigurer:可以整体扫描,提供基础的包名可以使用通配符,需要sqlSessionFactoryBeanName用来创建sqlSessionFactory对象再创建SqlSession对象再通过SqlSession对象创建各个mapper对象。
spring mvc配置数据库连接的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于spring mvc配置数据库连接,简明易懂:Spring MVC数据库连接配置,spring mvc mybatis 整合 大体步骤的信息别忘了在本站进行查找喔。