【工程目錄】
【數據庫表中內容 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&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(); } }
【運行結果】