简介
MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。
MyBatis官网:https://github.com/mybatis/mybatis-3
MyBatis开发流程
1.添加jar包
<dependencies>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.6</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.15</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
</dependencies>
2. 编写核心配置文件
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="${jdbc.dirver}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</dataSource>
</environment>
</environments>
3. 新建实体类
public class Dept {
private Integer id;
private String dname;
private String loc;
4. 新建mapper接口及映射文件
public interface DeptMapper {
public List<Dept> getDept();
public int saveDept(Dept dept);
public int updDept(@Param("n") String n , @Param("o") String o);
}
<?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.**.mapper.DeptMapper">
<select id="getDept" resultType="dept">
select * from dept
</select>
<insert id="saveDept" >
insert into dept(dname,loc) VALUES (#{dname},#{loc})
</insert>
<update id="updDept">
update dept set dname = #{n} where dname = #{o}
</update>
</mapper>
5. 测试
private SqlSession session;
@Before
public void start(){
try {
//读取文件流 mybatis 核心配置
InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(inputStream);
session = factory.openSession();
} catch (IOException e) {
e.printStackTrace();
}
}
@Test
public void getDept(){
DeptMapper mapper = session.getMapper(DeptMapper.class);
List<Dept> list = mapper.getDept();
System.out.println(list);
}
@Test
public void saveDept(){
try {
DeptMapper mapper = session.getMapper(DeptMapper.class);
Dept dept = new Dept();
dept.setDname("市场部");
dept.setLoc("济南");
int num = mapper.saveDept(dept);
session.commit();
System.out.println("济南");
}catch (Exception e){
e.printStackTrace();
}
}
@Test
public void updDept(){
DeptMapper dept = session.getMapper(DeptMapper.class);
int num = dept.updDept("销售部","市场部");
System.out.println(num);
}
@After
public void colse(){
if(session != null){
session.close();
}
}


被折叠的 条评论
为什么被折叠?



