在开始之前,我们先看懂一张图
前期准备工作
导入依赖
q1 mybatis依赖
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.6</version>
</dependency>
q2 mysql依赖
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.47</version>
</dependency>
其他各种依赖(选择)
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jsp-api</artifactId>
<version>2.0</version>
<scope>provided</scope>
</dependency>
还有
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.sakaiproject.nakamura</groupId>
<artifactId>org.sakaiproject.nakamura.mysql-driver</artifactId>
<version>5.1.13-1.4</version>
</dependency>
编写实体类
一定与数据库的列名一一对应
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>
<environments default="development">
<!-- 环境id 唯一-->
<environment id="development">
<!-- 事务管理-->
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="?useSSL=false&characterEncoding=UTF-8"/>
<property name="username" value=""/>
<property name="password" value=""/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="UserMapper.xml"/>
</mappers>
</configuration>
mapper.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="自己手动写">
<select id="自定义写" resultType="你实体类的路径">
select myID,deptNo,dname from dept;
</select>
</mapper>
测试类
String resource = "mybatis-config.xml";//加载配置文件,就是你写的mybatis.xml
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory =
new SqlSessionFactoryBuilder().build(inputStream);//获得sqlsession对象
SqlSession sqlSession = sqlSessionFactory.openSession();
第一个mybatis查询所有
1.1打开mapper.xml文件,设置 id 还有编写的sql语句
mapper name 为 user 语句id为 getAll
1.2 打开测试类
因为多数据 用集合 来返回
User 是 你实体类的名字 user.getAll 是你 mapper name 和 语句id
List<User> users =sqlSession.selectList("user.getAll");
输出users 查看是否成功
System.out.println(users);
成功显示
第二个mybatis单独查询
2.1 打开 mapper.xml文件 设置 mapper name 和 语句id 编写sql语句
<select id="getOne" resultType="com.qi.entity.User" parameterType="Integer">
select myID,deptNo,dname from dept where myID = #{myID};
</select>
因为用id 主键 查找 所以 主键类型就是 parameterType 就是 Interger
语句id 为 getOne 查询条件where 为 主键 myID = #{myID}
2.2打开测试类 ,以为就一种类型 所以用符合的类型接受就可以了
User user = sqlSession.selectOne("user.getOne",10);
查找 user.getOne ,myID值为10 也就是 查找主键 myID等于10 的数据库数据
数据库 表
第三个mybatis插入(增加)
3.1打开mapper.xml 设置 mapper name 和 语句id 编写sql语句
<insert id="add" parameterType="com.qi.entity.User">
insert into dept(myID,deptNo,dname) values (#{myID},#{deptNo},#{dname});
</insert>
添加 就是插入的英文 insert
3.2 但需要得到值,才能将值送到数据库,打开测试类
先给好数据
User user = new User();
user.setMyID(133);
user.setDeptNo(122);
user.setDname("动物打发")
然后,其中 sqlSession.commit()这个是必须要写的
int i = sqlSession.insert("user.add",user);
sqlSession.commit();//提交事务
System.out.println(i);
控制台返回
去数据库刷新之后
第四个mybatis更改
4.1 打开mapper.xml 设置 mapper name 和 语句id 编写sql语句
<update id="update" parameterType="com.qi.entity.User">
update dept set myID = #{myID}, dname = #{dname} where deptNo = #{deptNo};
</update>
4.2打开测试类
设定的条件是以deptNo为准,所以要先找到 数据库中deptNo的值,在将更改后的值返回
User user = new User();
user.setMyID(130);//输入修改后
user.setDeptNo(122);//确定 值
user.setDname("动物罢罢罢");//输入修改后
同理
int i = sqlSession.update("user.update",user);
sqlSession.commit();
System.out.println(i);
在数据库中查看
修改成功
第五个mubatis删除
5.1 打开mapper.xml 设置 mapper name 和 语句id 编写sql语句
<delete id="delete" parameterType="Integer">
delete from dept where myID = #{myID};
</delete>
5.2 打开测试类
int delete = sqlSession.delete("user.delete",12);
sqlSession.commit();
System.out.println(delete);
回到数据库刷新查看就可以
结束~~~~~~~