01_根據Id查詢User的數據


【工程目錄】

【數據庫表中內容 user表】

 

 【sqlMapConfig.xml配置文件主要內容】

簡述:sqlMapConfig.xml配置文件主要有兩個作用:

1.配置和數據連接的相關信息,例如事務管理、數據庫連接池等信息。

2.加載映射文件,例如本項目中的user.xml

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <!DOCTYPE configuration  3 PUBLIC "-//mybatis.org//DTD Config 3.0//EN" 
 4 "http://mybatis.org/dtd/mybatis-3-config.dtd">
 5 <configuration>
 6     
 7     <!-- 和Spring整合之后這些配置將刪除 -->
 8     <environments default="development">
 9         <environment id="development">
10             <!-- 使用jdbc事務管理 -->
11             <transactionManager type="JDBC" />
12             <!-- 數據庫連接池 -->
13             <dataSource type="POOLED">
14                 <property name="driver" value="com.mysql.jdbc.Driver"/>
15                 <property name="url" 
16                     value="jdbc:mysql://localhost:3306/mybatisdb?useUnicode=true&amp;characterEncoding=UTF-8" />
17                 <property name="username" value="root"/>
18                 <property name="password" value=""/>
19             </dataSource>
20         </environment>
21     </environments>
22     
23     <!-- 加載映射文件 -->
24     <mappers>
25         <mapper resource="sqlmap/user.xml"/>
26     </mappers>
27     
28 </configuration>

 

【user.xml】

在user.xml文件中編寫相關的CRUD的代碼

<?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="test">
    <select id="findUserById" parameterType="int" resultType="com.Higgin.Mybatis.po.User">
         SELECT * from USER WHERE id=#{id}
     </select>
</mapper>

解釋:

1.namespace命名空間,作用就是對sql進行分類化管理。注意:使用mapper代理方法開發,namespace有特殊重要的作用。

2.在<mapper>映射文件中可以配置很多的sql語句,除了<select>還有<delete>、<update>、<insert>等等

3.通過select 執行數據庫查詢,將sql語句封裝到mapperStatement對象中,所以將id成為statement的id

4.parameterType:指定輸入參數的類型,這里指定是int類型

5.#{}:表示一個占位符

6.#{id}:其中的占位符表示接入輸入的參數,參數名稱為id,若輸入的參數是簡單類型,#{}中的參數名稱可以任意,既可以是value或者其他名稱

7.resultType:指定sql輸出結果所映射的java類型對象,select指定resultType表示將單條記錄映射成的User對象

 

【log4j.properties】

#Global logging configuration #在開發環境下,日志級別要設置成DEBUG
log4j.rootLogger=DEBUG,stdout
#Console output...
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n

 

 

【User.java】

 1 package com.Higgin.Mybatis.po;
 2 
 3 import java.util.Date;
 4 
 5 public class User {
 6     //屬性名和數據庫表字段對應
 7         private int id;
 8         private String username;
 9         private String sex;
10         private Date birthday;
11         private String address;
12        //忽略get、set、toString方法....  
13 }

 

【MyBatisTest.java】

public class MyBatisTest {
    @Test
    public void testFindUserByID() throws IOException{
        //mybatis配置文件
        String resource="SqlMapConfig.xml";
       
        //得到配置文件
        InputStream inputStream=Resources.getResourceAsStream(resource);
        
        //創建會話工廠,傳入mybatis的配置文件信息
        SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(inputStream);

        //通過工廠得到SqlSession
        SqlSession sqlSession=sqlSessionFactory.openSession();
        
        //通過SqlSession操作數據庫
        //第一個參數:映射文件中statement的id,等於:namespace+"."+statement的id
        //第二個參數:指定映射文件中的所匹配的parameterType類型的參數
        User user=sqlSession.selectOne("test.findUserById", 2);
        System.out.println(user.toString());
        //釋放資源
        sqlSession.close();
    }
}

 

【運行結果】

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM