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

須要的小夥伴,能夠一鍵三連,點擊這裏獲取免費領取方式多線程

相關文章
相關標籤/搜索