目录
5、创建 MyBatis 的 SqlSessionFactory:
在 MyBatis 的配置文件中,需要指定数据库的连接信息,例如数据库类型、URL、用户名和密码等。
- <configuration>
- <environments default="development">
- <environment id="development">
- <transactionManager type="JDBC" />
- <dataSource type="POOLED">
- <property name="driver" value="com.mysql.jdbc.Driver" />
- <property name="url" value="jdbc:mysql://localhost:3306/mydatabase" />
- <property name="username" value="root" />
- <property name="password" value="password" />
- dataSource>
- environment>
- environments>
- configuration>
创建 Java 类,用于映射数据库中的表结构。该实体类的字段应该与数据库表中的列相对应,并提供相应的 getter 和 setter 方法。
- public class User {
- private int id;
- private String name;
- private int age;
-
- // getter 和 setter 方法
- // ...
- }
创建一个 XML 文件,用于存放 SQL 语句。在该文件中,可以定义查询、插入、更新和删除等操作的 SQL 语句,以及参数的映射关系。
"com.example.mapper.UserMapper"> -
- SELECT * FROM User WHERE id = #{id}
-
在 MyBatis 的配置文件中,需要引入之前编写的 SQL 映射文件,并且配置相应的命名空间和别名。
- <configuration>
- <mappers>
- <mapper resource="com/example/mapper/UserMapper.xml" />
- mappers>
- configuration>
在 Java 代码中,使用 MyBatis 提供的 SqlSessionFactoryBuilder 来创建 SqlSessionFactory,它是 MyBatis 的核心类,负责创建 SqlSession 的实例。
使用 SqlSessionFactory 创建一个 SqlSession 实例,通过 SqlSession 可以执行具体的数据库操作,如查询、插入、更新和删除等。
SqlSession sqlSession = sqlSessionFactory.openSession();
在 SqlSession 中调用相应的方法执行 SQL 查询操作,如 selectOne()
、selectList()
等,可以传递参数并获取返回的结果。
User user = sqlSession.selectOne("com.example.mapper.UserMapper.getUserById", 1);
获取 SQL 查询的返回结果,并通过之前定义的实体类进行封装,从而将查询结果转化为 Java 对象。
如果在数据库操作中使用了事务管理,需要在适当的时候提交事务或回滚事务,以确保数据的一致性。
- sqlSession.commit(); // 提交事务
- // 或
- sqlSession.rollback(); // 回滚事务
使用完 SqlSession 后,需要手动关闭它以释放数据库连接和相应的资源,可以通过 close()
方法来关闭。
sqlSession.close();