新建项目(我使用的是 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 http://maven.apache.org/xsd/maven-4.0.0.xsd "> <modelVersion> 4.0.0 </modelversion> <gruppe> mybatis </GroupId> <artifactId> myBatis-study-01 </artifactid> <Version> 0.0.1-1-Snapshot </fusion> </artifactid> 0.0.1-1-Snapshot </fusion> </artifactid> </0.0.1-Snapshots </susion> </artifactId> <Name> myBatis-01 </name> <URL> http://maven.apache.org </url> <properties> <projekt.build.sourceencoding> utf-8 </project.build.SourceCoding> </properties> <deponcies> </gruppy> </gruppy> </gruppy> <artifactId>junit</artifactId> <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> </abhängig> </abhängig> </project>
二、创建数据库 MyBatis-Test
新建一张 Benutzer 表用于测试。建表 sql 如下 :
Erstellen Sie Tabelle `user`` (` id` int (11) nicht null auto_increment, `password` varchar (255) Standardnull,` user_name` varchar (50) Standardnull, `user_age` int (11) Standard -Null,` user_address` varchar (200) (200).
插入一条数据
In "user" -Werte einfügen ('1', '123131', 'summer', '100', 'Shanghai, Pudong');
三、在项目中编写 Pojo 对象。
Paket com.zf.mybatis.pojo; Public Class User {private int id; privates Zeichenfolgenkennwort; privater String -Benutzername; private String -Benutzerage; private String userAddress; public int getid () {return id; } public void setId (int id) {this.id = id; } public String getUnername () {return userername; } public void setUnername (String -Benutzername) {this.username = userername; } public String getUserage () {userage zurückgeben; } public void setUserage (String userage) {this.userage = userage; } public String getUserAddress () {userAddress; } public void setUserAddress (String userAddress) {this.userAddress = userAddress; } public String getPassword () {Kennwort zurückgeben; } public void setPassword (String -Passwort) {this.password = password; }}四、编写 pojo 对应的映射文件 user.xml
<? 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" resultType = "user"> select <include refid = "queryfields"/> von `user`` wobei id = #{id} </select> <einfügen id =" add "parameterType =" user "useGeneratedKeys =" true "keyproperty =" id "> in` user` (kennwort username, username, username, username, username, username, username, user_name, user_name, user_name, user_name, user_name, user_name, user_name, user_name, user_name, user_name, # # #usname, # # #usname, # #| , #{userage}, #{userAddress}) </einfügen> <Update id = "update" parameterType = "user"> aktualisieren `user` set password = #{passwart}, user_name = #{userername}, user_age = #{userage}, user_address = #{userAd | id = "deleteById" parameterType = "int"> löschen aus `user` wob注意 : : Namespace 的值为 com.zf.mybatis.pojo.usmapper , 可以自定义 usmapper 不是一个类 , 不需要存在的。 不需要存在的。
另外 , mybatis 会将从数据库查询出来的记录根据列名与 pojo 中的字段进行匹配 , 所以上面的 user_name , user_age, user_address 这几个字段都取了别名 , 跟 pojo 中的字段相对应。 如果不起别名 , 查询出来的对象 , 这几个字段是没有值的。
五、编写 mybatis 的配置文件 mybatis-config.xml
<? alias = "user" type = "com.zf.mybatis.pojo.user"/> </typealias> <!-数据库配置信息-> <Environments Default = "Development"> <Environment ID = "Development"> <transactionManager type = "jdbc"/> <dataSource type ". name = "url" value = "jdbc: mysql: //127.0.0.1: 3306/mybatis-test"/> <Eigenschaft name = "userername" value = "root"/> <Eigenschaft name = "password" value = "root"/> </dataSource> </umgebnis> </umgebungen> </</</<! ressourcen = "conf/user.xml"/> </mappers> </configuration>
在该配置文件中配置了数据库的链接方式 , 以及注册所有的映射文件 , 还可以设置 mybatis 的一些参数。
现在就可以编写测试类了。来测试一下。
Paket com.zf.mybatis; import java.io.ioxception; import java.io.reader; import org.apache.ibatis.io.resources; import org.apache.ibatis.session.sqlSession; importieren org. org.apache.ibatis.session.sqlSessionFactoryBuilder; import org.junit.before; import org.junit.test; import com.zf.mybatis.pojo.user; public class testmybatis {private sqlSessionFactory sqlSessionsFactory; privater Leser -Leser; @Before public void init () {try {reader = ressourcen.getResourceAsReader ("mybatis-config.xml"); SQLSessionFactory = new SQLSessionFactoryBuilder (). Build (Reader); } catch (ioException e) {e.printstacktrace (); }} @Test public void testQueryUser () {SQLSession Session = SQLSessionFactory.OpenSession (); try {user user = (user) session System.out.println (user.getUerAddress ()); System.out.println (user.getUnername ()); } endlich {Session.close (); }} @Test public void TestInsertUser () {SQLSession Session = SQLSessionFactory.OpenSession (); try {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", Benutzer); Session.Commit (); System.out.printf ("userId:%d, 总记录条数:%d", user.getId (), resultCount); // 获取插入对象的 id} endlich {session.close (); }} @Test public void testupdateuser () {SQLSession Session = SQLSessionFactory.OpenSession (); try {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", Benutzer); Session.Commit (); System.out.printf ("修改条数:%d", UpdateCount); } endlich {Session.close (); }} @Test public void testDelete () {SQLSession Session = SQLSessionFactory.OpenSession (); try {// 返回值是删除条数 int deleteCount = session.Update ("com.zf.mybatis.pojo.usermapper.deletebyId", 4); Session.Commit (); System.out.printf ("删除条数:%d", DeleteCount); } endlich {Session.close (); }}}运行 TestQueryUser 结果如下 :
Shanghai, Pudongsummer
到此 , 一个 mybatis 的 helloWorld 类型的小程序就出来了。
PS: Mybaits 配置文件报错解决
Mybaits 的配置文件校验很诡异 , 节点的位置还有要求如下 , : :
Der Inhalt des Elementtyps "Konfiguration" muss übereinstimmen "(Eigenschaften?, Einstellungen?, TypeAliase?, Typhandler?, ObjectFactory?, ObjectWrapperFactory?, Plugins?, Umgebungen?, Mapper?)". <? <transactionManager type = "jdbc"/> <dataSource type = "Pooled"> <Eigenschaft name = "treiber" value = "oracle.jdbc.driver 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>
把 Typealiase 放到最上面就好了说 :
<? type="com.ice.stat.online.model.EventFlag" alias="EventFlag"/> </typeAliases> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property name="driver" value="oracle.jdbc.driver.OracleDriver"/> <property name = "url" value = "jdbc: oracle: dünn: @xx: 1521: xx"/> <Eigenschaft name = "userername" value = "ireport"/> <Eigenschaft name = "password" value = "xxxx"/> </dataSource> </</umgebildet> </umgebungen> <mappers> <mappers> <mapper ressourcen = "com/ice/stat/online/model/hbm/eventFlagmapper.xml"/> </mappers> </configuration>