MyBatis interface Programming method to implement additions and deletions

Source: Internet
Author: User
Tags commit config map class

Lin Bingwen Evankaka Original works. Reprint please specify the source Http://blog.csdn.net/evankaka

The previous chapter "Mybatis" Mybatis Introductory Overview and the first Mybatis instances to implement additions and deletions, has set up the ECLIPSE,MYBATIS,MYSQL environment, and implemented a simple query. Note that this is done using the sqlsession instance to directly execute the mapped SQL statement:

Session.selectone ("Com.mucfc.model.EmployeerMapper.findEmployeerByID", 1);

In fact, there are simpler ways, and it's a better way. Using an interface that reasonably describes the parameters and the return value of the SQL statement (for example, Employeermapper.java), it is now possible to get to that simpler, more secure code, without the error of string literals and conversions that are prone to occur. The following is a detailed procedure:

This article should be changed to the interface class to achieve additions and deletions to change the search

Entire Project catalog:


This sample project free download

1, first or mybatis configuration file 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" > <!--This is the root tag--<configuration> <!--element allows a file of the properties format to be provided outside the main profile, making the master configuration file more generic. This is useful for deployments--<properties resource= "mysql.properties"/> <!--setting aliases, be sure to place them under properties--<typeali ases> <typealias alias= "Employeer" type= "Com.mucfc.model.Employeer"/> </typeAliases> <!--configuration data source related Info-<environments default= "Development" > <environment id= "Development" > <transactionmanager ty Pe= "JDBC"/> <datasource type= "Pooled" > <!--<property name= "Driver" value= "Com.mysql.jdbc.Driver"/&G
			 T <property name= "url" value= "Jdbc:mysql://localhost:3306/test?characterencoding=utf-8"/> <property name= " Username "value=" root "/> <property name=" password "value=" christmas258@ "/>---<property name=" driVer "value=" ${driver} "/> <property name=" url "value=" ${url} "/> <property name=" username "value=" ${us
	Ername} "/> <property name=" password "value=" ${password} "/> </dataSource> </environment> 
	</environments> <!--list mapping files--<mappers> <mapper resource= "Com/mucfc/model/employeer.xml"/> </mappers> </configuration>

Where configuration file mysql.properties

Driver=com.mysql.jdbc.driver
Url=jdbc:mysql://localhost:3306/test?charset=utf8
username=root
password=christmas258@


2, the data table corresponds to the class Employeer.java

Package Com.mucfc.model;

Import java.io.Serializable;
	/** * Employee Information class * @author Linbingwen * @time 2015.5.11 * * * public class Employeer {private Integer employeer_id;
	Private String Employeer_name;
	Private Integer employeer_age;
	Private String employeer_department;
	
	Private String Employeer_worktype;
	Public Employeer () {super ();
	} public Integer getemployeer_id () {return employeer_id;
	} public void setemployeer_id (Integer employeer_id) {this.employeer_id = employeer_id;
	} public String Getemployeer_name () {return employeer_name;
	} public void Setemployeer_name (String employeer_name) {this.employeer_name = Employeer_name;
	} public Integer Getemployeer_age () {return employeer_age;
	} public void Setemployeer_age (Integer employeer_age) {this.employeer_age = Employeer_age;
	} public String Getemployeer_department () {return employeer_department; } public void Setemployeer_department (String employeer_department) {this.employeer_department = emPloyeer_department;
	} public String Getemployeer_worktype () {return employeer_worktype;
	} public void Setemployeer_worktype (String employeer_worktype) {this.employeer_worktype = Employeer_worktype; } @Override Public String toString () {return "Employeer [employeer_id=" + employeer_id + ", employeer_name=" + Em Ployeer_name + ", employeer_age=" + Employeer_age + ", employeer_department=" + employeer_department + ", employee
	R_worktype= "+ Employeer_worktype +"] ";
 }
	


}
The SQL statement is then configured employeer.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" > < Mapper namespace= "Com.mucfc.mapper.EmployeerMapper" > <!--Find-<select id= "Findemployeerbyid" pa rametertype= "int" resulttype= "Employeer" > select* from ' t_employeer ' where employeer_id =#{employeer_id} < /select> <!--plug-in <!--Usegeneratedkeys set to "True" indicates that you want to mybatis the primary key that is automatically generated by the database; keyproperty= "id "Specifies the id attribute to inject the acquired primary key value into the Employeer-<insert id=" Addemployeer "parametertype=" Employeer "usegeneratedkeys=" true "keyproperty=" employeer_id "> insert INTO ' t_employeer ' (employeer_name,employeer_age,employeer_department,emp Loyeer_worktype) VALUES (#{employeer_name},#{employeer_age},#{employeer_department},#{employeer_worktype}) & lt;/insert> <!--Remove--<delete id= "Deleteemployeer" parametertype= "int" &GT Delete from ' T_employeer ' where employeer_id = #{employeer_id} </delete> <!--modified--&L T;update id= "Updateemployeer" parametertype= "Employeer" > Update t_employeer Set employeer_name = #{employeer_ name},employeer_age= #{employeer_age},employeer_department = #{employeer_department}, Employeer_worktype=#{employe
 Er_worktype} where employeer_id = #{employeer_id} </update> </mapper>

Note that the Com.mucfc.mapper.EmployeerMapper class is present, it is an interface class, and the previous one says that we are using com.mucfc.model.EmployeerMapper, and that this class does not exist.

4. SQL statement Mapping class Employeermapper.java

Package com.mucfc.mapper;

Import Com.mucfc.model.Employeer;

/**
 * SQL statement Map class
 * @author linbingwen
 * @time 2015.5.11 */public
interface Employeermapper {
	/* *
	 * Note the method name corresponding to the employeer.xml */public
	employeer findemployeerbyid (int id);

	/**
	 * Note the method name corresponding to the employeer.xml */public
	void Addemployeer (Employeer employeer);

	/**
	 * Note the method name corresponding to the employeer.xml */public
	void deleteemployeer (int id);

	/**
	 * Note to correspond to the Employeer.xml method name */public
	void Updateemployeer (Employeer employeer);

}
5. Test:


(1) Add command

Previous "Mybatis" Mybatis Introduction Overview and the first Mybatis instances to implement additions and deletions in the way:

	/**
	 * Add
	 *
	/public static void Addemployeer (Employeer employeer) {
		sqlsession session = NULL;
		try {
			session = Sqlsessionfactory.opensession ();
			 The return value is the number of record bars  
            int resultcount = Session.insert ("Com.mucfc.model.EmployeerMapper.addEmployeer", employeer);  
            System.out.printf ("Currently inserted employeer_id:%d    currently inserted in database:%d", employeer.getemployeer_id (), resultcount);  Gets the ID of the inserted object  
            System.out.println ("");
            Session.commit ();  		
		} finally {
			session.close ();
		}
		
	}


To the interface programming method:

	/**
	 * Add
	 *
	/public static void Addemployeer (Employeer employeer) {
		sqlsession session = NULL;
		try {
			session = Sqlsessionfactory.opensession ();
			Employeermapper Employeermapper=session.getmapper (employeermapper.class);
			Employeermapper.addemployeer (employeer);
            Session.commit ();  		
		} finally {
			session.close ();
		}
		
	}

(2) Delete command

Previous "Mybatis" Mybatis Introduction Overview and the first Mybatis instances to implement additions and deletions in the way:

	/** * * * *
	 /public
	static void deleteemployeer (int id) {
		sqlsession session = NULL;
		try {
			session = Sqlsessionfactory.opensession ();
			 The return value is the number of record bars  
			 int resultcount=session.delete ("Com.mucfc.model.EmployeerMapper.deleteEmployeer", id); 
			  System.out.println ("The number of bars currently in the database deleted:" +resultcount);  Gets the ID of the inserted object  
            session.commit ();  		
		} finally {
			session.close ();}
	}


To the interface programming method:

	/** * * * *
	 /public
	static void deleteemployeer (int id) {
		sqlsession session = NULL;
		try {
			session = Sqlsessionfactory.opensession ();
			Employeermapper Employeermapper=session.getmapper (employeermapper.class);
			Employeermapper.deleteemployeer (ID);
            Session.commit ();  		
		} finally {
			session.close ();
		}
	}


(3) Find command

Previous "Mybatis" Mybatis Introduction Overview and the first Mybatis instances to implement additions and deletions in the way:

	/**
	 * * Find *
	/public static void Findemployeerbyid (int id) {
		sqlsession session = NULL;
		try {
			session = Sqlsessionfactory.opensession ();
			Employeer employeer = (employeer) session.selectone (
					"Com.mucfc.model.EmployeerMapper.findEmployeerByID", 1);
			if (Employeer = = null)
				System.out.println ("null");
			else
				System.out.println (employeer);
		} finally {
			session.close ();
		}
	}


To the interface programming method:

/**
	 * * Find *
	/public static void Findemployeerbyid (int id) {
		sqlsession session = NULL;
		try {
			session = Sqlsessionfactory.opensession ();
			Employeermapper Employeermapper=session.getmapper (employeermapper.class);
			Employeer Employeer=employeermapper.findemployeerbyid (ID);
			if (Employeer = = null)
				System.out.println ("null");
			else
				System.out.println (employeer);
		} finally {
			session.close ();
		}
	}

(4) Modify the command

Previous "Mybatis" Mybatis Introduction Overview and the first Mybatis instances to implement additions and deletions in the way:

	/**
	 * Change
	 *
	/public static void Updateemployeer (Employeer employeer) {
		sqlsession session = NULL;
		try {
			session = Sqlsessionfactory.opensession (); 
            Session.update ("Com.mucfc.model.EmployeerMapper.updateEmployeer", employeer);    
            Session.commit ();  		
		} finally {
			session.close ();
		}
		
	}


To the interface programming method:

	/**
	 * Change
	 *
	/public static void Updateemployeer (Employeer employeer) {
		sqlsession session = NULL;
		try {
			session = Sqlsessionfactory.opensession (); 
			Employeermapper Employeermapper=session.getmapper (employeermapper.class);
			Employeermapper.updateemployeer (employeer);
            Session.commit ();  		
		} finally {
			session.close ();
		}
		
	}

This is a complete test:

Package com.mucfc.test;
Import java.io.IOException;

Import Java.io.Reader;
Import org.apache.ibatis.io.Resources;
Import org.apache.ibatis.session.SqlSession;
Import Org.apache.ibatis.session.SqlSessionFactory;

Import Org.apache.ibatis.session.SqlSessionFactoryBuilder;
Import Com.mucfc.mapper.EmployeerMapper;

Import Com.mucfc.model.Employeer;
	public class Mybatistest {private static sqlsessionfactory sqlsessionfactory;
	private static reader reader;
			Static {try {reader = Resources.getresourceasreader ("Mybatis-config.xml");
		Sqlsessionfactory = new Sqlsessionfactorybuilder (). build (reader);
		} catch (Exception e) {e.printstacktrace ();
		}}/** * Lookup * * public static void Findemployeerbyid (int id) {sqlsession session = NULL;
			try {session = Sqlsessionfactory.opensession ();
			Employeermapper Employeermapper=session.getmapper (Employeermapper.class);
			Employeer Employeer=employeermapper.findemployeerbyid (ID); if (Employeer = = null) SYSTEM.OUT.PRINTLN ("null");
		else System.out.println (employeer);
		} finally {session.close ();
		}}/** * increased */public static void Addemployeer (Employeer employeer) {sqlsession session = NULL;
			try {session = Sqlsessionfactory.opensession ();
			Employeermapper Employeermapper=session.getmapper (Employeermapper.class);
            Employeermapper.addemployeer (Employeer);  		
		Session.commit ();
		} finally {session.close ();
		}}/** * Delete * */public static void Deleteemployeer (int id) {sqlsession session = NULL;
			try {session = Sqlsessionfactory.opensession ();
			Employeermapper Employeermapper=session.getmapper (Employeermapper.class);
            Employeermapper.deleteemployeer (ID);  		
		Session.commit ();
		} finally {session.close ();
		}}/** * change */public static void Updateemployeer (Employeer employeer) {sqlsession session = NULL; 
			try {session = Sqlsessionfactory.opensession (); Employeermapper EMPLOYEERMAPPER=SESSION.GEtmapper (Employeermapper.class);
            Employeermapper.updateemployeer (Employeer);  		
		Session.commit ();
		} finally {session.close ();
		}} public static void Main (string[] args) {employeer employeer1=new employeer ();
		Employeer1.setemployeer_name ("John Doe");
		Employeer1.setemployeer_age (23);
		Employeer1.setemployeer_department ("Product part");
		
		Employeer1.setemployeer_worktype ("Development Engineer");
		Employeer employeer2=new employeer ();
		Employeer2.setemployeer_name ("Zhang San");
		Employeer2.setemployeer_age (30);
		Employeer2.setemployeer_department ("two parts");
		
		Employeer2.setemployeer_worktype ("test Engineer");
		Employeer employeer3=new employeer ();
		Employeer3.setemployeer_name ("Xiao Wang");
		Employeer3.setemployeer_age (22);
		Employeer3.setemployeer_department ("three parts");
		
		
		Employeer3.setemployeer_worktype ("data Analyst");
		Employeer employeer4=new employeer ();
		Employeer4.setemployeer_name ("Ming");
		Employeer4.setemployeer_age (22);
		Employeer4.setemployeer_department ("accounting department"); EmployeEr4.setemployeer_worktype ("financial officer");
     	Insert Addemployeer (employeer1);
     	Addemployeer (EMPLOYEER2);
     	Addemployeer (EMPLOYEER3);
     	Addemployeer (EMPLOYEER4);
     	Findemployeerbyid (26);
		
		Deleteemployeer (27);
		Change employeer2.setemployeer_id (28);
		Employeer2.setemployeer_age (21);
		Employeer2.setemployeer_department ("Four Parts");

	Updateemployeer (EMPLOYEER2);
 }

}

Test results:

4 data is inserted with ID 25~28

Then number 27th is removed.

Number 29th has been modified.


This sample project free download

Lin Bingwen Evankaka Original works. Reprint please specify the source Http://blog.csdn.net/evankaka

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.