文章目录
1. 创建maven项目
注意:建立maven项目前,电脑要已经下载好了maven并完成了配置
创建好之后是这个样子
我们可以在里面创建实体类、测试类、接口类所在的包,为了后续的方便可以参考我是如何创建的,创建好之后是这个样子:
2. 导入Mybatis和MySQL需要的jar包
因为我们创建的是Maven项目,我们只需要在pom文件里面导入相应的依赖,
代码如下
<dependencies><!--mybatis的依赖--><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.3.0</version></dependency><!--mysql的依赖--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.29</version></dependency></dependencies>
添加好依赖之后点击刷新,创建好之后是这个样子
3.创建实体类(这里我们使用学生类Student)
在entity下面创建java类,并命名为Student,代码如下
packagecom.HaiMeng.entity;publicclassStudent{privateint id;privateString name;privateint age;publicintgetId(){return id;}publicvoidsetId(int id){this.id = id;}publicStringgetName(){return name;}publicvoidsetName(String name){this.name = name;}publicintgetAge(){return age;}publicvoidsetAge(int age){this.age = age;}@OverridepublicStringtoString(){return"Student{"+"id="+ id +", name='"+ name +'\''+", age="+ age +'}';}}
4. 为实体类配置数据库信息(Student类与student表的映射)
我们首先创建mybatis数据库(也可以自己起名字)在该数据库下面创建student表,命令字符创建代码:
SET FOREIGN_KEY_CHECKS=0;--------------------------------Table structure for `student`
------------------------------
DROP TABLE IF EXISTS `student`;
CREATE TABLE `student` (
`id` int(10) NOT NULL auto_increment,
`name` varchar(10)NOT NULL,
`age` int(10)NOT NULL,PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=2DEFAULT CHARSET=gbk;--------------------------------Records of student
------------------------------
INSERT INTO student VALUES ('1','王五','1001');
我们可以在navicat lite进行查看
到这里我们的Student类和student的表的映射已经创建好了
接着在resources下面创建一个config.properties文件,用来存放我们的数据库的信息:
database.driver=com.mysql.jdbc.Driver
database.url=jdbc:mysql://localhost:3306/mybatis
database.username=root
database.password=123456
到这里我们已经配置好数据库了
5. 创建实体类的mapper映射文件(StudentMapper接口以及StudentMapper.xml可以理解为接口的实现)
- 在mapper下面创建StudentMapper
- 在resources/mapper下面创建StudentMapper.xml(可以理解为StudentMapper的实现)
StudentMapper代码如下
packagecom.HaiMeng.mapper;importcom.HaiMeng.entity.Student;publicinterfaceStudentMapper{// 因为创建的是接口,所以里面是方法// 尽然是方法,那么我们接下来就是要实现它// 怎么实现呢???// 这里是通过一个StudentMapper.xml文件进行实现的publicStudentgetStudent(long id);}
StudentMapper.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.HaiMeng.mapper.StudentMapper"><!--getStudent得到实现,增删改查都可以在mapper标签内进行实现,我们这里是查询所以学生--><select id="getStudent" parameterType="long" resultType="com.HaiMeng.entity.Student">
select id, name, age
from student
where id = #{id}</select></mapper>
有可能会有不知道怎么创建StudentMapper.xml文件(这里简单的介绍一下,因为下面还需要创建mybatis-config.xml文件,知道如何创建的可以跳过这一部分)
首先进入:
File->Setting->File and code templates
代码模板如下:
<?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.HaiMeng.mapper.StudentMapper"><!--getStudent得到实现,增删改查都可以在mapper标签内进行实现,我们这里是查询所以学生--><select id="getStudent" parameterType="long" resultType="com.HaiMeng.entity.Student">
select id, name, age
from student
where id = #{id}</select></mapper>
这个时候我们再去点击新建,我们就会发现我们有一个这样的模板,再以后需要的时候就可以快速的创建,只需要再mapper标签内对接口里面的方法进行实现就可。
到此StudentMapper和StudentMapper.xml文件都创建完了
6. 配置Mybatis文件(文件名字可以命名为:mybatis-config.xml)
在resources下面创建mybatis-config.xml文件
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><properties resource="config.properties"/><typeAliases><packagename=""/></typeAliases><!-- 配置环境--><environments default="mysql"><!-- 配置MySQL的环境--><environment id="mysql"><!-- 配置事务的类型--><transactionManager type="JDBC"/><dataSource type="POOLED"><!-- 配置连接数据库的四个基本信息--><property name="driver" value="${database.driver}"/><property name="url" value="${database.url}"/><property name="username" value="${database.username}"/><property name="password" value="${database.password}"/></dataSource></environment></environments><!-- 指定映射文件的位置,映射文件指的是每个DAO独立的配置文件--><mappers><mapper resource="mapper/StudentMapper.xml"/></mappers></configuration>
到这里,mybatis-config.xml就配置好了
7. 创建SqlSessionFactory工厂类(这是为了读取配置文件,执行sql语句,并且可以减少代码的冗余)
在utils下面创建SqlSessionFactory工厂类,代码如下
packagecom.HaiMeng.utils;importorg.apache.ibatis.io.Resources;importorg.apache.ibatis.session.SqlSession;importorg.apache.ibatis.session.SqlSessionFactoryBuilder;importjava.io.IOException;importjava.io.InputStream;publicclassSqlSessionFactory{privatefinalstaticClass<SqlSessionFactory> lock=SqlSessionFactory.class;privatestaticorg.apache.ibatis.session.SqlSessionFactory sqlSessionFactory=null;privateSqlSessionFactory(){};//会话工厂publicstaticorg.apache.ibatis.session.SqlSessionFactorygetSqlSessionFactory(){//synchronized(lock){if(sqlSessionFactory !=null){return sqlSessionFactory;}// mybatis配置文件的名字String resource ="mybatis-config.xml";InputStream inputStream;try{//读取配置文件
inputStream =Resources.getResourceAsStream(resource);//创建SqlSessionFactory工厂
sqlSessionFactory =newSqlSessionFactoryBuilder().build(inputStream);}catch(IOException e){
e.printStackTrace();returnnull;}return sqlSessionFactory;}}//使用工厂生产Sqlsession对象publicstaticSqlSessionopenSqlSession(){if(sqlSessionFactory==null){getSqlSessionFactory();}return sqlSessionFactory.openSession();}}
8. 运行测试
在test/java下面创建测试类TestMybatis进行测试,代码如下:
importcom.HaiMeng.mapper.StudentMapper;importcom.HaiMeng.utils.SqlSessionFactory;importorg.apache.ibatis.session.SqlSession;publicclassTestMybatis{publicstaticvoidmain(String[] args){SqlSession sqlSession=SqlSessionFactory.openSqlSession();StudentMapper studentMapper=sqlSession.getMapper(StudentMapper.class);System.out.println(studentMapper.getStudent(1).toString());}}
到这里我们的整个项目已经写完了,我们可以运行TestMybatis看看效果
可以看到,成功从数据库里面查询到了学生。到此我们整个Mybatis配置完成,并顺利运行。
最后我们来看一下我们项目的整体结构:
大家有什么问题可以在下面留言,一起进步,共同成长!!!!
版权归原作者 海梦在飘扬 所有, 如有侵权,请联系我们删除。