spring mybatis 整合

spring mybatis 整合

1.第一步导包,创建maven项目需要导入以下包

  • spring-webmvc
  • spring-jdbc
  • spring-aspects
  • mybatis
  • mybatis-spring
  • c3p0
  • jstl
  • javax.servlet-api
  • mysql-connector-java(注意这里要导入6.0以下的版本,第一次导入6.0版本 的导致连接不上)

下面是pom.xml代码

<dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
    <!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc
    springmvc jar包
     -->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-webmvc</artifactId>
    <version>5.0.11.RELEASE</version>
</dependency>
    
<!-- https://mvnrepository.com/artifact/org.springframework/spring-jdbc -->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-jdbc</artifactId>
    <version>5.0.11.RELEASE</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-aspects -->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-aspects</artifactId>
    <version>5.0.11.RELEASE</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis</artifactId>
    <version>3.4.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis-spring -->
<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis-spring</artifactId>
    <version>1.3.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/c3p0/c3p0 -->
<dependency>
    <groupId>c3p0</groupId>
    <artifactId>c3p0</artifactId>
    <version>0.9.1.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/jstl/jstl -->
<dependency>
    <groupId>jstl</groupId>
    <artifactId>jstl</artifactId>
    <version>1.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>4.0.0-b01</version>
    <scope>provided</scope><!-- 添加<scope>provided</scope>,
 因为provided表明该包只在编译和测试的时候用,所以,当启动tomcat服务器的时候,服务器上如果有该包就不会冲突了 -->
</dependency>
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.24</version>
</dependency>

关于mybatis与spring的整合有好几种方法,这篇文档写的是其中一种比较简单的仅仅用来入门学习

第一种,项目结构如下:
在这里插入图片描述
1.在pojo包下新建一个User.java

package pojo;

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

2.在dao包下创建一个方法接口

package dao;

import java.util.List;

import pojo.User;

public interface UserDao {
 public List<User> selectUser();
}

3.在implement下创建UserDao的实现类

package imp;

import java.util.List;

import org.mybatis.spring.SqlSessionTemplate;

import dao.UserDao;
import pojo.User;

public class UserImp implements UserDao {
    private SqlSessionTemplate sqlsessiont;/*SqlSessionTemplate 实现了SqlSession接口,可以使用selectOne等方法*/
	public List<User> selectUser() {
		// TODO Auto-generated method stub
		return sqlsessiont.selectList("dao.UserDao.selectUser");//这里就调用了命名空间为UserDao的id为selectUser方法,下面代码可以看见
	}
	public SqlSessionTemplate getSqlsessiont() {
		return sqlsessiont;
	}
	public void setSqlsessiont(SqlSessionTemplate sqlsessiont) {
		this.sqlsessiont = sqlsessiont;
	}

}

4.UserMap.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接口代理实现编写规则
1.映射文件中namespace要等于接口的全路径名
2.映射文件中sql语句id要等于接口的方法名称
3.映射文件中传入参数类型要等于接口方法的传入参数类型
4.映射文件中返回结果集类型等于接口方法的返回值类型-->
<mapper namespace="dao.UserDao">

<select id="selectUser" resultType="pojo.User">
select * from Users
</select>
</mapper>

5.applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans  
xmlns="http://www.springframework.org/schema/beans"  
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
xmlns:context="http://www.springframework.org/schema/context"  
xsi:schemaLocation="  
http://www.springframework.org/schema/beans        http://www.springframework.org/schema/beans/spring-beans-3.0.xsd  
http://www.springframework.org/schema/context                http://www.springframework.org/schema/context/spring-context-3.0.xsd">
<!--配置数据源 ,也就是连接jdbc -->
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
<property name="url" value="jdbc:mysql://localhost:3306/ssm"></property>
<property name="username" value="abc"></property>
<property name="password" value="1614"></property>
</bean>
<!--创建sqlsessionFactoryBean,注意看其名称为mybatis.spring,
这是mybatis-spring包下的类,代替了mybatis的SqlSessionFactoryBuilder来创建SqlSession,
 SqlSessionFactoryBean有一个必须属性dataSource,
 另外其还有一个通用属性configLocation(用来指定mybatis的xml配置文件路径)-->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<!--引入上面的数据源-->
<property name="dataSource" ref="dataSource"></property>
 <!-- 指定mybatis-config.xml总配置文件-->
<property name="configLocation" value="classpath:mybatis-config.xml"></property>
</bean>
<!--SqlSessionTemplate对象可以使用SqlSessionFactory作为构造方法的参数来创建-->
<bean id="sqlSessionTemplate" class="org.mybatis.spring.SqlSessionTemplate">
<constructor-arg index="0" ref="sqlSessionFactory"></constructor-arg>
</bean>
<!---class=UserImp为UserDao的实现方法,看上面的代码可知道UserImp类有个sqlSessionTemplate类对象sqlsessiont,根据set方法注入-->
<bean id="UserDao" class="imp.UserImp">
<property name="sqlsessiont" ref="sqlSessionTemplate"></property>
</bean>
</beans>

6.mybatis-config.xml

<?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>
<mappers>
 <!-- 注册userMapper.xml文件-->
<mapper resource="pojo/UserMap.xml"/>
</mappers>
</configuration>

7.测试

 package ssmTest;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import dao.UserDao;

public class Test {
	public static void main(String[] args)
	{ 
	<!--由spring替我们创建userdao对象->
		ApplicationContext context=new ClassPathXmlApplicationContext("applicationContext.xml");
		UserDao userdao=context.getBean("UserDao",UserDao.class);
		System.out.println(userdao.selectUser().get(0).getName());
	}

}

*总结:捋一下思路先是创建实体类,然后写方法接口并实现他,然后写接口映射文件,接口映射文件要满足4个条件,上面注释里有提到,然后是在spring applicationContext配置文件里,配置,这也是最重要的,这种方法是最简单的也就是一步步从数据源开始,然后sqlSessionFactory,这里代替了mybatis里面的SqlSessionFactoryBuilder来创建SqlSession,实现了spring,mybatis整合,然后创建出sqlSessionTemplate,为dao接口实现类参数赋值,最后在测试类取出这个类就可以调用其方法了。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值