MyBytis工程搭建
MyBatis支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录
好处: 为了和数据库进行交互,通常的做法是将SQL语句写在Java代码中,SQL语句和Java代码耦合在一起不利于后期维护修改,而MyBatis能够帮助我们将SQL语句和Java代码分离,方便了后期因需求变动而对SQL语句进行修改。
新建项目,名称为mybatis-demo
drop database if exists mybatis_demo;
create database mybatis_demo;
use mybatis_demo;
create table user (
id int auto_increment primary key,
username varchar(20),
age int,
score int
);
insert into user (id, username, age, score) values
(1,‘peter’, 18, 100), (2,‘pedro’, 24, 200),
(3,‘jerry’, 28, 500), (4,‘mike’, 12, 300),
(5,‘tom’, 27, 1000);
引入mysql包mysql-connector-java8.0.23
新建类JDBCDemo测试
public class JDBCDemo {
public static void main(String[] args) throws Exception {
Class.forName(“com.mysql.cj.jdbc.Driver”);
Connection connection = DriverManager.getConnection(“jdbc:mysql://localhost:3306/mybatis_demo”, “root”, “root”);
PreparedStatement preparedStatement = connection.prepareStatement(“select * from user WHERE id = ?”);
preparedStatement.setInt(1, 1);
ResultSet resultSet = preparedStatement.executeQuery();
while (resultSet.next()) {
System.out.println("username: " + resultSet.getString(“username”));
System.out.println("age: " + resultSet.getString(“age”));
}
resultSet.close();
preparedStatement.close();
connection.close();
}
}
测试结果
配置文件配置MyBatis
新建配置文件:mybatis-config.xml
MyBatis实现Mapper配置并查询数据
新建项目名为:“mybatis-mapper-chenqionbin,配置好idea的库。
建好数据库,调用数据库
新建配置文件mybatis-config.xml导入mapper配置
新建mapper包,在其下面新建类UserMapper.java
public interface UserMapper {
/**
- 通过用户id查询用户名称
- @param id 用户id
- @return 用户名称
/
String selectUsernameById(Integer id);
}
新建模板测试类UserTest.java
@SuppressWarnings({“Duplicates”})
public class UserTest {
public static void main(String[] args) throws IOException, SQLException {
// 读取配置文件
InputStream configuration = Resources.getResourceAsStream(“mybatis-config.xml”);
// 得到 SqlSessionFactory 核心类
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(configuration);
// 开始一个 sql 会话
SqlSession session = sqlSessionFactory.openSession();
// 得到 mapper
UserMapper mapper = session.getMapper(UserMapper.class);
// 调用注解的SQL
String username = mapper.selectUsernameById(1);
System.out.println("username: " + username);
// 关闭会话
session.close();
}
}