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" > 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