新建项目(我使用的是 maven 项目) mybatis-study-01
一、加入 mybatis 与 mysql-connector 依赖包到 pom 文件
<Project xmlns = "http://maven.apache.org/pom/4.0.0" xmlns: xsi = "http://www.w3.org/2001/xmlschema-instance" xsi: schemalocation = "http:/MANCMMMMMMMMMMMMMMMMMMMMMMMMMMBM http://maven.apache.org/xsd/maven-4.0.0.xsd "> <moderVersion> 4.0.0 </modelversion> <moderversion> <moderversion> <name> mybatis-01 </name> <url> http://maven.apache.org </url> <properties> <project.build.sourceencoding> utf-8 </project.build.sourceencoding> <ArtIfactId> Junit </artifactId> <persion> 4.10 </เวอร์ชัน> <pope> ทดสอบ </cope> </การพึ่งพา> <การพึ่งพาอาศัยกัน> <roupId> org.mybatis </groupId> <ArtIfactId> mybatis </artifactid> <ArtIfactId> mysql-connector-java </artifactid> <version> 5.1.27 </version> </การพึ่งพา> </pendencies> </project>
二、创建数据库 การทดสอบ mybatis
新建一张ผู้ใช้表用于测试。建表 SQL 如下:
สร้างตาราง `ผู้ใช้ '(` id` int (11) ไม่ใช่ null auto_increment, `รหัสผ่าน' varchar (255) ค่าเริ่มต้น null,` user_name` varchar (50) ค่าเริ่มต้น null, `user_age` int (11) ค่าเริ่มต้น` user `user` `user '
插入一条数据
แทรกลงในค่า `ผู้ใช้ '(' 1 ',' 123131 ',' ฤดูร้อน ',' 100 ',' เซี่ยงไฮ้, pudong ');
三、在项目中编写 pojo 对象。
แพ็คเกจ com.zf.mybatis.pojo; ผู้ใช้ระดับสาธารณะ {ID INT ส่วนตัว; รหัสผ่านสตริงส่วนตัว ชื่อผู้ใช้สตริงส่วนตัว; userage สตริงส่วนตัว; useraddress สตริงส่วนตัว; สาธารณะ int getId () {return id; } โมฆะสาธารณะ setId (int id) {this.id = id; } สตริงสาธารณะ getUserName () {ส่งคืนชื่อผู้ใช้; } โมฆะสาธารณะ setUserName (ชื่อผู้ใช้สตริง) {this.userName = ชื่อผู้ใช้; } สตริงสาธารณะ getUserage () {return userage; } โมฆะสาธารณะ setUserage (String userage) {this.userage = userage; } สตริงสาธารณะ getUserAddress () {return useraddress; } โมฆะสาธารณะ setUserAddress (สตริง useraddress) {this.userAddress = userAddress; } สตริงสาธารณะ getPassword () {ส่งคืนรหัสผ่าน; } โมฆะสาธารณะ setPassword (รหัสผ่านสตริง) {this.password = รหัสผ่าน; -四、编写 pojo 对应的映射文件 user.xml
<? xml version = "1.0" การเข้ารหัส = "utf-8"?> <! doctype mapper สาธารณะ "-// mybatis.org//dtd mapper 3.0 // en" "http://mybatis.org/dtd/mybatis-3-mapper.dtd namespace = "com.zf.mybatis.pojo.usermapper"> <!-使用 sql 标签可以将公标签可以将公的 sql 提取出来复用-> <sql id = "queryfields"> id, รหัสผ่าน, user_name เป็นชื่อผู้ใช้, user_age aserage, user_address resultType = "ผู้ใช้"> เลือก <รวม refid = "queryfields"/> จาก `user` โดยที่ id = #{id} </select> <แทรก id =" เพิ่ม "พารามิเตอร์ =" ผู้ใช้ "useGeneratedKeys =" true "keyProperty =" id "> #{username}, #{userage}, #{useraddress}) </insert> <อัปเดต id = "อัปเดต" parameterType = "ผู้ใช้"> อัปเดต `ผู้ใช้ตั้งรหัสผ่าน = #{รหัสผ่าน} user_address = #ess {username} <delete id = "deleteById" parameterType = "int"> ลบจาก `user` โดยที่ id = #{id} </delete> </mapper>注意: 上面的 namespace 的值为 com.zf.mybatis.pojo.usermapper,, usermapper 不是一个类, 不需要存在的。不需要存在的。不需要存在的。不需要存在的。不需要存在的。不需要存在的。不需要存在的。不需要存在的。不需要存在的。不需要存在的。不需要存在的。
另外, mybatis 会将从数据库查询出来的记录根据列名与 pojo 中的字段进行匹配, 所以上面的 user_name, user_age, user_address 这几个字段都取了别名, 跟 pojo 中的字段相对应。, 查询出来的对象查询出来的对象, 这几个字段是没有值的。这几个字段是没有值的。
五、编写 mybatis 的配置文件 mybatis-config.xml
<? xml version = "1.0" การเข้ารหัส = "utf-8"?> <! การกำหนดค่า doctype สาธารณะ "-// mybatis.org//dtd config 3.0 // en" "http://mybatis.org/dtd/mybatis-3-config.dtd" alias = "ผู้ใช้" type = "com.zf.mybatis.pojo.user"/> </typealiases> <!-数据库配置信息-> <environment default = "การพัฒนา"> <environment id = "การพัฒนา"> <transactionManager type = "JDBC"/> name = "url" value = "jdbc: mysql: //127.0.0.1: 3306/mybatis-test"/> <property name = "username" value = "root"/> <property name = "password" value = "root"/> </dataSource> </mappers> </การกำหนดค่า>
在该配置文件中配置了数据库的链接方式, 以及注册所有的映射文件, 还可以设置 mybatis 的一些参数。
现在就可以编写测试类了。来测试一下。
แพ็คเกจ com.zf.mybatis; นำเข้า java.io.ioexception; นำเข้า java.io.reader; นำเข้า org.apache.ibatis.io.resources; นำเข้า org.apache.ibatis.session.sqlsession; นำเข้า org.apache.ibatis.session org.apache.ibatis.session.sqlsessionfactorybuilder; นำเข้า org.junit.before; นำเข้า org.junit.test; นำเข้า com.zf.mybatis.pojo.user; ผู้อ่านผู้อ่านส่วนตัว @Before public void init () {ลอง {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 โมฆะสาธารณะ TestInserTUser () {SQLSESSION SESSION = SQLSessionFactory.opensession (); ลอง {user user = ผู้ใช้ใหม่ (); user.setUserName ("abcde"); user.setUserage (15); user.setUserAddress ("Hangzhou/Zhejiang"); user.setPassword ("123456"); // 返回值是记录条数 int resultCount = session.insert ("com.zf.mybatis.pojo.usermapper.add", ผู้ใช้); session.commit (); System.out.printf ("ผู้ใช้:%d, 总记录条数:%d", user.getId (), resultCount); // 获取插入对象的 id} ในที่สุด {session.close (); }} @Test โมฆะสาธารณะ TestUpDateUser () {SQLSESSION SESSION = SQLSessionFactory.opensession (); ลอง {user 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 โมฆะสาธารณะ 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 (); -运行ทดสอบ结果如下::
เซี่ยงไฮ้, pudongsummer
到此, 一个 mybatis 的 helloWorld 类型的小程序就出来了。
ps: mybaits 配置文件报错解决
MyBaits 的配置文件校验很诡异, 节点的位置还有要求如下, 会报错:
เนื้อหาของประเภทองค์ประกอบ "การกำหนดค่า" ต้องจับคู่ "(คุณสมบัติ?, การตั้งค่า?, typealiases?, typeHandlers?, ObjectFactory?, ObjectWrapperFactory?, ปลั๊กอิน?, สภาพแวดล้อม? <? XML เวอร์ชัน = "1.0" การเข้ารหัส = "UTF-8"?> <! การกำหนดค่า Doctype สาธารณะ "-// mybatis.org//dtd config 3.0 // en" "http://mybatis.org/dtd/mybatis-3-config.dtd <transactionManager type = "jdbc"/> <dataSource type = "pooled"> <property name = "driver" value = "oracle.jdbc.driver.oracledriver"/> <property name = "url" value = "jdbc: oracle: @xx: 1521: xx value = "xxxx"/> </ataSource> </environment> </environments> <sypealiases> <typealias type = "com.ice.stat.online.model.eventFlag" alias = "EventFlag"/> </typealiases> <mappers> </mappers> </การกำหนดค่า>
把 typealiases 放到最上面就好了说:
<? XML เวอร์ชัน = "1.0" การเข้ารหัส = "UTF-8"?> <! การกำหนดค่า doctype สาธารณะ "-// mybatis.org//dtd config 3.0 // en" "http://mybatis.org/dtd/mybatis-3-config.dtd type = "com.ice.stat.online.model.eventFlag" alias = "EventFlag"/> </typealiases> <environment default = "การพัฒนา"> <environment id = "การพัฒนา"> <transactionManager type = "JDBC"/> name = "url" value = "jdbc: oracle: thin: @xx: 1521: xx"/> <property name = "username" value = "iReport"/> <property name = "รหัสผ่าน" value = "xxxx"/> </dataSource> Resource = "com/ice/stat/online/model/hbm/esidentflagmapper.xml"/> </mappers> </การกำหนดค่า>