MyBatis与数据库的链接。

本文详细介绍了如何使用MyBatis连接MySQL数据库,包括在Navicat中创建数据库,将SSM框架整合进Maven项目,修改配置文件如dataSource、mybatis-config.xml,设置数据库连接参数,并在web.xml中进行配置。最后通过创建Controller和JSP页面实现数据的展示。通过执行Maven命令完成构建并运行项目,成功读取数据库内容。
摘要由CSDN通过智能技术生成

1.数据库的建立
在这里建了一个数据库插入图片描述
这里我使用的是navicat.数据库的名字是sqy.
2.引入ssm文件夹 建立一个maven类型的项目我的是zhongshen。(因为不是很了解原理。所以附上图片)
在这里插入图片描述
3.将ssm一些文件引入进zhongshen.
先将ssm src/main/resources下面的两个文件复制到zhongshen
在这里插入图片描述
之后继续复制xml的文件在这里插入图片描述
将mapper文件整体导入。只保留book开头的文件
在这里插入图片描述
注意xml文件可能会报错 不过没有关系 不是java文件就可以运行。
打开文件 修改数据库路径和用户名,密码(我的数据库叫sqy,后面的是固定的)因为我用的是Unix的数据库所以不是localhost.
在这里插入图片描述
找到WEB_INF下面的web.xml文件。

<!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app>
  <display-name>Archetype Created Web Application</display-name>
  <servlet>
		<servlet-name>mvc-dispatcher</servlet-name>
		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
		<!-- 配置springMVC需要加载的配置文件
			spring-dao.xml,spring-service.xml,spring-web.xml
			Mybatis - > spring -> springmvc
		 -->
		<init-param>
			<param-name>contextConfigLocation</param-name>
			<param-value>classpath:spring/spring-*.xml</param-value>//这个spring——*.xml引入了刚刚的所有spring下面的xml文件。
		</init-param>
	</servlet>
	<servlet-mapping>
		<servlet-name>mvc-dispatcher</servlet-name>
		<!-- 默认匹配所有的请求 -->
		<url-pattern>/</url-pattern>
	</servlet-mapping>
</web-app>
MyBatis可以通过配置多个数据源来连接多个数据库。下面是一些实现方式: ### 1. 使用多个SqlSessionFactory 在MyBatis中,每个SqlSessionFactory实例都可以连接一个数据源。因此,我们可以创建多个SqlSessionFactory实例,每个实例连接一个数据库。下面是一个示例: ```java // 创建第一个SqlSessionFactory DataSource dataSource1 = ... // 数据源1 TransactionFactory transactionFactory1 = new JdbcTransactionFactory(); Environment environment1 = new Environment("development", transactionFactory1, dataSource1); Configuration configuration1 = new Configuration(environment1); configuration1.addMapper(UserMapper.class); SqlSessionFactory sqlSessionFactory1 = new SqlSessionFactoryBuilder().build(configuration1); // 创建第二个SqlSessionFactory DataSource dataSource2 = ... // 数据源2 TransactionFactory transactionFactory2 = new JdbcTransactionFactory(); Environment environment2 = new Environment("development", transactionFactory2, dataSource2); Configuration configuration2 = new Configuration(environment2); configuration2.addMapper(OrderMapper.class); SqlSessionFactory sqlSessionFactory2 = new SqlSessionFactoryBuilder().build(configuration2); // 使用第一个SqlSessionFactory SqlSession sqlSession1 = sqlSessionFactory1.openSession(); UserMapper userMapper1 = sqlSession1.getMapper(UserMapper.class); ... // 使用第二个SqlSessionFactory SqlSession sqlSession2 = sqlSessionFactory2.openSession(); OrderMapper orderMapper2 = sqlSession2.getMapper(OrderMapper.class); ... ``` ### 2. 使用多个数据MyBatis也支持使用多个数据源。我们可以在配置文件中定义多个数据源,并为每个数据源配置一个SqlSessionFactory。下面是一个示例: ```xml <!-- 数据源1的配置 --> <bean id="dataSource1" class="org.apache.commons.dbcp2.BasicDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/db1"/> <property name="username" value="root"/> <property name="password" value="123456"/> </bean> <!-- 数据源2的配置 --> <bean id="dataSource2" class="org.apache.commons.dbcp2.BasicDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/db2"/> <property name="username" value="root"/> <property name="password" value="123456"/> </bean> <!-- SqlSessionFactory1的配置 --> <bean id="sqlSessionFactory1" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource1"/> ... </bean> <!-- SqlSessionFactory2的配置 --> <bean id="sqlSessionFactory2" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource2"/> ... </bean> <!-- MapperScannerConfigurer的配置 --> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="com.example.mapper1"/> <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory1"/> </bean> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="com.example.mapper2"/> <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory2"/> </bean> ``` 在上面的配置中,我们定义了两个数据源(dataSource1和dataSource2),并为每个数据源配置了一个SqlSessionFactory(sqlSessionFactory1和sqlSessionFactory2)。然后,我们使用MapperScannerConfigurer配置了两个MapperScannerConfigurer实例,分别扫描两个Mapper包,并将它们与不同的SqlSessionFactory关联。这样,我们就可以使用不同的Mapper操作不同的数据库
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值