maven 项目) mybatis-study-01
mybatis与mysql-connector
<Project XMLNS = "http://maven.apache.org/pom/4.0.0" xmlns:xsi = "http://www.w3.org/2001/xmlschema-instance" xsi:schemalocation = "http://maven.apach/4.0. http://maven.apache.org/xsd/maven-4.0.0.0.xsd "> <modelversion> 4.0.0 </modelversion> <groupid> mybatis> mybatis> mybatis> mybatis-study-01 </artifactid> <バージョン<name> mybatis-01 </name> <url> http://maven.apache.org </url> <properties> <project.build.sourceencoding> utf-8 </project.build.sourceencoding> </properties> <deprencid> <segracid> <バージョン> 4.10 </version> <scope> test </scope> </dependency> <dependency> <shipid> org.mybatis </groupid> <artifactid> mybatis </artifactid> <バージョン> 3.2.3 </version <バージョン> 5.1.27 </version> </dependency> </dependencies> </project>
mybatisテスト
新建一张ユーザーsql如下:
テーブル「user」( `id` int(11)not null auto_increment、` password` varchar(255)デフォルトnull、 `user_name` varchar(50)デフォルトnull、` user_age` int(11)default null、 `user_address` varchar(200)default null、primaryキー
插入一条数据
`user`値( '1'、 '123131'、 'summer'、 '100'、 'shanghai、pudong')に挿入;
三、在项目中编写 pojo对象。
パッケージcom.zf.mybatis.pojo; public class user {private int id;プライベート文字列パスワード。プライベート文字列ユーザー名;プライベート文字列ユーザー。 Private String usersddress; public int getid(){return id; } public void setid(int id){this.id = id; } public string getUsername(){return username; } public void setUsername(string username){this.username = username; } public string getUserage(){return userage; } public void setUserage(string userage){this.userage = userage; } public String getUserAddress(){return userAddress; } public void setUserAddress(String useraddress){this.userAddress = userAddress; } public string getPassWord(){パスワードを返します。 } public void setPassword(string password){this.password = password; }}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.dtd namespace = "com.zf.mybatis.pojo.usermapper"> <! - 使用sql resultType = "user"> select <inclid = "queryfields"/> from `user` from` user`ここで、id =#{id} </select> <insert "add" parametertype = "user" usegeneratedkeys = "true" keyproperty = "id"> `user`(ユーザー、ユーザー、ユーザー、ユーザー、ユーザー、ユーザー)、# #{username}、#{userage}、#{useraddress})</insert> <update id = "uppartertype =" user ">更新` users `set password =#{password}、user_name}、user_age}、user_age =#{userage}、user_address = {useraddressressress = {useradress> <delete id = "deleteByid" parametertype = "int"> delete `user` where id =#{id} </delete> </mapper>注意:上面的ネームスペース的值为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構成public " - // mybatis.org//dtd config 3.0 // en" "http://mybatis.org/dtd/mybatis-3-config.dtd" type = "com.zf.mybatis.pojo.user"/> </typealiase> <! - 数据库配置信息 - > <環境デフォルト= "development"> <環境id = "development"> <transactionmanager type = "jdbc"/> <datasource type = "pooled"> <propertial name " value = "jdbc:mysql://127.0.0.1:3306/mybatis-test"/> <property name = "username" value = "root"/> <property name = "property name" value = "root"/> </datasource> </環境> </環境> <! </mappers> </configuration>
在该配置文件中配置了数据库的链接方式、以及注册所有的映射文件、还可以设置mybatis的一些参数。
现在就可以编写测试类了。来测试一下。
パッケージcom.zf.mybatis; import java.io.ioexception; import java.io.io.reader; Import org.apache.ibatis.io.io.resources; Import org.apache.ibatis.session.squlsessess; Import org.apache.ibatis.session.ssession.ssessionfactory; import apach.ibery.ibery.ibortis. org.junit.before; 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 = new SQLSessionFactoryBuilder()。build(reader); } catch(ioexception e){e.printstacktrace(); }} @test public void testqueryuser(){sqlsession session = sqlsessionfactory.opensession(); try {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(); try {user user = new user(); user.setUsername( "abcde"); user.setUserage(15); user.setuserAddress( "hangzhou/zhijiang"); 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(); try {user user = new user(); user.setId(5); user.setUsername( "updatename"); user.setUserage(101); user.setUserAddress( "Shenzhen/Guangdong"); user.setPassWord( "000000"); // session.commit(); System.out.printf( "修改条数:%d"、updatecount); }最後に{session.close(); }} @test public void testdelete(){sqlsession session = sqlsessionfactory.opensession(); try {// session.commit(); System.out.printf( "删除条数:%d"、deletecount); }最後に{session.close(); }}}运行TESTQUERYUSER结果如下:
上海、pudongsummer
到此、一个mybatis的helloworld
PS:MyBaits配置文件报错解决
mybaits的配置文件校验很诡异、节点的位置还有要求如下、会报错:
要素タイプの「構成」の内容は、(プロパティ?、設定?、TypeAliase?、TypeHandlers?、ObjectFactory?、ObjectWrapperFactory?、プラグイン?、環境?、マッパー?) "を一致させる必要があります。 <?xml version = "1.0" encoding = "utf-8"?> <!doctype構成public " - // mybatis.org//dtd config 3.0 // en" "http://mybatis.org/dtd/mybatis-3-clufig.dtd" type = "jdbc"/> <dataSource type = "プール"> <プロパティ名= "ドライバー" value = "oracle.jdbc.driver.oracledriver"/> <プロパティ名= "url" value = "jdbc:oracle:thin:@xx:1521:xx" "/> <property =" username "/<property"/<property name " value = "xxxx"/> </dataSource> </environment> </environments> <typealiass> <typealias type = "com.ice.stat.online.eventflag" alias = "eventflag"/> </typealiase> <mappers> <mappers> <com/stat/stat/stat/stat/hbm/hbm/> hbm/> hbm/> hbm/> hbm </mappers> </configuration>
typealiases:
<?xml version = "1.0" encoding = "utf-8"?> <!doctype構成public " - // 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> <環境defuliect = "development"> <環境id = "TransactionManager"> <transactionmanager type = "JDBC"/> <dataSource type = "" pooled "> <property name" "oracle.jdbc.driver"/didriver name = "url" value = "jdbc:oracle:thin:@xx:1521:xx"/> <プロパティ名= "username" value = "ireport"/> <プロパティ名= "パスワード" value = "xxxx"/> </datasource> </環境> </環境> <マッパー<マッパーresource = "com/ice/stat/online/model/hbm/eventflagmapper.xml"/> </mappers> </configuration>