mybatis的使用方法
-
首先匯入mybatis-3.4.2.jar 的jar包,還要匯入mysql的jar包(也可以使用maven匯入)
-
mybatis-config.xml寫一個組態檔
?
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <properties resource="db.properties"/> <!--1.配置環境 ,默認的環境id為mysql --> <environments default="mysql"> <!--1.2.配置id為mysql的資料庫環境 --> <environment id="mysql"> <!-- 使用JDBC的事務管理 --> <transactionManager type="JDBC"/> <!--資料庫連接池 --> <dataSource type="POOLED"> <!-- 資料庫驅動 --> <property name="driver" value="${jdbc.driver}"/> <!-- 連接資料庫的url --> <property name="url" value="${jdbc.url}"/> <!-- 連接資料庫的用戶名 --> <property name="username" value="${jdbc.username}"/> <!-- 連接資料庫的密碼 --> <property name="password" value="${jdbc.password}"/> </dataSource> </environment> </environments> <!--2.配置Mapper的位置 --> <mappers> <mapper resource="com/haosibo/mapper/StudentMapper.xml"/> <mapper resource="com/haosibo/mapper/UserMapper.xml"/> </mappers> </configuration>資料庫的各種驅動路徑,資料庫名,用戶名,密碼都要配置,最重要的是配置Mapper的位置
mapper resource="com/haosibo/mapper/UserMapper.xml" -
撰寫UserMapper.xml 這個組態檔是放到 mapper resource=這里放UserMapper.xml,然后其中的sql陳述句就會被配置好
<?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 作業空間的名字 <mapper namespace="com.haosibo.domain.User"> //id是找到sql陳述句用的 <select id="selectUser" resultType="com.haosibo.domain.User"> select * from t_user </select> <!--登錄--> <select id="login" resultType="com.haosibo.domain.User" parameterType="com.haosibo.domain.User"> select * from t_user where name=# {name} and password=# {password} </select> </mapper> -
都配置好了如何呼叫呢
?
//加載組態檔
Reader reader = Resources.getResourceAsReader("mybatis-config.xml");
//創建SqlSessionFactory 工廠類并用工廠類創建工廠物件sqlSessionFactory
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
//用sqlSessionFactory獲取到Session物件執行selectOne方法
sqlSessionFactory.openSession().selectOne("com.haosibo.domain.User.login", user);
selectOne(“com.haosibo.domain.User.login”, user)這里面com.haosibo.domain.User 這些是作業空間的名字,login這個是sql陳述句的id ,后面user是引數,
mybatis注意事項
單表或多表查詢的時候
<resultMap id="studentWithCourse" type="student">
<id property="id" column="id"/>
<result property="name" column="name"/>
<result property="cid" column="cid"/>
<association property="course" column="cid" select="com.mapper.CourseMapper.selectcourse">
<id property="id" column="id"/>
<result property="cname" column="cname"/>
</association>
</resultMap>
column則是列名,即SQL陳述句回傳出來的列名,property則是Bean物件的屬性名
多表查詢只查出一條資料
多表查詢時要注意,SQL陳述句回傳出來的列名不能相同,否則只會查出一條資料,因為同樣的欄位,系統在資料篩選的時候會出現無法判斷,所以只能讀取第一條資料作為最后結果,切記,結果集有集合的,在mapper檔案寫column的時候不設為一樣的,在具體的sql中修改列名字,
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/265469.html
標籤:其他
上一篇:imp-00003:oracle error 959 encountered
下一篇:mysql學習筆記(一)
