新建项目 (我使用的是 maven 项目) mybatis-study-01
mybatis 与 mysql-connector 依赖包到 pom 文件
<project xmlns = "http://maven.apache.org/pom/4.0.0" http://maven.apache.org/xsd/maven-4.0.0.xsd "> <Dodeversion> 4.0.0 </modelversion> <roupiD> mybatis </rougeid> </attifactid> mybatis-study-01 </attifactid> <name> mybatis-01 </same> <Url> http://maven.apache.org </url> <ferties> <project.build.sourceencoding> utf-8 </groupid.build.sourceencoding> </properties> <eredencies> <StifactId> junit </stifactid> <الإصدار> 4.10 </الإصدار> <scope> اختبار </scope> </reperence> <reperence> <roupled> org.mybatis </rougiD> <StifactId> mybatis </sontifactid> <sored> <StifactId> mysql-connector-java </stifactid> <الإصدار> 5.1.27 </version> </repreadency> </repreadencies> </project>
mybatis-test
新建一张 المستخدم 表用于测试。建表 sql 如下 :
قم بإنشاء جدول `user` (` id` int (11) not null auto_increment ، `password` varchar (255) default null ،` user_name` varchar (50) default null ، `user_age` int (11) expaul
插入一条数据
أدخل في قيم "المستخدم" ("1" ، "123131" ، "Summer" ، "100" ، "Shanghai ، Pudong") ؛
三、在项目中编写 Pojo 对象。
package com.zf.mybatis.pojo ؛ مستخدم الفئة العامة {private int id ؛ كلمة مرور السلسلة الخاصة ؛ اسم المستخدم الخاص بالسلسلة الخاصة ؛ استخدام السلسلة الخاصة ؛ سلسلة خاصة useraddress ؛ public int getId () {return id ؛ } public void setId (int id) {this.id = id ؛ } السلسلة العامة getUserName () {return username ؛ } public void setusername (string username) {this.userName = username ؛ } السلسلة العامة getUserage () {return userage ؛ } public void setUserage (string userage) {this.userage = userage ؛ } السلسلة العامة getUserAddress () {return userAddress ؛ } public void setUserAddress (String userAddress) {this.userAdDress = userAdDress ؛ } السلسلة العامة getPassword () {return password ؛ } public void setPassword (سلسلة كلمة مرور) {this.password = password ؛ }}四、编写 pojo 对应的映射文件 user.xml
<؟ مساحة name.zf.mybatis.pojo.usermapper "> <!-使用 sql 标签可以将公 的 sql 提取出来复用-> <sql id =" queryfields "> id ، كلمة المرور ، user_name as username ، user_age as userage ، user_address as useraddress </sql> resulttype = "user"> حدد <refid = "queryfields"/> من `user` حيث id = #{id} </select> <insert id =" add "parametertype =" user "usegeneratedkyys =" true "keyproperty =" id "> insert in` user` (password ، user_name ، user_adress). #{username} ، #{userage} ، #{userAddress}) </soRt> <update id = "update" parametertype = "user"> update `user` set password = # <delete id = "deleteById" parametertype = "int"> delete من `user` حيث id = #{id} </delete> </mapper> : : 上面的 مساحة الاسم 的值为 com.zf.mybatis.pojo.usermapper , , , usermapper 不是一个类 , 不需要存在的。
另外 , mybatis 会将从数据库查询出来的记录根据列名与 pojo 中的字段进行匹配 , 所以上面的 user_name , user_age ، user_address 这几个字段都取了别名 跟 跟 pojo 中的字段相对应。 如果不起别名 , 查询出来的对象 这几个字段是没有值的。 这几个字段是没有值的。
mybatis 的配置文件 mybatis-config.xml
<؟ type = "com.zf.mybatis.pojo.user"/> </typeAliases> <!-数据库配置信息-> <البيئات default = "development"> <البيئة id = "development"> <TransactionManager type = "jdbc"/> <datasource type = "prouded" <property nese = "driver" value = value = "jdbc: mysql: //127.0.0.1: 3306/mybatis-test"/> <property name = "username" value = "root"/> <property name = "password" value = "confer"/> </datasource> </eversity> </mappers> </isplicuration>
在该配置文件中配置了数据库的链接方式 , 以及注册所有的映射文件 , 还可以设置 mybatis 的一些参数。
现在就可以编写测试类了。来测试一下。
package com.zf.mybatis ؛ import java.io.ioException ؛ import java.io.riader ؛ import org.apache.ibatis.io.resources ؛ import org.apache.ibatis.session.sqlsession ؛ import org.apache.sedis.seness.sqlsessionfactory ؛ org.apache.ibatis.session.sqlsessionfactorybuilder ؛ import org.junit.beore ؛ import org.junit.test ؛ import com.zf.mybatis.pojo.user ؛ public class testmybatis {private sqlsessionfactory sqlsessionfactory ؛ قارئ القارئ الخاص ؛ before public void init () {try {reader = resources.getResourCeasReader ("mybatis-config.xml") ؛ sqlsessionFactory = جديد sqlsessionfactorybuilder (). build (reader) ؛ } catch (ioException e) {E.PrintStackTrace () ؛ } }Test public void testqueryuser () {sqlsession session = sqlsessionfactory.opensession () ؛ جرب {user 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 ("Shenzhen/Guangdong") ؛ user.setPassword ("000000") ؛ // 返回值是修改条数 int updateCount = session.update ("com.zf.mybatis.pojo.usermapper.update" ، user) ؛ 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 :
شنغهاي ، Pudongsummer
到此 , 一个 mybatis 的 helloworld 类型的小程序就出来了。
PS : MyBaits 配置文件报错解决
myBaits 的配置文件校验很诡异 , 节点的位置还有要求如下 会报错 :
يجب أن يتطابق محتوى نوع العنصر "التكوين" (الخصائص؟ ، والإعدادات؟ ، والطينات ، والكائنات؟ ، ObjectFactory؟ ، ObjectWrapperFactory؟ ، الإضافات؟ ، البيئات؟ ، المخططات؟) ". <؟ <TransactionManager type = "jdbc"/> <dataSource type = "prouded"> <property name = "driver" value = "oracle.jdbc.driver.oracledriver"/> <property name = "url" value = "jdbc: oracle: thin: xx: 1521: xx"/> value = "xxxx"/> </dataSource> </eversity> </eversionments> <typealiases> <typealias type = "com.ice.stat.online.model.eventflag" alias = "eventflag"/> </tytytylaias> <mappers> <mapper resource = "com/inlan/model/hbm/hbm/eventflagmm. </mappers> </isplicuration>
把 typealiases :
<؟ type = "com.ice.stat.online.model.eventflag" alias = "eventflag"/> </termeAliases> <البيئات default = "development"> <البيئة id = "development"> <TransactionManager = "jdbc"/> <datasource type = property name = "value" name = "url" value = "jdbc: oracle: thin: xx: 1521: xx"/> <property name = "username" value = "iReport"/> <property name = "password" value = "xxxx"/> </dataSource Resource = "com/ice/stat/online/model/hbm/eventFlagMapper.xml"/> </mappers> </iscification>