springboot+tomcat+jndi访问数据库
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了springboot+tomcat+jndi访问数据库,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含8731字,纯文字阅读大概需要13分钟。
内容图文
![springboot+tomcat+jndi访问数据库](/upload/InfoBanner/zyjiaocheng/1054/da8633a022c545a396ae9886e39135f4.jpg)
一、主要代码
pom.xml
![技术分享图片](/img/jia.gif)
![技术分享图片](/img/jian.gif)
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.leiyuke</groupId> <artifactId>databaseDemo</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>war</packaging> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.4.RELEASE</version> <relativePath /> </parent> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> </properties> <dependencies> <!-- web --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> </dependency> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.1.1</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-dbcp2</artifactId> </dependency> <!-- 修改后立即生效 热部署 --> <dependency> <groupId>org.springframework</groupId> <artifactId>springloaded</artifactId> <version>1.2.8.RELEASE</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> </dependency> </dependencies> <build> <plugins> <plugin> <artifactId>maven-war-plugin</artifactId> <configuration> <failOnMissingWebXml>false</failOnMissingWebXml> </configuration> </plugin> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <executions> <execution> <goals> <goal>repackage</goal> </goals> </execution> </executions> </plugin> </plugins> <finalName>databaseDemo</finalName> </build> </project>
src/main/resources/application.yml
![技术分享图片](/img/jia.gif)
![技术分享图片](/img/jian.gif)
spring: datasource: jndi-name: test-jndi mybatis: type-aliases-package: com.leiyuke.database.entity config-location=classpath: mybatis/mybatis.cfg.xml mapper-locations: classpath:mybatis/mapper/**/*.xml logging: level: root: info
src/main/resources/mybatis/mybatis.cfg.xml
![技术分享图片](/img/jia.gif)
![技术分享图片](/img/jian.gif)
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<settings>
<setting name="cacheEnabled" value="true" /><!-- 二级缓存开启 -->
</settings>
</configuration>
src/main/resources/mybatis/mybatis/UserMapper.xml
![技术分享图片](/img/jia.gif)
![技术分享图片](/img/jian.gif)
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.leiyuke.database.mapper.UserMapper">
<select id="getAll" resultType="User">
select id,name,age from t_user;
</select>
</mapper>
App.java
![技术分享图片](/img/jia.gif)
![技术分享图片](/img/jian.gif)
package com.leiyuke.database; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; import org.springframework.context.annotation.ComponentScan; @SpringBootApplication @ComponentScan(basePackages = "com.leiyuke") publicclass App extends SpringBootServletInitializer{ publicstaticvoid main(String[] args) { SpringApplication.run(App.class, args); } @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { return application.sources(App.class); } }
DataSourceConfig.java
![技术分享图片](/img/jia.gif)
![技术分享图片](/img/jian.gif)
package com.leiyuke.database; import javax.sql.DataSource; import org.apache.ibatis.session.SqlSessionFactory; import org.mybatis.spring.SqlSessionFactoryBean; import org.mybatis.spring.SqlSessionTemplate; import org.mybatis.spring.annotation.MapperScan; import org.springframework.beans.factory.annotation.Configurable; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Primary; import org.springframework.core.io.support.PathMatchingResourcePatternResolver; import org.springframework.jdbc.datasource.DataSourceTransactionManager; import org.springframework.jdbc.datasource.lookup.JndiDataSourceLookup; @Configurable @MapperScan(basePackages= {"com.leiyuke.database.mapper"},sqlSessionFactoryRef="test1SqlSessionTemplate") publicclass DataSourceConfig { @Bean("ds1") @Primary public DataSource dataSourceJndi() { JndiDataSourceLookup dataSourceLookup = new JndiDataSourceLookup(); DataSource dataSource = dataSourceLookup.getDataSource("test-jndi"); return dataSource; } @Bean(name = "test1SqlSessionFactory") public SqlSessionFactory sqlSessionFactory(@Qualifier("ds1") DataSource dataSource) throws Exception { SqlSessionFactoryBean sessionFactoryBean = new SqlSessionFactoryBean(); sessionFactoryBean.setDataSource(dataSource); sessionFactoryBean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:mybatis/mapper/**/*.xml")); return sessionFactoryBean.getObject(); } @Bean(name = "test1TransactionManager") public DataSourceTransactionManager testTransactionManager(@Qualifier("ds1") DataSource dataSource) { returnnew DataSourceTransactionManager((javax.sql.DataSource) dataSource); } @Bean(name = "test1SqlSessionTemplate") public SqlSessionTemplate testSqlSessionTemplate(@Qualifier("test1SqlSessionFactory") SqlSessionFactory sqlSessionFactory) throws Exception { returnnew SqlSessionTemplate(sqlSessionFactory); } }
UserController.java
![技术分享图片](/img/jia.gif)
![技术分享图片](/img/jian.gif)
package com.leiyuke.database.controller; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import com.leiyuke.database.entity.User; import com.leiyuke.database.service.UserService; @RestController @RequestMapping("/user") publicclass UserController { @Autowired private UserService userService; @RequestMapping("/getAll") public List<User> getAll(Model model) { List<User> list=userService.getAll(); return list; } }
UserMapper.java
![技术分享图片](/img/jia.gif)
![技术分享图片](/img/jian.gif)
package com.leiyuke.database.mapper; import java.util.List; import org.apache.ibatis.annotations.Mapper; import com.leiyuke.database.entity.User; @Mapper public interface UserMapper { List<User> getAll(); }
二、主要说明
1、tomcat使用的是apache-tomcat-9.0.0.M20.zip,解压后删除webapps中的所有目录及文件(必须)
2、修改配置文件context.xml,添加如下内容:
<Context> <!-- Default set of monitored resources. If one of these changes, the --> <!-- web application will be reloaded. --> <WatchedResource>WEB-INF/web.xml</WatchedResource> <WatchedResource>${catalina.base}/conf/web.xml</WatchedResource> <!-- Uncomment this to disable session persistence across Tomcat restarts --> <!-- <Manager pathname="" /> --> <Resource name="test-jndi" auth="Container" type="javax.sql.DataSource" factory="org.apache.tomcat.jdbc.pool.DataSourceFactory" driverClassName="com.mysql.cj.jdbc.Driver" url="jdbc:mysql://192.168.7.105:3306/sltest?autoReconnect=true&serverTimezone=UTC&characterEncoding=utf-8" username="root" password="123456" maxWaitMillis="100000" /> </Context>
3、示例中使用的是mysql5.7
4、示例中依赖是mysql-connector-java-5.1.46.jar,在打包完的项目中需要替换为mysql-connector-java-8.0.18.jar,否则无法启动
5、如果不想在项目的lib中替换为mysql-connector-java-8.0.18.jar,可以直接将此jar放入tomcat的lib中
原文:https://www.cnblogs.com/javasl/p/14645902.html
内容总结
以上是互联网集市为您收集整理的springboot+tomcat+jndi访问数据库全部内容,希望文章能够帮你解决springboot+tomcat+jndi访问数据库所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。