myBatis的步骤

时间:2022-06-17
本文章向大家介绍myBatis的步骤,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

简介

什么是 MyBatis ?

MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。
MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。
MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,
将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。

持久层框架,对jdbc封装,是一个orm 对象关系映射框架,需要使用xml配置文件。

hibernate  orm  面向对象--面向关系  全自动的orm映射框架 不需要写sql

jdbc:
	1.加载驱动
	Class.forName("com.mysql.jdbc.Driver");
	2.建立连接
	Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/库名","username","password");
	3.获取预编译语句
	PreparedStatement stmt = conn.preparedStatement("select * from user where username = ?");
	4.给占位符赋值
	stmt.setString(1,"zhangsan");
	5.执行sql
	ResultSet rs = stmt.executeQuery();
	6.处理结果集
	List list = new ArrayList();
	while(rs.next()){
		User u = new User();
		u.setId(rs.getInt("id"));
		......
		list.add(u);
	}
	7.关闭结果集
	rs.close();
	stmt.close();
	conn.close();

hibernate:   使用简单 不需要写sql 优化很难
	User.java
	User.hbm.xml配置文件或者注解进行映射


	获取sessionFactory
	打开session
	String hql = "from User where username=?";
	List<User> list = session.createQuery(hql).setParameter(1,"zhangsan").list();
	

mybatis: orm  半自动的orm框架  需要自定义sql,但是不需要封装结果集

使用myabtis的基本步骤:

1.导入jar

org.mybatis mybatis 3.4.5

<dependency>
  <groupId>mysql</groupId>
  <artifactId>mysql-connector-java</artifactId>
  <version>5.1.46</version>
</dependency>

2.创建myabtis核心配置文件,修改jdbc连接

<?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>
    <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/java1807"/>
                <property name="username" value="root"/>
                <property name="password" value="123456"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <mapper resource="mapper/UserMapper.xml"/>
    </mappers>
</configuration>

3.创建实体类对应的Mapper映射文件

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.UserMapper">
    <select id="selectUser" resultType="com.qy.domain.User">
        select * from user where id = #{id}
    </select>
</mapper>

4.创建对应的实体类

public class User {
private int id;
private String nickname;
private String password;
private int status;
private int vip;
//省略getter  setter
}

5.测试

@Test
public void selectOne() throws Exception{
    String resource = "mybatis-config.xml";
    InputStream inputStream = Resources.getResourceAsStream(resource);
    SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
    SqlSession session = sqlSessionFactory.openSession();
    try {
        User user = (User) session.selectOne("mapper.UserMapper.selectUser", 1);
        System.out.println(user.getNickname());
    } finally {
        session.close();
    }
}