新建项目(我使用的是 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:/maven.romp.romp.romp. http://maven.apache.org/xsd/maven-4.0.0.xsd "> <podelversion> 4.0.0 </podelversion> <groupid> mybatis </groupid> <ArTifactid> mybatis-study-01 </arttifactid </versi> 0.0. <name> mybatis-01 </name> <rerl> http://maven.apache.org </ruRl> <properties> <poject.build.sourceencoding> UTF-8 </project.build.sourceencoding> </Properties> <dependensies> </project.build.sourceencoding> </Properties> <gandendency> </pendendency> <sroupt> <supup> </properties> </Properties> </properties> </properties> </properties> </properties> </properties> </properties> </properties> </properties> </properties> </properties> <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> <version> 5.1.27 </version> </dependency> </dependencies> </joy Project>
二、创建数据库 Mybatis-test
新建一张 Pengguna 表用于测试。建表 SQL 如下 :
Buat tabel `user` (` id` int (11) bukan null auto_increment, `password` varchar (255) default null,` user_name` varchar (50) nol default, `user_age` int (11) null,` user_address` varchar (200) default null, `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` User `` User `
插入一条数据
Sisipkan ke `user` values ('1', '123131', 'Summer', '100', 'Shanghai, pudong');
三、在项目中编写 pojo 对象。
paket com.zf.mybatis.pojo; pengguna kelas publik {private int id; kata sandi string pribadi; nama pengguna string pribadi; Userage String Pribadi; Private String UserAddress; publik int getId () {return id; } public void setid (int id) {this.id = id; } string publik getUserName () {return username; } public void setusername (string username) {this.username = username; } public string getUserage () {return userage; } public void setUserage (String userage) {this.userage = userage; } string publik getUserAddress () {return userAddress; } public void setUserAddress (String userAddress) {this.userAddress = userAddress; } public string getPassword () {return kata sandi; } public void setPassword (kata sandi string) {this.password = kata sandi; }}四、编写 poJo 对应的映射文件 user.xml
<? Xml Version = "1.0" encoding = "utf-8"?> <! Doctype mapper public "-// mybatis.org//dtd mapper 3.0 // en" "http://mybatis.org/dtd/mybatis-3-mapper namespace = "com.zf.mybatis.pojo.usermapper"> <!-使用 sql 标签可以将公标签可以将公 的 sql 提取出来复用-> <sql id = "queryfields"> ID, kata sandi, user_name sebagai username, user_age as userage, user_address sebagai useraddress </sqlress = "parlypy =" PARAMET = "PARAMET" USERBIED, USERBERDRESS sebagai userdress </sqlress = "ID =" PARA "USERBY, USERBYEDY, USERBYDSE, USERDREST </SQLREST =" ID = "PARA" USERBIED, USERBYE, USERBYDSE, USERBIDE, USERDREST </SQLREST = "" ID = "PARA" USERBY = " resultType="User"> select <include refid="queryFields"/> from `user` where id = #{id} </select> <insert id="add" parameterType="User" useGeneratedKeys="true" keyProperty="id" > insert into `user` (password , user_name , user_age , user_address) values(#{password} , #{userName} , #{userage}, #{UserAddress}) </sert> <update id = "update" parameTerType = "user"> update `User` Set Password = #{password}, user_name = #{uSerAddress {del delby = {uSerage = {uSerpene = {{{{{{{{{{{{{{{{" {uSerpene = {uSerpene = {uSerpene = parameterType = "int"> hapus dari `user` where id = #{id} </belete> </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" encoding="UTF-8" ?><!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"><configuration> <!-- 配置别名 --> <typeAliases> <typeAlias alias="User" type="com.zf.mybatis.pojo.User"/> </typeAliases> <!-- 数据库配置信息 --> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver"/> <property name = "url" value = "jdbc: mysql: //127.0.0.1: 3306/mybatis-test"/> <name properti = "nama pengguna" value = "root"/> <name properti = "kata sandi" = "root"/> </dateSource> </lingkungan> </Environments> <!-映射文件 root "/> </dateSource> </lingkungan> </Environments> <! Resource = "conf/user.xml"/> </phappers> </ Configuration>
在该配置文件中配置了数据库的链接方式 , 以及注册所有的映射文件 , 还可以设置 mybatis 的一些参数。
现在就可以编写测试类了。来测试一下。
Paket com.zf.mybatis; impor java.io.ioException; impor java.io.reader; impor org.apache.ibatis.io.Resources; impor org.apache.atisis.Session.sqlsession; impor org.apache.ibatis.Session.sqlSessionfacpory; org.apache.ibatis.Session.SQLSessionFactoryBuilder; impor org.junit.Before; impor org.junit.test; impor com.zf.mybatis.pojo.user; kelas publik testmybatis {private sqlSessionfactoryfactoryfactory; pembaca pembaca pribadi; @Before public void init () {coba {reader = resource.getResourCeArreader ("mybatis-config.xml"); SQLSessionFactory = SQLSessionFactoryBuilder baru (). Build (pembaca); } catch (ioException e) {e.printstacktrace (); }} @Test public void testQueryUser () {sqlSession session = sqlSessionFactory.opensession (); coba {user user = (user) session.selecTone ("com.zf.mybatis.pojo.usermapper.selectById", 1); System.out.println (user.getUserAddress ()); System.out.println (user.getusername ()); } akhirnya {session.close (); }} @Test public void testInserTuser () {SQLSession session = sqlSessionFactory.opensession (); coba {pengguna pengguna = pengguna baru (); user.setusername ("ABCDE"); user.setuserage (15); user.setuseraddress ("Hangzhou/Zhejiang"); user.setPassword ("123456"); // 返回值是记录条数 int resultCount = session.insert ("com.zf.mybatis.pojo.usermapper.add", pengguna); session.commit (); System.out.printf ("userid:%d, 总记录条数:%d", user.getId (), resultCount); // 获取插入对象的 id} akhirnya {session.close (); }} @Test public void testupDateUser () {SQLSession session = sqlSessionFactory.opensession (); coba {pengguna pengguna = pengguna baru (); 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", pengguna); session.commit (); System.out.printf ("修改条数:%d", UpdateCount); } akhirnya {session.close (); }} @Test public void testDelete () {SQLSession session = sqlSessionFactory.opensession (); coba {// 返回值是删除条数 int deletecount = session.update ("com.zf.mybatis.pojo.usermapper.deletebyid", 4); session.commit (); System.out.printf ("删除条数:%d", deletecount); } akhirnya {session.close (); }}}运行 TestQueryUser 结果如下 :
Shanghai, Pudongsummer
到此 , 一个 mybatis 的 helloworld 类型的小程序就出来了。
PS : mybaits 配置文件报错解决
Mybaits 的配置文件校验很诡异 , 节点的位置还有要求如下 , : :
Konten jenis elemen "konfigurasi" harus cocok "(properti ?, pengaturan ?, Typealiases ?, TypeHandlers ?, ObjectFactory ?, ObjectWrapperFactory ?, Plugin ?, Lingkungan ?, Mappers?)". <? 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"> <porporage> <porporage = "Lingkungan =" Lingkungan = "" "" " type = "jdbc"/> <datasource type = "pooled"> <properti name = "driver" value = "oracle.jdbc.driver.oracledRiver"/> <name properti = "url" value = "jdbc: oracle: tipis: @xx: 1521: xx"/<name name = "usern name =" "name =" "name =" "name" "name" "" value = "xxxx"/> </dateSource> </urvepers> </pursments> <yypealiases> <typealias type = "com.ice.stat.online.model.eventflag" alias = "eventflag"/> </yypealiases> <pecher> <mapper sumber daya = "com/ice/ice/ice/ice/typapper/<mapper> <mapperpers> <mapper sumber daya =" com/com/ice/ice/ice/ice/ice/ice/ice/ice/ice/ice/ice/ice/ice/ice/ice/ice/ice/ice/ice/ice/ice/evenper </Mappers> </Configuration>
把 Typealiases : :
<?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> <typeAliases> <typeAlias type = "com.ice.stat.online.model.eventflag" alias = "eventflag"/> </yypealiases> <lingkungan default = "pengembangan"> <lingkungan id = "pengembangan"> <transactionManager type = "jdbc"/> <dataSource type = "pooled"> <properti name = "orver. name = "url" value = "jdbc: oracle: tipis: @xx: 1521: xx"/> <name properti = "nama pengguna" value = "ireport"/> <nama properti = "kata sandi" value = "xxxx"/> </dataSource> </lingkungan> </lingkungan> <Mappers> <mapper resource = "com/ice/stat/online/model/hbm/eventflagmapper.xml"/> </phappers> </configuration>