新建項目(我使用的是(Maven)(Mybatis-study-01)
Mybatis與mysql-connector依賴包到poM文件
<Project XMLNS =“ http://maven.apache.org/pom/4.0.0” xmlns:xsi =“ http://www.org/2001/xmlschema-chema-ingschema-ingschema-ingstance” http://maven.apache.org/xsd/maven-4.0.0.0.0.xsd“> <modelversion> 4.0.0 </modelversion> <groupId> mybatis> mybatis </groupId> <ARTIFACTID> <ARTIFACTID> artifactId> mybatis-study-study-01-01-01 </artifactid> </artifactid> </artifactid> </atrifactid> </atrifactid> 0.0.0.1-10.1-snapshod </proces> <NAME> mybatis-01 </name> <url> http://maven.apache.org </url> <properties> <project.build.sourceencoding> utf-8 </project.build.sourceect.sourceencecencocecencOccOding> </ <version>4.10</version> <scope>test</scope> </dependency> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.2.3</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <版本> 5.1.27 </version> </deverency> </depentencies> </project>
Mybatis測試
新建一張用戶表用於測試。建表sql如下:
創建表`用戶`(`id` id` int(11)而不是null auto_increment,`password` password` varchar(255)默認null,`user_name` user_name` varchar(50)默認為null,user_age int(11)默認值null,default null,'user_address` user_address` var(200)efault null,priendial''
插入一條數據
插入“用戶”值('1','123131','summer','100','上海,Pudong');
三、在項目中編寫 pojo對象。
軟件包com.zf.mybatis.pojo;公共類用戶{private int ID;私人字符串密碼;私有字符串用戶名;私有字符串用戶;私有字符串userAddress; public int getId(){返回ID; } public void setID(int id){this.id = id; } public String getUsername(){返回用戶名; } public void setUsername(字符串用戶名){this.username =用戶名; } public String getUserage(){return userage; } public void setUserage(字符串userage){this.userage = userage; } public String getUserAddress(){return userAddress; } public void setUserAddress(String userAddress){this.userAddress = userAddress; } public String getPassword(){返回密碼; } public void setpassword(字符串密碼){this.password =密碼; }}}四、編寫 pojo對應的映射文件user.xml
<? xml版本=“ 1.0” encoding =“ utf-8”? > <! doctype mapper public public' - // mybatis.org//dtd mapper 3.0 // en http://mybatis.org/mybatis.org/dtd/dtd/dtd/mybatis-3-mmybatis-3-mmapper.dtddd"> mmapper.dtddd"> mmapper.mmapper.mmapper.mmapper.mmapper.mmapper.mmapper.mmapper-mmapper-papper< namespace="com.zf.mybatis.pojo.UserMapper"> <!-- 使用sql標籤可以將公共的sql提取出來復用 --> <sql id="queryFields"> id , password , user_name as userName , user_age as userAge , user_address as userAddress </sql> <select id="selectByID" parameterType="int" resultytype =“ user”>選擇<include refid =“ queryfields”/>從'user` where id = =#{id} </select> <insert ID =“ add parametertype =” parametertype =“ user” use'USTER'USTERGENERATEDKEYS =“ true” keyproperty =“ keypproperty =”鍵#{用戶名},#{userage},#{userAddress})</insert> <update id =“ update” parameteType =“ user”> update update ustand use sec password = password =#{passubs_name =#{username} <delete id =“ deletebyid” parametertype =“ int”> delete從'where id =#{id}注意:上面的命名空間的值為com.zf.mybatis.pojo.usermapper,可以自定義,usermapper不是一個類,不需要存在的。 ,不需要存在的。
另外,mybatis會將從數據庫查詢出來的記錄根據列名與pojo中的字段進行匹配,所以上面的user_name,user_age,user_address這幾個字段都取了別名
Mybatis的配置文件mybatis-config.xml
<? xml版本=“ 1.0”編碼=“ utf-8”? > <! doctype配置公開“ - // mybatis.org//dtd config 3.0 // en”“ http://mybatis.org/dtd/dtd/mybatis-batis-batis-3-3-config.dtd”> <! <! type =“ com.zf.mybatis.pojo.user”/> </typealiases> <! - 數據庫配置信息-> <環境默認=“開發”> <環境id =“ development”> <transactionManager type =“ jdbc” jdbc“ jdbc”/> <dataSource value="jdbc:mysql://127.0.0.1:3306/mybatis-test"/> <property name="username" value="root"/> <property name="password" value="root"/> </dataSource> </environment> </environments> <!-- 映射文件 --> <mappers> <mapper resource="conf/User.xml"/> </mappers> </configuration>
在該配置文件中配置了數據庫的鏈接方式,以及註冊所有的映射文件,還可以設置,還可以設置
現在就可以編寫測試類了。來測試一下。
package com.zf.mybatis;import java.io.IOException;import java.io.Reader;import org.apache.ibatis.io.Resources;import org.apache.ibatis.session.SqlSession;import org.apache.ibatis.session.SqlSessionFactory;import org.apache.ibatis.session.sqlsessionfactorybuilder; import org.junit.before; import org.junit.test; import com.zf.mybatis.pojo.user; public class class class class testmybatis {private sqlsessionfactressessionFactoryFactory sqlsessionFactory facterfactory;私人讀者讀者; @befor公共void init(){try {reader = resources.getResourceAsreader(“ mybatis-config.xml”); sqlSessionFactory = new SqlSessionFactoryBuilder()。 build(reader); } catch(ioexception e){e.printstacktrace(); }} @test public void testqueryuser(){sqlsession session = sqlsessionfactory.opensession();嘗試{user user =(用戶)session.selectone(“ com.zf.mybatis.pojo.usermapper.selectbyid”,1); system.out.println(user.getUserAddress()); system.out.println(user.getUsername()); }最後{session.close(); }} @test public void testinsertuser(){sqlsession session = sqlsessionfactory.opensession();嘗試{user user = new user(); user.setUsername(“ abcde”); user.setuserage(15); user.setuseraddress(“ hangzhou/zhejiang”); user.setPassword(“ 123456”); //返回值是記錄條數int resultcount = session.insert(“ com.zf.mybatis.pojo.usermapper.add”,user); session.commit(); system.out.printf(“ userId:%d,總記錄條數:%d”,user.getId(),resultCount); //獲取插入對象的ID}最後{session.close(); }} @test public void testupdateuser(){sqlsession session = sqlsessionfactory.opensession();嘗試{user user = new user(); user.setid(5); user.setUsername(“ updateName”); user.setuserage(101); user.setuseraddress(“深圳/廣東”); user.setPassword(“ 000000”); //返回值是修改條數int UpdateCount = session.update(“ com.zf.mybatis.pojo.usermapper.update”,用戶); session.commit(); system.out.printf(“修改條數:%d”,updateCount); }最後{session.close(); }} @test public void testDelete(){sqlsession session = sqlsessionfactory.opensession();嘗試{//返回值是刪除條數int deletecount = session.update(“ com.zf.mybatis.pojo.usermapper.deletebyid”,4); session.commit(); system.out.printf(“刪除條數:%d”,deletecount); }最後{session.close(); }}}}運行testqueryuser結果如下::
上海,布東薩爾
到此,mybatis的helloworld類型的小程序就出來了。
PS:Mybaits配置文件報錯解決
Mybaits的配置文件校驗很詭異,節點的位置還有要求如下,會報錯::
元素類型“配置”必須匹配的內容(屬性?,設置?,typealiases?,typehandlers?,objectFactory?,objectWrapperFactory?,plugins?,Environments?,mappers?)。 <? xml版本=“ 1.0”編碼=“ utf-8”? > <! doctype配置公共“ - // mybatis.org//dtd config 3.0 // en” http://mybatis.org/dtd/mybatis.org/dtd/mybatis-3-3-config.dtd> <環境<transActionManager type =“ jdbc”/> <dataSource type =“ bomed”> <property name =“ drial” value =“ oracle.jdbc.driver.oracledriver”/> <屬性名稱=“ url” value =“ jdbc:oracle” value="xxxx"/> </dataSource> </environment> </environments> <typeAliases> <typeAlias type="com.ice.stat.online.model.EventFlag" alias="EventFlag"/> </typeAliases> <mappers> <mapper resource="com/ice/stat/online/model/hbm/EventFlagMapper.xml"/> </mappers> </configuration>
把typealiases放到最上面就好了說::
<? xml版本=“ 1.0”編碼=“ utf-8”? > <! doctype configuration public“ - // mybatis.org//dtd config 3.0 // en”“ type =“ com.ice.stat.online.model.model.eventflag”別名=“ eventflag”/> </typealiases> <環境默認=“ development”> <環境ID =“ development”> <transactionManager type =“ jdbc” jdbc“ jdbc“ name =“ url” value =“ jdbc:oracle:thin:@xx:1521:xx”/> <property name =“ username” value =“ ireport”/> <property name =“ password” value =“ xxxx”/> </> </dataSource> </dataSource> </dataSource> </document> </evourvorm> </emovents> Resource =“ COM/ICE/STAT/ONLING/MODEL/HBM/EVENTFLAGMAPPER.XML”/> </> </mappers> </configuration>