整合spring和mybatis框架第一个案例

1)新建maven项目
1.创建一个空工程,new–project–empty project
2.new moudle–maven,配置jdk,选择模块quickstart
在这里插入图片描述3.一路next,finish,就会开始自动导入,这是要耐心等一会
这时如果中途被打断,刷新maven就可以解决,下图为刷新maven
在这里插入图片描述点击compile就可以解决。

4.在main文件目录下添加resources文件并mark as resources file

2)加入maven依赖,修改pom.xml文件
1.spring依赖

<dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context</artifactId>
      <version>5.2.5.RELEASE</version>
    </dependency>

2.mybatis依赖

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

3.mysql驱动

 <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>5.1.49</version>
    </dependency>

4.spring事务的依赖

<dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-tx</artifactId>
      <version>5.2.5.RELEASE</version>
    </dependency>

    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-jdbc</artifactId>
      <version>5.2.5.RELEASE</version>
    </dependency>

5.spring和mybatis的集成依赖

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

6.连接池

<dependency>
      <groupId>com.alibaba</groupId>
      <artifactId>druid</artifactId>
      <version>1.1.12</version>
    </dependency>

3)创建实体类

public class Student {
    
    
    private Integer id;
    private String name;
    private String email;
    private Integer age;
}

4)创建dao接口和mapper文件
首先开始配置mybatis

dao接口:

扫描二维码关注公众号,回复: 13126731 查看本文章
import org.omg.PortableInterceptor.INACTIVE;
import zjc.javaweb.entity.Student;

import java.util.List;

public interface StudentDao {
    
    
    Integer insertStudent(Student stu);
    Integer updateStudent(Student stu);
    Integer deleteStudentById(Integer id);
    List<Student> selectAllStudent();
}

StudentDao.xml(dao接口配置文件)

<?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="zjc.javaweb.dao.StudentDao">
	<!--这个位置namespace要改成接口名字相对路径-->


	<insert id="insertStudent">
		insert into Student values (#{stuid},#{stuname},#{stuemail},#{stuage})
	</insert>

	<update id="updateStudent">
		update Student set name =#{stuname},
		email=#{stuemail},age=#{stuage}
		where id=#{id}
	</update>

	<delete id="deleteStudentById">
		delete from Student where id=#{stuid}
	</delete>

	<select id="selectAllStudent" resultType="zjc.javaweb.entity.Student">
		select * from Student;
	</select>
</mapper>

mapper文件

<?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="zjc.javaweb.dao.StudentDao">
	<!--这个位置namespace要改成接口名字相对路径-->


	<insert id="insertStudent">
		insert into Student values (#{stuid},#{stuname},#{stuemail},#{stuage})
	</insert>

	<update id="updateStudent">
		update Student set name =#{stuname},
		email=#{stuemail},age=#{stuage}
		where id=#{id}
	</update>

	<delete id="deleteStudentById">
		delete from Student where id=#{stuid}
	</delete>

	<select id="selectAllStudent" resultType="zjc.javaweb.entity.Student">
		select * from Student;
	</select>
</mapper>

5)创建mybatis主配置文件
main目录下创建resources文件,mark as–resources root

<?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="logImpl" value="STDOUT_LOGGING"/>
    </settings>

    <typeAliases>
        <!--实体类的包名-->
        <package name="zjc.javaweb.entity.Student"/>
    </typeAliases>



    <mappers>
        <!--将路径改为写sql语句的xml文件的路径,用/,不用.-->
        <!--<mapper resource="zjc/javaweb/dao/studentDao.xml"/>-->

        <!--是xml文件的包名-->
        <package name="zjc.javaweb.dao"/>
    </mappers>


</configuration>

这段代码就是我们以后可以一直用的mybatis配置文件的模板,学习怎样使用将一段代码设置为模板文件,可以参考我的这篇文章

6)创建service接口和实现类,属性是dao
这里就开始配置spring了

service接口

package zjc.javaweb.Service;
import zjc.javaweb.entity.Student;
import java.util.List;
public interface StudentService {
    
    
Integer addStudent(Student stu);
}

实现类:

package zjc.javaweb.Service;

import zjc.javaweb.dao.StudentDao;
import zjc.javaweb.entity.Student;

import java.util.List;

public class StudentServiceImp implements StudentService{
    
    

    //为了获取mybatis的操作
    private StudentDao studao;

  /*  public void setStudao(StudentDao studao) {
        this.studao = studao;
    }为了set注入赋值,不懂*/

    @Override
    public Integer addStudent(Student stu) {
    
    
        int nums=studao.insertStudent(stu);
        return null;
    }

   @Override
    public Integer modifyStudent(Student stu) {
    
    
    	
        return null;
    }

    @Override
    public Integer removeStudent(Integer id) {
    
    
        return null;
    }

    @Override
    public List<Student> findAllStudent() {
    
    
        return null;
    }
}

7)创建spring的配置文件:声明mybatis的对象交给spring创建
1.数据源
此处是配置druid数据源

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

    <bean id="datasource" class="com.alibaba.druid.pool.DruidDataSource"
    init-method="init" destroy-method="close">
    <!--weile为了便于维护,需要在<property/>的 value 属性中使用${ },-->
	<!--value改成自己数据库的位置,账号和密码-->
        <property name="url" value="${jdbc:mysql://localhost:3306/ssm}"/>
        <property name="username" value="root"/>
        <property name="password" value="333"/>
    </bean>
</beans>
	2.SqlSessionFactory
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="datasource"/>
<!--value改成classpath:mybatis主配置文件的名字-->
       <property name="configLocation" value="classpath:mybatis.xml"/>
    </bean>
	3.Dao对象
 <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
		<!--指定dao的路径-->
        <property name="basePackage" value="zjc.javaweb.dao"/>
    </bean>
	4.声明自定义的service
<bean id="StudentService" class="zjc.javaweb.Service.StudentServiceImp">
<!--在创建StudentServiceImp实现类时,为了set注入,设置了一个StudentDao的对象StudentDao studao,ref后面就是dao接口的名字-->
        <property name="studao" ref="studentDao"/>
    </bean>

8)创建测试类:获取Service对象,通过Service调用dao完成数据库的访问。
1.声明Service,在applicationContext.xml文件中添加

<bean id="studentService" class="zjc.javaweb.Service.StudentServiceImp">
           <property name="studao" ref="studentDao" />
    </bean>

@Test
    public void test03(){
    
    
        ApplicationContext ac=new ClassPathXmlApplicationContext("applicationContext.xml");
        StudentService studentService=(StudentService) ac.getBean("studentService");
        Student stu2=new Student();
        stu2.setName("zsg");
        stu2.setId(3);
        stu2.setEmail("521");
        stu2.setAge(18);
       studentService.addStudent(stu2);

    }

猜你喜欢

转载自blog.csdn.net/weixin_52188717/article/details/115375060