Java框架学习——MyBatis(二)
Mybatis第一个程序
1.1、 在Java下创建包com.lhb.mybatis.pojo,在pojo包下创建User实体类(数据库自行创建):
public class User {
private String id;
private String username;
private String password;
private String name;
private int age;
private int sex;
private Date birthday;
private String created;
private String updated;
public User() {
}
public User(String id, String username, String password, String name, int age, int sex, Date birthday, String created, String updated) {
this.id = id;
this.username = username;
this.password = password;
this.name = name;
this.age = age;
this.sex = sex;
this.birthday = birthday;
this.created = created;
this.updated = updated;
}
//省略get(),set()方法
1.2、 在pom.xml引入依赖
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.2.8</version>
</dependency>
1.3、 在resource文件下创建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>
<!--环境,可以配置多个,default:指定采用哪个环境-->
<environments default="test">
<!--id:唯一标识-->
<environment id="test">
<!--事务管理器,JDBC类型的事务管理器-->
<transactionManager type="JDBC"/>
<!--数据源,池类型的数据-->
<dataSource type="POOLED">
<property name="driver" value="com.mysql.cj.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://127.0.0.1:3306/ssmdemo?useSSL=false"/>
<property name="username" value="root"/>
<property name="password" value=root"/>
</dataSource>
</environment>
</environments>
<!-- 映射文件 -->
<mappers>
</mappers>
</configuration>
1.4、 在resources下创建mappers文件夹,在mappers下创建映射文件(UserMapper.xml)
UserMapper.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:命名空间,随便写,一般保证命名空间唯一-->
<mapper namespace="com.lhb.mybatis.dao.UserMapper">
<!-- 查询的statement,id:在同一个命名空间下的唯一标识,resultType:sql语句的结果集封装类型 -->
<select id="queryUser" resultType="com.lhb.mybatis.pojo.User">
SELECT * FROM tb_user WHERE id=#{id}
</select>
</mapper>
1.5、 编写测试程序进行测试(UserMapperTest.java)
内容如下:
public class UserMapperTest {
public static void main(String[] args) throws IOException {
SqlSession sqlSession = null;
try {
// 指定mybatis的全局配置文件
String resource = "mybatis-config.xml";
// 读取mybatis-config.xml配置文件
InputStream inputStream = Resources.getResourceAsStream(resource);
// 构建sqlSessionFactory
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
// 获取sqlSession会话
sqlSession = sqlSessionFactory.openSession();
// 执行查询操作,获取结果集。参数:1-命名空间(namespace)+“.”+statementId,2-sql的占位符参数
User user = sqlSession.selectOne("UserMapper.queryUser", 1L);
System.out.println(user);
} finally {
// 关闭连接
if (sqlSession != null) {
sqlSession.close();
}
}
}
}
注:测试时需要在全局配置文件(mybatis-config.xml)的中引入UserMapper.xml,即:
<mapper resource="mappers/UserMapper.xml"/>
1.6、 mybatis使用步骤总结
1、配置mybatis-configs.xml全局的配置文件(数据源,引入mapper)
2、创建mapper.xml映射文件(写sql语句)
3、创建SqlSessionFactory(new SqslSessionFacyoryBulider.bulider())
4、通过SqlSessionFactory 创建SqlSession对象(sqlSessionFactory.openSession())
5、通过SqlSession操作数据库CRUD
6、调用session.commit()提交事务
7、调用session.close()关闭会话