1、通过JDBC操作数据库的步骤是什么?
第1步:注冊驱动 (仅仅做一次)
第2步:建立连接(Connection)
第3步:创建运行SQL的语句(Statement)
第4步:运行语句
第5步:处理运行结果(ResultSet)
第6步:释放资源
2、MyBatis 是什么?
MyBatis是一个优秀的持久层框架,它对jdbc的操作数据库的过程进行封装,使开发者只需要关注 SQL 本身,而不需要花费精力去处理注册驱动、创建Connection、创建Statement、手动设置参数、结果集检索及映射等繁杂的过程代码。
MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis,实质上Mybatis对iBatis进行一些改进。
3、MyBatis的使用步骤
1 创建工程,pom文件添加依赖
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.5</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.47</version>
</dependency>
2 编写核心配置文件SqlMapConfig.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>
<!-- 外部文件引入 -->
<properties resource="db.properties"></properties>
<!--<settings>-->
<!--<setting name="mapUnderscoreToCamelCase" value="true"/>-->
<!--</settings>-->
<!--分页插件
<plugins>
<plugin interceptor="com.github.pagehelper.PageHelper">
<property name="dialect" value="mysql" />
<property name="rowBoundsWithCount" value="true" />
</plugin>
</plugins>
-->
<!-- 配置环境,连接需要的基本参数 -->
<environments default="development">
<environment id="development">
<!-- 使用jdbc管理事务 -->
<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>
<!-- 配置文件找到对应的mapper -->
<mappers>
<package name="com.tiao.mapper"/>
</mappers>
</configuration>
3 编写dao接口
public interface UserMapper {
@Select("select * from user")
public List<User>findAll();
}
4 编写测试类
@Test
public void testFindAll() throws IOException {
//1.加载配置文件 得到连接工厂 获取连接
InputStream is = Resources.getResourceAsStream("SqlMapConfig.xml");
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is);
SqlSession sqlSession = factory.openSession();
//2.获取对应mapper对象
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
//3.执行查询
List<User> list = mapper.findAll();
for (User user : list) {
System.out.println(user);
}
//4.关闭资源
sqlSession.close();
}