目录
一、依赖库
一、 首先,导入jar包,通过库依赖方式导入,将依赖加入到pom.xml中的
dependencies标签之间(jar包版本选自己适用的即可)
1、导入MyBatis jar 包,其库依赖:
2、导入jadc jar包,其库依赖为:
3、导入测试jar包 junit(测试用)
4、导入日志jar包,(显示日志用)
二、我的数据库测试用表,表名为user
一、属性
二、其值
三、手动创建 接口类、实体类
一、创建接口类
在包com.test.dao下面创建一个接口类Student,如图:
二、创建实体类
在包com.test.domain下创建实体类SaveStudent
四、在resources下创建资源文件
一、资源文件的目录如图:
二、在resources下的com.test.dao包中创建执行SQL的xml文件,名为Student
三、在resources下创建配置文件batis_config
四、配置一个日志文件log4j.properties(本人较菜,直接复制的)
五、创建一个测试类
在包com.test.service中创建测试类,TestMybatis
六、执行结果(截取有结果的部分)
七、若是执行插入操作
一、在Student接口类中写入
二、在执行文件的xml中添加SQL语句,直接放在Student的xml文件中的mapper标签中
三、在一个方法中进行测试(加载文件的前五步放到了全局中去,此处省略了)
四、结果
org.mybatis
mybatis
3.5.0
mysql
mysql-connector-java
5.1.25
junit
junit
4.10
log4j
log4j
1.2.13
<中文部分为自己手动添加注释,删除即可>
<这两行为MyBatis的约束,有了这个,就可以是别MyBatis中的标签,可以直接复制>
# Set root category priority to INFO and its only appender to CONSOLE.
#log4j.rootCategory=INFO, CONSOLE debug info warn error fatal
log4j.rootCategory=debug, CONSOLE, LOGFILE
# Set the enterprise logger category to FATAL and its only appender to CONSOLE.
log4j.logger.org.apache.axis.enterprise=FATAL, CONSOLE
# CONSOLE is set to be a ConsoleAppender using a PatternLayout.
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%d{ISO8601} %-6r [%15.15t] %-5p %30.30c %x - %m\n
# LOGFILE is set to be a File appender using a PatternLayout.
log4j.appender.LOGFILE=org.apache.log4j.FileAppender
log4j.appender.LOGFILE.File=d:\axis.log
log4j.appender.LOGFILE.Append=true
log4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayout
log4j.appender.LOGFILE.layout.ConversionPattern=%d{ISO8601} %-6r [%15.15t] %-5p %30.30c %x - %m\n
#在倒数第四五行左右,d:\axis.log,表示在此盘下创建一个日志文件
package com.test.service;
import com.test.dao.Student;
import com.test.domain.SaveStudent;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
public class TestMybatis {
@Test
public void testFindAll(){
try {
// 1.读取配置文件
InputStream resourceAsStream = Resources.getResourceAsStream("batis_config");
// 2.构建者模式:创建构建者对象SqlSessionFactoryBuilder
SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
// 3.使用构建者创建工厂对象SqlSessionFactory
SqlSessionFactory build = builder.build(resourceAsStream);
// 4.使用SqlSessionFactory生产SqlSession对象
SqlSession sqlSession = build.openSession();
// 5. 使用SqlSession创建dao接口的代理对象
Student mapper = sqlSession.getMapper(Student.class);
// 6.使用代理对象执行查询所有方法
List allStudent = mapper.selectAllStudent();
// 7.遍历结果
for (SaveStudent student : allStudent){
System.out.println(student.getId()+" "+student.getName());
}
// 8.释放资源
resourceAsStream.close();
sqlSession.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
解释:id同样为Student接口中方法的名字,
insert into user(id,name)
values(#{id},#{name})
//插入表user
@Test
public void insertUser(){
SaveStudent saveStudent=new SaveStudent();
saveStudent.setId("000000");
saveStudent.setName("000000");
int count=mapper.insertus(saveStudent);
System.out.println(count);
}
这是运行后的日志文件,Updates这个是表示一条记录以更新
可以看到一条数据已经插入成功