I. Introduction:
Mybatis is an open-source Apache project ibatis. In 2010, this project was migrated from Apache Software Foundation to Google Code and renamed mybatis.
Mybatis is a Java-based persistent layer framework.
2. add, delete, modify, and query:
1. code structure:
2. user entity class:
/*** User entity class */public class user {private string ID; private string uname; // Note: The field name is inconsistent with the database field private string address; public String GETID () {return ID;} public void setid (string ID) {This. id = ID;} Public String getuname () {return uname;} public void setuname (string uname) {This. uname = uname;} Public String getaddress () {return address;} public void setaddress (string address) {This. address = address ;}@ overridepublic string tostring () {return "{ID:" + ID + ", uname:" + uname + ", address: "+ address + "}";}}
3. Object ing file: User. xml
<? XML version = "1.0" encoding = "UTF-8"?> <! Doctype mapperpublic "-// mybatis.org//dtd mapper 3.0 //" http://mybatis.org/dtd/mybatis-3-mapper.dtd "> <mapper namespace =" com. zdp. domain. User "> <! -- Database Field corresponds to object field --> <resultmap type = "user" id = "userbean"> <ID column = "ID" property = "ID"/> <result column = "username" property = "uname"/> <result column = "Address" property = "Address"/> </resultmap> <! -- Query: Query all users --> <select id = "selectallusers" resultmap = "userbean"> select ID, username, address from user </SELECT> <! -- Query: query the user by ID. The returned value is userbean --> <! -- ID: Unique Identifier of the current SQL statement. parametertype: parameter type, resulttype: return Value Type --> <select id = "selectuserbyid" parametertype = "string" resultmap = "userbean"> select * from user where ID =#{ userid} </SELECT> <! -- Query: query the user by ID. The returned value is hashmap --> <select id = "selectuserbyidformap" parametertype = "string" resulttype = "hashmap"> select ID, username, address from user where ID =#{ userid} </SELECT> <! -- Add: insert user. The parameter is userbean (call the getter method to obtain the parameter value) --> <insert id = "insertuser" parametertype = "user"> insert into user (ID, username, address) values (# {ID}, # {uname}, # {address}); </Insert> <! -- Add: insert user. The parameter is hashmap (usermap is called. get (key) GET parameters --> <insert id = "insertuserformap" parametertype = "hashmap"> insert into user (ID, username, address) values (# {ID }, # {uname}, # {address}); </Insert> <! -- Delete: delete a user by ID, the parameter is userid --> <Delete id = "deleteuserbyid" parametertype = "string"> Delete from user where ID =#{ userid} </delete> <! -- Modify: update the user according to the ID. The parameter is userbean (call the getter method to obtain the parameter value) --> <update id = "updateuserbyid" parametertype = "user"> Update user set username =#{ uname }, address = # {address} Where id = # {ID} </update> <! -- Modify: update the user according to the ID. The parameter is map (call usermap. get (key) GET parameters --> <update id = "updateuserbyidformap" parametertype = "hashmap"> Update user set username =#{ uname }, address = # {address} Where id = # {ID} </update> <! -- Query: dynamic SQL: Use "where 1 = 1" --> <select id = "selectuserbycondition1" parametertype = "user" resultmap = "userbean"> select ID, username, address from user where 1 = 1 <if test = "ID! = NULL "> and ID =#{ ID} </If> <! -- Uname indicates the Object Property --> <if test = "uname! = NULL "> and username =#{ uname} </If> <if test =" address! = NULL "> and address =#{ address} </If> </SELECT> <! -- Query: dynamic SQL: Use the where tag --> <select id = "selectuserbycondition2" parametertype = "user" resultmap = "userbean"> select ID, username, address from user <where> <if test = "ID! = NULL "> ID =#{ ID} </If> <! -- Uname indicates the Object Property --> <if test = "uname! = NULL "> and username =#{ uname} </If> <if test =" address! = NULL "> and address =#{ address} </If> </where> </SELECT> </mapper>
4. Database Configuration: sqlmapconfig. xml
<? XML version = "1.0" encoding = "UTF-8"?> <! Doctype configurationpublic "-// mybatis.org//dtd config 3.0 //" http://mybatis.org/dtd/mybatis-3-config.dtd "> <configuration> <typealiases> <typealias type =" com. zdp. domain. user "alias =" 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: // localhost/test "/> <property name =" username "value =" root "/> <property name =" password "value =" root "/> </datasource> </environment> </environments> <mappers> <! -- Ing file location --> <mapper resource = "com/zdp/domain/user. xml"/> </mappers> </configuration>
5. SQL file:
CREATE DATABASE test; USE test; CREATE TABLE USER( id VARCHAR(36) PRIMARY KEY, username VARCHAR(64), address VARCHAR(128) ) INSERT INTO USER (id, username, address) VALUES("001", "zhangsan", "Wuhan"); INSERT INTO USER (id, NAME, address) VALUES("002", "lisi", "Shanghai");
6. log4j
log4j.rootLogger=DEBUG, Consolelog4j.appender.Console=org.apache.log4j.ConsoleAppenderlog4j.appender.Console.layout=org.apache.log4j.PatternLayoutlog4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%nlog4j.logger.java.sql.ResultSet=INFOlog4j.logger.org.apache=INFOlog4j.logger.java.sql.Connection=DEBUGlog4j.logger.java.sql.Statement=DEBUGlog4j.logger.java.sql.PreparedStatement=DEBUG
7. Test file:
/*** Test mybatis-user addition, deletion, modification, and query */public class usertest {private sqlsessionfactory SSF; @ beforepublic void initsf () throws exception {string resource = "sqlmapconfig. XML "; inputstream = resources. getresourceasstream (Resource); SSF = new sqlsessionfactorybuilder (). build (inputstream);} // query all users @ testpublic void testselectallusers () throws exception {sqlsession session = SSF. opensession (); List <user> Users = session. selectlist ("com. zdp. domain. user. selectallusers "); For (User: Users) {system. out. println (User) ;}}// query the user by ID. The returned value is userbean @ testpublic void testselectuserbyid () throws exception {sqlsession session = SSF. opensession (); User user = session. selectone ("com. zdp. domain. user. selectuserbyid "," 001 "); system. out. println (User);} // query the user by ID. The returned value is hashmap @ testpublic void testselectuserbyidformap () throws exception {sqlsession session = SSF. opensession (); Map <string, Object> usermap = session. selectone ("com. zdp. domain. user. selectuserbyidformap "," 001 "); system. out. println (usermap);} // insert user. The parameter is userbean @ testpublic void testinsertuser () throws exception {sqlsession session = SSF. opensession (); // construct Object User user = new user (); User. setid ("003"); User. setuname ("wangwu"); User. setaddress ("Beijing"); int I = session. insert ("com. zdp. domain. user. insertuser ", user); // submit the transaction session. commit ();} // insert user. The parameter is hashmap @ testpublic void testinsertuserformap () throws exception {sqlsession session = SSF. opensession (); Map <string, Object> usermap = new hashmap <string, Object> (); usermap. put ("ID", "004"); usermap. put ("uname", "zhaoliu"); usermap. put ("Address", "Tianjin"); int I = session. insert ("com. zdp. domain. user. insertuserformap ", usermap); Session. commit ();} // delete a user by ID. The parameter is userid @ testpublic void testdeleteuserbyid () throws exception {sqlsession session = SSF. opensession (); int I = session. delete ("com. zdp. domain. user. deleteuserbyid "," 004 "); Session. commit ();} // update the user by ID. The parameter is userbean @ testpublic void testupdateuserbyid () throws exception {sqlsession session = SSF. opensession (); User user = new user (); User. setid ("001"); User. setuname ("zhangsanf"); User. setaddress ("Wuhan"); int I = session. update ("com. zdp. domain. user. updateuserbyid ", user); Session. commit ();} // update the user by ID. The parameter is hashmap @ testpublic void testupdateuserbyidformap () throws exception {sqlsession session = SSF. opensession (); Map <string, Object> usermap = new hashmap <string, Object> (); usermap. put ("ID", "001"); usermap. put ("uname", "zhangsan"); usermap. put ("Address", "Beijing"); int I = session. update ("com. zdp. domain. user. updateuserbyidformap ", usermap); Session. commit ();} // dynamic condition query: @ testpublic void testselectuserbycondition () throws exception {sqlsession session = SSF. opensession (); User user = new user (); User. setuname ("Lisi"); List <user> Users = session. selectlist ("com. zdp. domain. user. selectuserbycondition1 ", user); // list <user> Users = session. selectlist ("com. zdp. domain. user. selectuserbycondition2 ", user); For (User U: Users) {system. out. println (u );}}}
Add, delete, modify, and query of mybatis