栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Mybatis1-自定义持久层框架

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Mybatis1-自定义持久层框架

一、JDBC:
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, "tom");
        // 向数据库发出sql执⾏查询,查询出结果集
        resultSet = preparedStatement.executeQuery();
        // 遍历查询结果集
        while (resultSet.next()) {
            int id = resultSet.getInt("id");
            String username = resultSet.getString("username");
            // 封装User
            user.setId(id);
            user.setUsername(username);
        }
        System.out.println(user);
    }
} catch(Exception e){
    e.printStackTrace();
} finally{
    // 释放资源
    if (resultSet != null) {
        try {
            resultSet.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
    if (preparedStatement != null) {
        try {
            preparedStatement.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
    if (connection != null) {
        try {
            connection.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

 如上一个jdbc的写法,存在两个缺点:

硬编码:不管是sql语句,还是参数,还是取值,都是硬编码,不好维护。

链接频繁创建和释放:每次访问都会创建新的链接,用完后释放,造成系统资源浪费。

 解决办法:

可以通过连接池管理链接。

可以用xml文件,将sql等信息配置,通过反射等技术实现动态映射。

二、自定义mybatis框架 业务项目A

 1、定义全局配置文件sqlMapConfig.xml来存放数据源信息;  定义Mapper.xml来动态配置sql语句,比如,定义UserMapper.xml操作User。

sqlMapConfig.xml:


        
    
        
        
        
        
    

    
    


 UserMapper.xml:


    
        select * from user where id = #{id} and username =#{username}