Mybatis封装JDBC入门——Mybatis执行代码及封装JDBC流程图

 

watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=

1、JDBC六个步骤
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
try {
    //1. 加载驱动
    Class.forName("com.mysql.jdbc.Driver");
    //2. 获取链接
    conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mybatis?serverTimezone=UTC", "root", "123456");
    //3. 建立PreparedStatement  【设置参数】
    ps = conn.prepareStatement("select * from user");
    //4. 执行sql  ==》executeXxx()
    rs = ps.executeQuery();
    //5. 遍历结果集
    while(rs.next()) {
        System.out.println(rs.getString(2)); // 数据库第2列数据
    }
} catch (ClassNotFoundException e) {
    e.printStackTrace();
} catch (SQLException e) {
    e.printStackTrace();
}finally {
    //6. 关闭链接
    try {
        rs.close();
        ps.close();
        conn.close();
    } catch (SQLException e) {
        e.printStackTrace();
    }

}
2、数据库链接池

问题1:频繁的创建链接释放链接,形成资源的浪费。java

数据库链接池,用来解决创建与释放链接的问题。 可是数据库链接池有dbcp链接池,c3p0链接池,druid链接池,不可能为每个链接池实现一种链接方式。因此使用DataSource实现隔离解耦mysql

public static ComboPooledDataSource dataSource = new ComboPooledDataSource(); 
// 经过C3p0 配置数据源 DataSource,之后想要使用其它的链接池,只需改动如何获取DataSource,不须要改动链接。
public static void dataSource(){
    try {
        dataSource.setDriverClass("com.mysql.jdbc.Driver");
        dataSource.setJdbcUrl("jdbc:mysql://localhost:3306/test?serverTimezone=UTC");
        dataSource.setUser("root");
        dataSource.setPassword("123456");
        dataSource.setInitialPoolSize(3);
        dataSource.setMaxPoolSize(10);
        dataSource.setMinPoolSize(3);
        dataSource.setAcquireIncrement(3);
    } catch (PropertyVetoException e) {
        e.printStackTrace();
    }
}

// 经过数据源,获取链接 Connection
public static Connection conn() {
    Connection conn = null;
    dataSource();
    try {
        conn = dataSource.getConnection();
        //Unknown system variable 'tx_isolation' : 可能缘由是数据库版本过高,mysql-connector-java版本过低
        //conn.setTransactionIsolation(Connection.TRANSACTION_REPEATABLE_READ);
    } catch (SQLException e) {
        e.printStackTrace();
    }
    return conn;
}

在Mybatis中,配置druid数据源面试

<environments default="development-mysql">
        <environment >
            <transactionManager type="JDBC"/>
            <dataSource type="com.config.DruidDataSourceFactory">
                <property name="url" value="${jdbc.jdbcUrl}"/>
                <property name="username" value="${jdbc.user}"/>
                <property name="password" value="${jdbc.password}"/>
            </dataSource>
        </environment>
    </environments>
3、Mybatis执行代码

关键技术点SqlSession:执行Sqlsql

String resource = "conf/mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
//2. SqlSessionFactoryBuilder
SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
//1. 构建SqlSessionFactory
SqlSessionFactory factory = builder.build(inputStream);
//3. 构建session
SqlSession session = factory.openSession();
/** 第一种方式:之前原生的方式 */
//Student s = session.selectOne("com.shang.mybatis.mapper.StudentMapper.queryStudentById", 1);
//System.out.println(s);

/** 第二种方式:演变出来的*/
StudentMapper mapper = session.getMapper(StudentMapper.class); // mapperProxyFactory ==> mapper的代理对象
Student s = mapper.queryStudentById(1);
System.out.println(s);
4、MyBatis封装JDBC流程图

watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=

5、最后

 一直想整理出一份完美的面试宝典,可是时间上一直腾不开,这套一千多道面试题宝典,结合今年金三银四各类大厂面试题,以及 GitHub 上 star 数超 30K+ 的文档整理出来的,我上传之后,毫无心外的短短半个小时点赞量就达到了 13k,说实话仍是有点难以想象的。数据库

一千道互联网 Java 工程师面试题

内容涵盖:Java、MyBatis、ZooKeeper、Dubbo、Elasticsearch、Memcached、Redis、MySQL、Spring、SpringBoot、SpringCloud、RabbitMQ、Kafka、Linux等技术栈(485页)设计模式

watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=

《Java核心知识点合集(283页)》

内容涵盖:Java基础、JVM、高并发、多线程、分布式、设计模式、Spring全家桶、Java、MyBatis、ZooKeeper、Dubbo、Elasticsearch、Memcached、MongoDB、Redis、MySQL、RabbitMQ、Kafka、Linux、Netty、Tomcat、数据库、云计算等session

watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=

《Java中高级核心知识点合集(524页)》

watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=

《Java高级架构知识点整理》

watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=

 watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=

 因为篇幅限制,详解资料太全面,细节内容太多,因此只把部分知识点截图出来粗略的介绍,每一个小节点里面都有更细化的内容!mybatis

须要的小伙伴,能够一键三连,点击这里获取免费领取方式多线程

相关文章
相关标签/搜索