实现mybatis的第一个实例
这个是项目的整体结构:
1.新建项目,创建lib文件件导入所需的jar包
2.所需要的配置文件
配置文件名字一般是固定的如mybatis-config.xml,位置是src下面
配置文件代码:
<?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="properties"></properties>
<typeAliases>
<package name="com.briup.bean"/>
</typeAliases>
<environments default="develop">
<environment id="develop">
<transactionManager type="JDBC"></transactionManager>
<dataSource type="POOLED">
<property name="driver" value="${jdbc.driver}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/briup/mapper/TeacherMapper.xml"/>
</mappers>
</configuration>
3.所需要的映射文件
映射文件一般放在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="com.briup.mapper.TeacherMapper">
<insert id="insertData">
<selectKey keyProperty="id" keyColumn="id" order="BEFORE" resultType="int">
select mm.nextval from dual
</selectKey>
insert into teachers values(#{id},#{name},#{age})
</insert>
<delete id="deleteDdata">
delete from teachers where id= #{id}
</delete>
<update id="updateData" parameterType="Teacher">
update son set name=#{name},age=#{age} where id = #{id}
</update>
<!-- <select id="selectData" resultType="Teacher" >
select id from teachers where id = #{id}
</select> -->
<resultMap type="Teacher" id="TeacherResuleMap">
<id column="id" property="id"/>
<result column="name" property="name"/>
<result column="age" property="age"/>
</resultMap>
<select id="selectData" resultMap="TeacherResuleMap">
select id from teachers where id = #{id}
</select>
<select id="selectAllData" resultMap="TeacherResuleMap">
select * from teachers
</select>
</mapper>
映射文件中mapper标签中就是写需要执行的sql语句,我写了
4.在这个之前要创建一个存储数据的对象,还有一个接口,写对应的方法
这是pojo类代码:
package com.briup.bean;
import java.io.Serializable;
public class Teacher implements Serializable{
/**
*
*/
private static final long serialVersionUID = 1L;
private int id;
private String name;
private int age;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "Teacher [id=" + id + ", name=" + name + ", age=" + age + "]";
}
}
这是接口的代码:
package com.briup.mapper;
import java.util.List;
import com.briup.bean.Teacher;
public interface TeacherMapper {
void insertData(Teacher teacher);
void deleteDdata(int id);
void updateData(Teacher teacher);
Teacher selectData(int id);
List<Teacher> selectAllData();
}
5.然后就是写一个测试类
这是测试类代码:
package com.briup.test;
import java.util.List;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;
import com.briup.bean.Teacher;
import com.briup.mapper.TeacherMapper;
import com.briup.util.MybatisSqlSessionFactory;
public class MybatisTest {
@Test
public void insertData() {
SqlSession session = MybatisSqlSessionFactory.getSqlSession(true);
TeacherMapper mapper = session.getMapper(TeacherMapper.class);
Teacher teacher = new Teacher();
teacher.setName("zhangbk");
teacher.setAge(18);
mapper.insertData(teacher);
}
@Test
public void deleteData() {
SqlSession session = MybatisSqlSessionFactory.getSqlSession(true);
TeacherMapper mapper = session.getMapper(TeacherMapper.class);
mapper.deleteDdata(10);
}
@Test
public void updataData() {
try {
SqlSession session = MybatisSqlSessionFactory.getSqlSession(true);
TeacherMapper mapper = session.getMapper(TeacherMapper.class);
Teacher teacher = new Teacher();
teacher.setId(1);
teacher.setName("张博凯");
teacher.setAge(22);
mapper.updateData(teacher);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
@Test
public void selectData() {
try {
SqlSession session = MybatisSqlSessionFactory.getSqlSession(true);
TeacherMapper mapper = session.getMapper(TeacherMapper.class);
Teacher ss = mapper.selectData(1);
System.out.println(ss);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
@Test
public void selectData1() {
try {
SqlSession session = MybatisSqlSessionFactory.getSqlSession(true);
TeacherMapper mapper = session.getMapper(TeacherMapper.class);
Teacher ss = mapper.selectData(1);
System.out.println(ss);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
@Test
public void selectData2() {
try {
SqlSession session = MybatisSqlSessionFactory.getSqlSession(true);
TeacherMapper mapper = session.getMapper(TeacherMapper.class);
List<Teacher> list = mapper.selectAllData();
list.forEach(t -> System.out.println(t));
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
总结
今天刚学了mybatis,熟悉了对表的增、删、改、查功能,下个贴具体写一下映射文件和配置文件中的一些标签的含义,小白一个,请大佬们多多指教!