MyBatis常用实现方式

MyBatis 是一个优秀的基于 java 的持久层框架,它内部封装了 jdbc,使开发者只需要关注 sql 语句本身,而不需要花费精力去处理加载驱动、创建连接、创建 statement 等繁杂的过程。
不使用框架

public static void main(String[] args) {
Connection connection = null;
PreparedStatement preparedStatement = null;
ResultSet resultSet = null;
try {
//加载数据库驱动
Class.forName("com.mysql.jdbc.Driver");
//通过驱动管理类获取数据库链接
connection=DriverManager.getConnection("jdbc:mysql://localhost:3306/mybatis?characterEncoding=utf-8","root", "root");
//定义sql语句 ?表示占位符
String sql = "select * from user where username = ?";
//获取预处理statement
preparedStatement = connection.prepareStatement(sql);
//设置参数,第一个参数为sql语句中参数的序号(从1开始),第二个参数为设置的参数值
preparedStatement.setString(1, "尼古拉斯赵六");
//向数据库发出sql执行查询,查询出结果集
resultSet = preparedStatement.executeQuery();
//遍历结果集并释放资源

编写xml文件方式
1.导入依赖坐标

2.编写实体类和接口

public class User implements Serializable{
    private String Username;
    private Integer age;
}

public interface UserService{
    List<User> findAll();
}

3.编写持久层接口的映射配置文件UserService.xml

<mapper namespace="xx.xx.UserService">
    <!--方法名,实体类全类名,接口全类名-->
    <select id="findAll" resultType="xx.xx.User">
        select * from user
    </select>
</mapper>

4,编写核心配置文件SqlMapConfig.xml

<!-- mybatis的主配置文件 -->
<configuration>
    <!-- 配置环境 -->
    <environments default="mysql">
        <!-- 配置mysql的环境-->
        <environment id="mysql">
            <!-- 配置事务的类型-->
            <transactionManager type="JDBC"></transactionManager>
            <!-- 配置数据源(连接池) -->
            <dataSource type="POOLED">
                <!-- 配置连接数据库的4个基本信息 -->
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/martin"/>
                <property name="username" value="root"/>
                <property name="password" value="martin"/>
            </dataSource>
        </environment>
    </environments>

    <!-- 指定映射配置文件的位置,映射配置文件指的是每个接口独立的配置文件 -->
    <mappers>
        <mapper resource="xx.xx.UserService.xml"/>
    </mappers>
</configuration>

5.测试

public class MybatisTest {
    public static void main(String[] args)throws Exception {
        //1.读取配置文件
        InputStream in = Resources.getResourceAsStream("SqlMapConfig.xml");
        //2.创建SqlSessionFactory工厂
        SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
        SqlSessionFactory factory = builder.build(in);
        //3.使用工厂生产SqlSession对象
        SqlSession session = factory.openSession();
        //4.使用SqlSession创建接口的代理对象
        IUserDao userDao = session.getMapper(UserService.class);
        //5.使用代理对象执行方法
        List<User> users = UserService.findAll();
        for(User user : users){
            System.out.println(user);
        }
        //6.释放资源
        session.close();
        in.close();
    }
}

使用注解方式
1.导入依赖坐标

2.编写实体类和接口,并在接口上使用注解

public interface UserService { 
    @Select("select * from user")
    List<User> findAll();
}

3.在SqlMapConfig.xml中配置注解

<configuration>
.......
  <!-- 指定映射配置文件的位置,使用class属性指定被注解的接口的全限定类名-->
    <mappers>
        <mapper class="xx.xx.UserService"/>
    </mappers>
</configuration>
为了目标奋斗
原文地址:https://www.cnblogs.com/Rosemajor/p/13291562.html