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接口:
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);
}