mybatis+SpringMVC环境搭建

今天初次接触了MyBatis这种半ORM框架,在学习之中有很多的体会,于是乎写下这篇博客,方便自己日后复习,有需要的同学也可以学习学习,互帮互助。所有的项目文件已经上传,有需要的可以下载。

和所有的框架一样,在项目之中使用一个框架的第一步大概就是导入jar 包。MyBatis是个轻量级的框架,需要的jar包也很少。在本工程之中与MyBatis相关的包只有三个mybatis-3.2.7.jar 、mybatis-spring-1.2.2.jar、mysql-connector-java-5.1.7-bin.jar。第一个包是MyBatis的核心包,第二个包是Mybatis和Spring配合使用的时候需要的包,第三个是链接mysql数据库的驱动包。

下面开始来配置,首先先配置Spring。在web.xml之中配置好Spring的核心,dispatcherServlet ,如下

<span style="font-size:18px;">  <!-- SpringMVC 配置 -->
  <servlet>
  	<servlet-name>springmvc</servlet-name>
  	<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  	<init-param>
  		<param-name>contextConfigLocation</param-name>
  		<param-value>classpath:springmvc.xml</param-value>
  	</init-param>
  
  </servlet>
  <servlet-mapping>
  	<servlet-name>springmvc</servlet-name>
  	<url-pattern>*.action</url-pattern>
  </servlet-mapping>
</span>
  servlet的配置大家应该耳熟能详,这也不是本文的中点,因此不做更多的介绍。

接着在src目录下新建springmvc.xml,这个是SpringMVC的核心配置文件。与Mybatis相关的所有配置先从这个文件开始。首先是SpringMVC的注解,在这个懒人盛行的年代好像不会注解怎么都说不过去。注解方式的配置如下,缺一不可。

<!-- 可以扫描controller、service、...
	这里让扫描controller,指定controller的包
	 -->
	<context:component-scan base-package="com.neusoft.*"></context:component-scan>
	<mvc:annotation-driven></mvc:annotation-driven>
这里配置的注解使用了组件扫描,扫描com.neusoft下所有的包,如果想扫描别的包,也可以稍作修改。

接着我们来配置sqlMapConfig.xml 这个文件可以配置的信息有

  1. properties(属性)
  2. settings(全局配置参数)
  3. typeAiases(类型别名)
  4. typeHandlers(类型处理器)
  5. objectFactory(对象工厂)
  6. plugins(插件)
  7. environments(环境集合属性对象)mappers(映射器)
    1. environment(环境子属性对象)
    2. transactionManager(事物管理)
    3. datesource(数据源
  8. mappers(映射器)

由于本工程使用了SpringMVC,因此一些配置可以省略,在这个配置文件之中只设置了类型别名typeAiases,具体如下,这个配置文件的详情在另外一篇博客之中会详细解析。

<configuration>
	
	<!-- 全局setting配置,根据需要添加 -->
	
	<!-- 配置别名 -->
	<typeAliases>
		<!-- 批量扫描别名 -->
		<package name="com.neusoft.po"/>
	</typeAliases>
	
	<!-- 配置mapper
	由于使用spring和mybatis的整合包进行mapper扫描,这里不需要配置了。
	必须遵循:mapper.xml和mapper.java文件同名且在一个目录 
	 -->

	<!-- <mappers>
	
	</mappers> -->
</configuration>
接着,我们再在springmvc.xml之中配置数据库配置文件以及连接池信息:

db.property文件的配置如下,可以根据自己的数据库进行更改

<span style="white-space:pre">	</span>jdbc.driver=com.mysql.jdbc.Driver
<span style="white-space:pre">	</span>jdbc.url=jdbc\:mysql\://localhost\:3306/neusoft
<span style="white-space:pre">	</span>jdbc.username=root
<span style="white-space:pre">	</span>jdbc.password=123

数据库配置文件db.property放置在src目录下,当然,如果放在与src目录同级下的源文件夹之中也可以,因为所有的源文件夹在被编译后都会同意被安放在classpath之下。

<!-- 加载db.properties文件中的内容,db.properties文件中key命名要有一定的特殊规则 -->
	<context:property-placeholder location="classpath:db.properties" />
	<!-- 配置数据源 ,dbcp -->

	<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
		destroy-method="close"><pre name="code" class="html"><!-- mapper扫描器 -->
	<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
		<!-- 扫描包路径,如果需要扫描多个包,中间使用半角逗号隔开 -->
		<property name="basePackage" value="com.neusoft.mapper"></property>
		<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />
	</bean>

<property name="driverClassName" value="${jdbc.driver}" /><property name="url" value="${jdbc.url}" /><property name="username" value="${jdbc.username}" /><property name="password" value="${jdbc.password}" /><property name="maxActive" value="30" /><property name="maxIdle" value="5" /></bean>
 
 接着在这个文件之中配置sqlSessionFactory 以及它的属性 
 

<!-- sqlSessionFactory -->
	<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
		<!-- 数据库连接池 -->
		<property name="dataSource" ref="dataSource" />
		<!-- 加载mybatis的全局配置文件 -->
		<property name="configLocation" value="classpath:sqlMapConfig.xml" />
	</bean>
	
接着配置扫描器


<!-- mapper扫描器 -->
	<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
		<!-- 扫描包路径,如果需要扫描多个包,中间使用半角逗号隔开 -->
		<property name="basePackage" value="com.neusoft.mapper"></property>
		<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />
	</bean>
到这里为止,我们的MyBatis+SpringMVC就基本配置完成了,但是,并没什么卵用,仅仅是搭好了框架而已,下面,来开始正式使用这两个框架吧。

先在com.neusoft.po 下创建一个简单的java对象

public class User {
	private String id;
	private String name;
	
	
	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
}

首先,先在com.neusoft.mapper下创建一个接口UserMapper,我们正式通过这个接口里面的抽象方法操作数据库。

public interface UserMapper {
	/**
	 * 接口的方法在UserMapper.xml之中配置
	 * @param user
	 */
	public void insertForUser(User user);
}
接着
在同一个包下面创建UserMapper.xml,这个xml文件配置了我们接口之中的方法,我们所有的sql语句都写在**mapper.xml这种文件之中。代码如下。

<?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.neusoft.mapper.UserMapper" >
	<!-- id 就是接口的方法名      parameterType  是参数的类型-->
  <insert id="insertForUser" parameterType="com.neusoft.po.User">
  		insert into neusoft_user(name) values(#{name})
  </insert>
</mapper>
接着,配置我们的处理器,在com.neusoft.controller 包下创建

@Controller
public class UserController {
	
	//自动注入
	@Autowired
	UserMapper userMapper ;
	
	@RequestMapping("/add")
	public String add(User user){
		userMapper.insertForUser(user);
		System.out.println("这是我的add");
		return "success.jsp";
	}
}
这里都是用的注解的方式,配置了一个控制器,可以通过add.action 调用这个控制器。自动注入了一个UserMapper userMapper ,比较省心,如果对于注解不清楚的客官就要好好学习了。到这里,一个简单的例子就完成了,我们可以在浏览器中试试。访问,截图如下:




发布了15 篇原创文章 · 获赞 1 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/u013180603/article/details/52056887