O que é Mybatis?
Mybatis é uma excelente estrutura de camada de persistência que suporta consultas SQL simples, procedimentos armazenados e mapeamento avançado. Mybatis elimina as configurações manuais de quase todo o código e parâmetros JDBC e pesquisam conjuntos de resultados. Mybatis pode usar XML simples ou anotações para configuração e mapeamento original para mapear interfaces e Pojos de Java (objetos Java antigos simples) em registros no banco de dados.
Mybatis Download: https://github.com/mybatis/mybatis-3/releases
Instância mybatis
Operação CRUD em uma tabela de usuários:
Tabela de usuários:
- --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Mecanismo = innodb auto_increment = 6 charset padrão = utf8;-- ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- coloque '); insira em' user 'valores (' 4 ',' lu ',' 28 ',' algum lugar '); insira em `user` valores (' 5 ',' xiaoxun ',' 27 ',' nanjing ');Crie uma configuração do arquivo de configuração do Mybatis XML no diretório SRC
<? xml versão = "1.0" coding = "utf-8"?> <! Doctype Configuration public "-// mybatis.org//dtd config 3.0 //" "http://mybatis.org/dtd/mybatis-3-config.dtddia"> <typeAlias alias = "user" type = "com.mybatis.test.user"/> </typeAliases> <ambientes default = "desenvolvimento"> <ambiente id = "desenvolvimento"> <transação value = "jdbc: mysql: //127.0.0.1: 3306/mybatis"/> <propriedade name = "nome de usuário" value = "root"/> <names name = "senha" value = "admin"/> </datasource> </ambiente> </ambientes> <!-mybatis "> </dataSource> Resource = "com/mybatis/test/user.xml"/> </mappers> </figuration>
Definir arquivo de configuração do usuário do User.xml
<? xml versão = "1.0" Encoding = "utf-8"?> <! <!-selecione Declaração-> <select id = "selectUserById" ParameterType = "int" resultType = "User"> Selecione * de `user` Where user.id = #{id} </select> <!-O resultado definido pode resolver o problema dos nomes de propriedades inconsistentes e da coluna" da classe "<!-<!-<!-<! propriedades = "id" column = "user_id" /> <result Property = "UserName" column = "user_username" /> <Result Property = "Userage" column = "user_userrage" /> <Result Property = "UserAddress" column = "user_useraddress" /thoul < /Result de "-<!-Return" the Select the Select the Select the Select the Listress " /THE ASSILTMAP>->- <select id = "selectUsersByName" ParameterType = "String" resultMap = "UserResultMap"> Selecione * do usuário em que user.username = #{userName} </select>-> <select id = "selectUsersByName" ParameterType = "String" ResultType = "User"> * * * executa uma operação de aumento. O ID e o ParameterType são os mesmos que o nome e o tipo de parâmetro do método Adduser na interface IUSEREROPERAÇÃO. O UseGeneratedKeys definido como "true" indica que o Mybatis deseja obter a chave primária gerada automaticamente pelo banco de dados; keyProperty = "ID" especifica a injeção do valor da chave primária obtida na propriedade ID do usuário -> <insert id = "adduser" parametertype = "user" usegeneratedkeys = "true" keyproperty = "id"> insert no usuário (nome do usuário, usuário, usuário, useddress) ({{USERNAME},,#, {userage, userAgdress) ({{USERNAME},, {userAddress) (userAddress) ({{USERNAME ">,####{userRAddress) (USERT {USERTREND {USERTRAIRT) <update id = "updateUser" parametertype = "user"> atualizar usuário definir nome de usuário =#{nome de usuário}, userage =#{userAge}, userAddress =#{userAddress} where id =#{id} </atualize> <DeLete Id = "DeLeteUser" paramettype = "int relemboly </update> <Delete Id =" DeLeteUser "ParametType ="O arquivo de configuração implementa a relação de mapeamento entre interfaces e instruções SQL. O SelectUsersByName usa dois métodos para implementá -lo. Comentado também é uma implementação. O uso do ResultMap pode definir o relacionamento de mapeamento entre o atributo e o nome da coluna do banco de dados. A propriedade é de propriedade da classe, a coluna é o nome da coluna da tabela, ou pode ser um alias para o nome da coluna da tabela!
Definição da classe do usuário:
pacote com.mybatis.test; public class Usuário {private int id; Nome de usuário privado de string; Usuário privado INT; String privada UserAddress; 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 = nome de usuário; } public int getUserAge () {return userage; } public void setUserAge (Int UserAge) {this.UserAge = Useragem; } public string getUserAddress () {return userAddress; } public void setUserAddress (string userAddress) {this.UserAddress = userAddress; } @Override public string tostring () {return this.UserName+""+this.UserAge+""+this.UserAddress; }}Definição de IuserOperaton:
pacote com.mybatis.test; importar java.util.list; interface pública IUSEREROPERAÇÃO {public user SelectUserById (int id); Lista pública <suser> selectUsersByName (String UserName); public void adduser (usuário do usuário); public void updateUser (usuário do usuário); public void DeleteUser (int id); }A IUSEREROPERAÇÃO corresponde à interface de operação, nome da função e nome do ID da operação no arquivo de configuração XML do Mybatis.
Teste da aula de teste:
pacote com.mybatis.test; importar java.io.Reader; importar java.util.list; importar org.apache.ibatis.io.resources; importar org.apache.ibatis.session.sqlSession; import org.apache.ibatis.sessisislatAporn; importação; importação; importação; org.apache.ibatis.session.sqlSessionFactoryBuilder; Public Class Test {private static sqlSessionFactory SQLSessionFactory; Leitor de leitor estático privado; static {try {reader = Resources.getResourCeasReader ("Configuration.xml"); sqlSessionFactory = new SQLSessionFactoryBuilder (). Build (leitor); } catch (Exceção e) {e.printStackTrace (); }} public static sqlSessionFactory getSession () {return sqlSessionFactory; } public void getUserById (int userID) {SQLSession Session = sqlSessionFactory.opensssion (); tente {iuserRoperation userOperation = session .getMapper (iuserRoperation.class); Usuário do usuário = userOperation.SelectUserById (UserID); if (user! = null) {System.out.println (user.getId () + ":" + user.getUserName () + ":" + user.getUserAddress ()); }} finalmente {session.close (); }} public void getUserList (String userName) {SqlSession Session = sqlSessionFactory.opensssion (); tente {iuserRoperation userOperation = session .getMapper (iuserRoperation.class); List <suser> usuários = userOperation.SelectUsersByName (nome de usuário); para (usuário do usuário: usuários) {System.out.println (user.getId () + ":" + user.getUserName () + ":" + user.getUserAddress ()); }} finalmente {session.close (); }} / ** * Comprometa após adição * / public void addUser () {user user = new User (); user.setUserAddress ("Place"); user.setUserName ("test_add"); user.setUserAge (30); SQLSession Session = sqlSessionFactory.opensssion (); tente {iuserRoperation userOperation = session .getMapper (iuserRoperation.class); userOperation.adduser (usuário); session.Commit (); System.out.println ("Adicione ID do usuário:" + user.getId ()); } finalmente {session.close (); }} / ** * commit * / public void updateUser () {SqlSession Session = sqlSessionFactory.opensssion (); tente {iuserRoperation userOperation = session .getMapper (iuserRoperation.class); Usuário do usuário = userOperation.SelectUserById (1); if (usuário! = null) {user.setUseraddress ("um novo local"); userOperation.UpDateUser (Usuário); session.Commit (); }} finalmente {session.close (); }} /*** Comprometa após a exclusão. * * @param id */ public void DeleteUser (int id) {SqlSession Session = sqlSessionFactory.opensssion (); tente {iuserRoperation userOperation = session .getMapper (iuserRoperation.class); userOperation.DeleteUser (ID); session.Commit (); } finalmente {session.close (); }} public static void main (string [] args) {try {test test = new test (); // test.getUserById (1); // test.getUserlist ("test1"); // test.adduser (); // test.updateUser (); // test.deleteuser (6); } catch (Exceção e) {System.out.println (e.getMessage ()); }}} Download de código: myBaitssimpledemo_jb51.rar
O exposto acima é todo o conteúdo deste artigo. Espero que seja útil para o aprendizado de todos e espero que todos apoiem mais o wulin.com.