新建项目(我使用的是(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>