1.添加MyBatis的坐标
需要导入的坐标有两个:mysql-connector-java和mybatis
2.创建数据表User
(别的表也可以,但是要和实体类对应)
CREATE TABLE `user`(
id INT PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(10),
`password` VARCHAR(20)
);
3.创建实体类User
public class User {
private int id;
private String username;
private String password;
Getter/Setter......
}
注意:数据表的字段和实体类的属性名字和类型都要相同
4.编写映射文件UserMapper.xml
配置文件的前两行,也就是约束头一般都是一样的,复制粘贴就好了。
主要,要写命名空间namespace,然后根据sql的类型选择子标签,这里用select
对于每条sql语句需要指明它的id和resultType:返回值类型的全限定名称
<?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="userMapper">
<select id="findAll" resultType="com.lxl.domain.User">
select * from user
</select>
</mapper>
5.编写核心文件SqlMapConfig.xml
同样的,第一步是把约束头复制过来,然后要配置数据源和映射文件
首先,使用<configuration>开启配置,然后加入<mappers>标签进入映射文件,
再通过<enrironments>配置环境,这里先配置一个develoment环境,然后将其设置为默认的环境,
在环境中要配置JDBC事务管理器和POOLED数据源,并在数据源中提供连接所必须的四个参数
<?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>
<!--配置映射文件-->
<mappers>
<mapper resource="mapper/UserMapper.xml"/>
</mappers>
<!--配置数据源-->
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.cj.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/test"/>
<property name="username" value="root"/>
<property name="password" value="rootpassword"/>
</dataSource>
</environment>
</environments>
</configuration>
6.进行测试
加载和获得session会话对象的代码还挺麻烦的,后续会简化掉,拿到sqlSession后可以通过它执行语句了
public class MyBatisTest {
@Test
public void test1() throws IOException {
// 加载核心配置文件
InputStream resourceAsStream = Resources.getResourceAsStream("SqlMapConfig.xml");
// 获得session工厂对象
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream);
// 获得session会话对象
SqlSession sqlSession = sqlSessionFactory.openSession();
// 执行操作 参数:namespace+id
List<User> userList = sqlSession.selectList("userMapper.findAll");
// 打印数据
for (User user : userList) {
System.out.println(user);
}
// System.out.println(userList);
// 释放资源
sqlSession.close();
}
}