新聞中心
Spring MVC是一款優(yōu)秀的Web開發(fā)框架,它以MVC設(shè)計(jì)模式為核心,通過注解和配置文件將Controller、Service、DAO、數(shù)據(jù)源、事務(wù)等功能進(jìn)行整合,為我們在Web開發(fā)中帶來了很大的方便。

在Spring MVC中進(jìn)行數(shù)據(jù)庫操作,需要先進(jìn)行連接數(shù)據(jù)庫的配置。今天,我們就來介紹一下Spring MVC數(shù)據(jù)庫連接配置的方法。
一、添加依賴
在pom.xml配置文件中添加數(shù)據(jù)源依賴:
“`
com.alibaba
druid-spring-boot-starter
1.2.6
“`
二、配置數(shù)據(jù)源
在application.yml(或application.properties)配置文件中添加以下內(nèi)容:
“`
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是連接數(shù)據(jù)庫的URL地址,username和password是連接數(shù)據(jù)庫的用戶名和密碼,driver-class-name是數(shù)據(jù)庫驅(qū)動名稱。
三、配置MyBatis
如果要使用MyBatis進(jìn)行數(shù)據(jù)庫操作,需要進(jìn)行如下配置:
1.添加依賴:
“`
org.mybatis.spring.boot
mybatis-spring-boot-starter
2.1.3
“`
2.在application.yml(或application.properties)配置文件中添加以下內(nèi)容:
“`
mybatis:
type-aliases-package: com.xxx.xxx.domn
mapper-locations: classpath:mapper/*.xml
“`
其中,type-aliases-package是實(shí)體類所在的包名,mapper-locations是Mapper配置文件所在的路徑。
四、配置事務(wù)管理器
如果需要使用事務(wù)管理器,需要進(jìn)行如下配置:
1.添加依賴:
“`
org.springframework.boot
spring-boot-starter-jdbc
“`
2.在application.yml(或application.properties)配置文件中添加以下內(nèi)容:
“`
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
“`
其中,需要注意配置的是事務(wù)管理器的類型為com.atomikos.jdbc.AtomikosDataSourceBean,這是Spring Boot默認(rèn)的事務(wù)管理器,需要在類路徑下添加如下配置文件:
“`
# 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數(shù)據(jù)庫連接配置就介紹完了。希望對大家有所幫助。
相關(guān)問題拓展閱讀:
- spring mvc mybatis 整合 大體步驟
spring mvc mybatis 整合 大體步驟
一、簡單說明
用到的框架:spring、springmvc,mybatis
開發(fā)工具:eclipse,apache-tomcat-6.0.39
jar包管理:maven
開發(fā)過程
一、建立工程
1、引入相關(guān)jar包:
junit
junit
4.8.1
test
provided, 因?yàn)閜rovided表明該包只在編譯和測試的時候用–>
javax.servlet
servlet-api
2.5
provided
二、引入mybatis相關(guān)內(nèi)容并測試
1、引入JAR包
UTF-8
yyyyMMddHHmmss
3.3.1
junit
junit
4.8.1
test
provided,因?yàn)閜rovided表明該包只在編譯和測試的時候用–>
javax.servlet
servlet-api
2.5
provided
org.mybatis
mybatis
${mybatis.version}
mysql
mysql-connector-java
5.1.25
這里面在pom里面使用了 標(biāo)簽重點(diǎn)看一下,在這個環(huán)節(jié)添加了數(shù)據(jù)庫連接的jar包和mybatis的jar包。這里要想可以操作數(shù)據(jù)庫需要編程式的讀取配置文件一般放在classpath下面。這里取名為conf.xml.這個里面主要完成2件事:
a:對數(shù)據(jù)庫4個基本信息的配置, b:引入mapper.xml文件。
下面對這個步驟里面的內(nèi)容進(jìn)行詳細(xì)說明:
1、創(chuàng)建im.fenqi.study.user.entity.User實(shí)體對象,這里導(dǎo)入一個lombok插件,這個插件要安裝(具體百度),可以不用顯示的寫set/get方法。
2、創(chuàng)建im/fenqi/study/user/mapper/UserMapper.xml文件,這個里面是對數(shù)據(jù)庫進(jìn)行操作一般和 im.fenqi.study.user.mapper.UserMapper配對使用,里面注意點(diǎn)。
標(biāo)簽mapper里面的namespace的值就是配對的JAVA類im.fenqi.study.user.mapper.UserMapper
標(biāo)簽resultMap:是為了解決實(shí)體類的屬性名字和數(shù)據(jù)庫字段名字不一致的問題。主鍵和其他鍵是有區(qū)別的。
resultMap里面定義的字段和屬性在對應(yīng)的表和實(shí)體必須有對應(yīng)的內(nèi)容否則會報(bào)錯。
標(biāo)簽trim:可以處理user(user_id,user_name,password)等問題,里面的子標(biāo)簽為:
prefix:前綴覆蓋并增加其內(nèi)容
suffix:后綴覆蓋并增加其內(nèi)容
prefixOverrides:前綴判斷的條件
找到最前面的和條件一樣的內(nèi)容然后變成prefix里面的內(nèi)容
例:
根據(jù)條件判斷trim里面的字符串為”AND id=#{id} AND name like #{name}”
找到最前面的AND(prefixOverrides的內(nèi)容)替換成where(prefix內(nèi)容)
如果沒有prefixOverrides的內(nèi)容就直接加在前面。
suffixOverrides:后綴判斷的條件
和prefixOverrides類似。
標(biāo)簽if:比較簡單,
標(biāo)簽sql:
id, user_id,user_name,password
使用場景:
select from user
需要返回的字段很多的時候不用每次都寫一遍
3、創(chuàng)建im.fenqi.study.user.mapper.UserMapper類這個和上面的文件是成對出現(xiàn)的,這是一個接口接口里面的方法名和UserMapper.xml里面的id要一致
4、測試類userTest
在本地測試主要使用SqlSession對象二這個對象需要使用SqlSessionFactory對象才能創(chuàng)建,下面先說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:插入數(shù)據(jù)
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這個配置文件已經(jīng)不需要了,統(tǒng)一在spring.xml里面進(jìn)行配置
1、配置數(shù)據(jù)庫連接
當(dāng)然這個配置可以寫在properties文件里面(用到再說)
2、spring引入以后主要目的就是利用IOC容器進(jìn)行創(chuàng)建對象,沒有加入spring之前SqlSessionFactory、SqlSession、UserMapper 對象的創(chuàng)建都是我們硬編碼實(shí)現(xiàn),spring就是為了解決這些問題,最后直接返回UserMapper 給我們使用。其他的事情都在配置里完成。這里面具體操作流程以后會詳細(xì)分析
3、創(chuàng)建SqlSessionFactory
創(chuàng)建這個對象需要數(shù)據(jù)源和mapper.xml配置文件的位置
4、創(chuàng)建UserMapper 對象(這一部分還要重點(diǎn)研究)
需要SqlSessionFactory對象創(chuàng)建SqlSession對象,然后創(chuàng)建UserMapper 對象,所以需要SqlSessionFactory和UserMapper 接口的位置,MapperScannerConfigurer是掃描包,不要每次都創(chuàng)建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的監(jiān)聽器和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;
}
}
五、整合過程中出現(xiàn)的問題
1、IOC容器。
如果我使用XML配置IOC容器,自己定義一個類這個類里面的屬性想用IOC容器里面的對象初始化,必須提供set/get方法。
2、P不能使用el表達(dá)式,這個問題要解決
這個問題是缺少jar包的問題要想jsp使用起來不出現(xiàn)問題需要添加下面的包,最上面的包之前添加過了
provided,因?yàn)閜rovided表明該包只在編譯和測試的時候用–>
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:這個里面有很多種配置這一次就詳細(xì)說明一下我們這里使用的sqlSessionFactory和 MapperScannerConfigurer
sqlSessionFactory:創(chuàng)建的時候需要dataSource和mapper.xml的配置文件
MapperScannerConfigurer:可以整體掃描,提供基礎(chǔ)的包名可以使用通配符,需要sqlSessionFactoryBeanName用來創(chuàng)建sqlSessionFactory對象再創(chuàng)建SqlSession對象再通過SqlSession對象創(chuàng)建各個mapper對象。
spring mvc配置數(shù)據(jù)庫連接的介紹就聊到這里吧,感謝你花時間閱讀本站內(nèi)容,更多關(guān)于spring mvc配置數(shù)據(jù)庫連接,簡明易懂:Spring MVC數(shù)據(jù)庫連接配置,spring mvc mybatis 整合 大體步驟的信息別忘了在本站進(jìn)行查找喔。
成都服務(wù)器租用選創(chuàng)新互聯(lián),先試用再開通。
創(chuàng)新互聯(lián)(www.cdcxhl.com)提供簡單好用,價格厚道的香港/美國云服務(wù)器和獨(dú)立服務(wù)器。物理服務(wù)器托管租用:四川成都、綿陽、重慶、貴陽機(jī)房服務(wù)器托管租用。
分享名稱:簡明易懂:Spring MVC數(shù)據(jù)庫連接配置 (spring mvc配置數(shù)據(jù)庫連接)
文章源于:http://www.dlmjj.cn/article/djgcsii.html


咨詢
建站咨詢
