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

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


咨詢
建站咨詢
