转载

MyBatis入门程序

实现向 tedu_ums 数据库的 t_users 数据表中插入数据。

开发步骤

1 创建项目 DAY07-MyBatis-Sample ,生成 web.xml ,在 web.xml 中配置(2项),添加 spring-webmvc 依赖,复制Spring配置文件,添加Tomcat运行环境;

2 添加新的依赖: mybatismybatis-springspring-jdbc

<!-- Spring-JDBC -->
<dependency>
	<groupId>org.springframework</groupId>
	<artifactId>spring-jdbc</artifactId>
	<version>3.2.8.RELEASE</version>
</dependency>

<dependency>
	<groupId>org.mybatis</groupId>
	<artifactId>mybatis</artifactId>
	<version>3.4.6</version>
</dependency>

<dependency>
	<groupId>org.mybatis</groupId>
	<artifactId>mybatis-spring</artifactId>
	<version>1.3.2</version>
</dependency>

以上依赖中, spring-jdbc 的版本需与 spring-webmvc 保持一致!(同一个项目中,以 spring- 作为前缀的依赖都应该使用相同版本)

3 创建实现类 cn.tedu.spring.entity.User ,在该类中声明 Integer idString usernameString password 属性,及相关方法;

4 设计持久层接口:创建 cn.tedu.spring.mapper.UserMapper 接口,并在接口中添加抽象方法:

Integer reg(User user);

注意:增删改操作固定返回受影响的行数,在设计方法时,可以将返回值声明为Integer类型,或使用void表示无返回值也可以。

5 从FTP下载 mybatis.zip 文件,将解压得到的 EmpMapper.xml 重命名为 UserMapper.xml (推荐这样命名),然后在项目的 src/main/resource 新建文件夹 mappers ,将 UserMapper.xml 复制到 mappers 文件夹中;

6 编辑 UserMapper.xml 文件:

<!-- MyBatis的接口映射文件,根节点是mapper -->
<!-- 接口映射文件是与Java接口文件(interface)相对应的 -->
<!-- 根节点的namespace属性用于指定Java接口文件 -->
<mapper
	namespace="cn.tedu.spring.mapper.UserMapper">
	
	<!-- 节点名称取决于需要执行的操作 -->
	<!-- 例如增加操作应该使用insert节点 -->
	<!-- id属性(*)的值是Java接口中的方法名称 -->
	<!-- parameterType属性的值是参数类型 -->
	<!-- 节点中间编写SQL语句 -->
	<insertid="reg"
		parameterType="cn.tedu.spring.entity.User">
		INSERT INTO t_users (
			username, password
		) VALUES (
			#{username}, #{password}
		)
	</insert>
	
</mapper>

7 添加依赖: mysql-connector-xxxxdbcpjunit

8 在 src/main/resources 下配置 db.properties

9 从此前的项目中复制 spring-dao.xml ,在该配置文件中,至少配置了:加载 db.propertiesBasicDataSource

10 在 spring-dao.xml 中,配置:

<!-- 配置MapperScannerConfigurer ,扫描mapper的配置在哪里-->
<beanclass="org.mybatis.spring.mapper.MapperScannerConfigurer">
	<!-- 配置接口文件所在的包 -->
	<propertyname="basePackage"
		value="cn.tedu.spring.mapper" />
</bean>

<!-- 配置SqlSessionFactoryBean -->
<beanclass="org.mybatis.spring.SqlSessionFactoryBean">
	<!-- 配置数据源:如何连接数据库等 -->
	<propertyname="dataSource"
		ref="dataSource" />
	<!-- 配置XML文件的位置 -->
	<propertyname="mapperLocations"
		value="classpath:mappers/UserMapper.xml" />
</bean>

11 编写测试类,添加测试方法:

@Test
public void testReg(){
	AbstractApplicationContext ac
		= new ClassPathXmlApplicationContext(
			"spring-mvc.xml",
			"spring-dao.xml");
	
	UserMapper userMapper
		= ac.getBean(
			"userMapper", UserMapper.class);
	
	User user = new User();
	user.setUsername("Tom1");
	user.setPassword("123456");
	Integer affectedRows
		= userMapper.reg(user);
	System.out.println(
		"affectedRows=" + affectedRows);
	
	ac.close();
}

总结

  • 在spring中配置mybatis的步骤:
    • 配置扫描 xxmapper.xmlMapperScannerConfigurer
    • 配置 SqlSessionFactoryBean ,需要用到数据库连接池的 数据源datasource
  • 完整的依赖文件 pom.xml
<dependencies>

		<!-- SpringMVC -->
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-webmvc</artifactId>
			<version>3.2.8.RELEASE</version>
		</dependency>
		
		<!-- Spring-JDBC,要和spring-webmvc的版本一致 -->
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-jdbc</artifactId>
			<version>3.2.8.RELEASE</version>
		</dependency>

		<!-- MyBatis -->
		<dependency>
			<groupId>org.mybatis</groupId>
			<artifactId>mybatis</artifactId>
			<version>3.4.6</version>
		</dependency>

		<!-- MyBatis-Spring -->
		<dependency>
			<groupId>org.mybatis</groupId>
			<artifactId>mybatis-spring</artifactId>
			<version>1.3.2</version>
		</dependency>
		
		<!-- MySQL -->
		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<version>5.1.28</version>
		</dependency>

		<!-- DBCP -->
		<dependency>
			<groupId>commons-dbcp</groupId>
			<artifactId>commons-dbcp</artifactId>
			<version>1.4</version>
		</dependency>

		<!-- Junit -->
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>4.12</version>
		</dependency>

	</dependencies>
  • 完整的 db.properties 文件
url=jdbc:mysql://localhost:3306/mybatis?useUnicode=true&characterEncoding=utf8
driver=com.mysql.jdbc.Driver
user=root
password=root
initSize=5
maxSize=10
  • 完整的 spring-dao.xml 文件
<?xml version="1.0" encoding="UTF-8"?>
<beansxmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:context="http://www.springframework.org/schema/context" 
	xmlns:jdbc="http://www.springframework.org/schema/jdbc"  
	xmlns:jee="http://www.springframework.org/schema/jee" 
	xmlns:tx="http://www.springframework.org/schema/tx"
	xmlns:aop="http://www.springframework.org/schema/aop" 
	xmlns:mvc="http://www.springframework.org/schema/mvc"
	xmlns:util="http://www.springframework.org/schema/util"
	xmlns:jpa="http://www.springframework.org/schema/data/jpa"
	xsi:schemaLocation="
		http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd
		http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-3.2.xsd
		http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.2.xsd
		http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.2.xsd
		http://www.springframework.org/schema/data/jpa http://www.springframework.org/schema/data/jpa/spring-jpa-1.3.xsd
		http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.2.xsd
		http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd
		http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.2.xsd">
		
	<!-- 加载db.properties -->
	<util:propertiesid="dbConfig"
		location="classpath:db.properties" />
	
	<!-- 数据源 -->
	<beanid="dataSource"
		class="org.apache.commons.dbcp.BasicDataSource">
		<propertyname="url"
			value="#{dbConfig.url}" />
		<propertyname="driverClassName"
			value="#{dbConfig.driver}" />
		<propertyname="username"
			value="#{dbConfig.user}" />
		<propertyname="password"
			value="#{dbConfig.password}" />
		<propertyname="initialSize"
			value="#{dbConfig.initSize}" />
		<propertyname="maxActive"
			value="#{dbConfig.maxSize}" />
	</bean>

	<!-- 配置MapperScannerConfigurer,自动扫描整个包,并且spring会自动创建UserMapper接口对象-->
	<beanclass="org.mybatis.spring.mapper.MapperScannerConfigurer">
		<!-- 配置接口文件所在的包 -->
		<propertyname="basePackage"
			value="cn.tedu.spring.mapper" />
	</bean>
	
	<!-- 配置SqlSessionFactoryBean -->
	<beanclass="org.mybatis.spring.SqlSessionFactoryBean">
		<!-- 配置数据源:如何连接数据库等 -->
		<propertyname="dataSource"
			ref="dataSource" />
		<!-- 配置XML文件的位置 -->
		<propertyname="mapperLocations"
			value="classpath:mappers/UserMapper.xml" />
	</bean>
</beans>
原文  https://chenjiabing666.github.io/2018/05/04/MyBatis入门程序/
正文到此结束
Loading...