20、SSM框架-Mybatis接口编程方式实现增删改查 (2)
2016-11-03 16:03
633 查看
前面一章已经搭建好了eclipse,mybatis,mysql的环境,并且实现了一个简单的查询。请注意,这种方式是用SqlSession实例来直接执行已映射的SQL语句:
[java]
view plain
copy
print?
session.selectOne("com.mucfc.model.EmployeerMapper.findEmployeerByID", 1);
其实还有更简单的方法,而且是更好的方法,使用合理描述参数和SQL语句返回值的接口(比如EmployeerMapper.java),这样现在就可以至此那个更简单,更安全的代码,没有容易发生的字符串文字和转换的错误.下面是详细过程:
本文要改成以接口类来实现增删改查
整个工程目录 :
本文示例工程免费下载
1、首先还是mybatis的配置文件mybatis-config.xml
[html]
view plain
copy
print?
<?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">
<!-- 这是根标签 -->
<configuration>
<!-- 元素允许在主配置文件之外提供一个properties格式对应文件,从而使得主配置文件更加通用。这样对部署非常有用 -->
<properties resource="mysql.properties" />
<!-- 设置别名,一定要放在properties下面 -->
<typeAliases>
<typeAlias alias="Employeer" type="com.mucfc.model.Employeer" />
</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: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="${username}" />
<property name="password" value="${password}" />
</dataSource>
</environment>
</environments>
<!-- 列出映射文件 -->
<mappers>
<mapper resource="com/mucfc/model/Employeer.xml" />
</mappers>
</configuration>
其中配置文件mysql.properties
[html]
view plain
copy
print?
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/test?charset=utf8
username=root
password=christmas258@
2、数据表对应的类Employeer.JAVA
[java]
view plain
copy
print?
package com.mucfc.model;
import java.io.Serializable;
/**
* 雇员信息类
*@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="
+ employeer_name + ", employeer_age=" + employeer_age
+ ", employeer_department=" + employeer_department
+ ", employeer_worktype=" + employeer_worktype + "]";
}
}
[html]
view plain
copy
print?
<?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">
<!-- 查找 -->
<select id="findEmployeerByID" parameterType="int" resultType="Employeer">
select* from `t_employeer` where employeer_id =#{employeer_id}
</select>
<!-- 插入 -->
<!-- useGeneratedKeys设置为"true"表明要MyBatis获取由数据库自动生成的主键;keyProperty="id"指定把获取到的主键值注入到Employeer的id属性 -->
<insert id="addEmployeer" parameterType="Employeer"
useGeneratedKeys="true" keyProperty="employeer_id">
insert into `t_employeer`(employeer_name,employeer_age,employeer_department,employeer_worktype)
values(#{employeer_name},#{employeer_age},#{employeer_department},#{employeer_worktype})
</insert>
<!-- 删除 -->
<delete id="deleteEmployeer" parameterType="int">
delete from `t_employeer` where employeer_id = #{employeer_id}
</delete>
<!-- 修改 -->
<update id="updateEmployeer" parameterType="Employeer">
update t_employeer set employeer_name = #{employeer_name},employeer_age= #{employeer_age},employeer_department = #{employeer_department}
,employeer_worktype=#{employeer_worktype} where employeer_id = #{employeer_id}
</update>
</mapper>
注意com.mucfc.mapper.EmployeerMapper这个类是存在的,它是一个接口类,上一讲我们是使用com.mucfc.model.EmployeerMapper,而上一讲的这个类是不存在的
4、SQL语句映射类EmployeerMapper.java
[java]
view plain
copy
print?
package com.mucfc.mapper;
import com.mucfc.model.Employeer;
/**
* SQL语句映射类
* @author linbingwen
* @time 2015.5.11
*/
public interface EmployeerMapper {
/**
* 注意要和Employeer.xml的方法名对应
*/
public Employeer findEmployeerByID(int id);
/**
* 注意要和Employeer.xml的方法名对应
*/
public void addEmployeer(Employeer employeer);
/**
* 注意要和Employeer.xml的方法名对应
*/
public void deleteEmployeer(int id);
/**
* 注意要和Employeer.xml的方法名对应
*/
public void updateEmployeer(Employeer employeer);
}
(1)增加命令
上一讲中的方式:
[java]
view plain
copy
print?
/**
* 增加
*/
public static void addEmployeer(Employeer employeer){
SqlSession session = null;
try {
session = sqlSessionFactory.openSession();
//返回值是记录条数
int resultCount = session.insert("com.mucfc.model.EmployeerMapper.addEmployeer", employeer );
System.out.printf("当前插入的employeer_id :%d 当前插入数据库中条数:%d " , employeer.getEmployeer_id() ,resultCount); //获取插入对象的id
System.out.println("");
session.commit() ;
} finally {
session.close();
}
}
改成以接口编程的方式:
[java]
view plain
copy
print?
/**
* 增加
*/
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)删除命令
上一讲中的方式:
[java]
view plain
copy
print?
/**
* 删除
*
*/
public static void deleteEmployeer(int id){
SqlSession session = null;
try {
session = sqlSessionFactory.openSession();
//返回值是记录条数
int resultCount=session.delete("com.mucfc.model.EmployeerMapper.deleteEmployeer",id);
System.out.println("当前删除数据库中条数: "+resultCount); //获取插入对象的id
session.commit() ;
} finally {
session.close();
}
}
改成以接口编程的方式:
[java]
view plain
copy
print?
/**
* 删除
*
*/
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)查找命令
上一讲中的方式:
[java]
view plain
copy
print?
/**
* 查找
*/
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();
}
}
改成以接口编程的方式:
[java]
view plain
copy
print?
/**
* 查找
*/
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)修改命令
上一讲中的方式:
[java]
view plain
copy
print?
/**
* 更改
*/
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();
}
}
改成以接口编程的方式:
[java]
view plain
copy
print?
/**
* 更改
*/
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();
}
}
这是一个完整的测试:
[java]
view plain
copy
print?
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();
}
}
/**
* 查找
*/
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();
}
}
/**
* 增加
*/
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();
}
}
/**
* 删除
*
*/
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();
}
}
/**
* 更改
*/
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("李四");
employeer1.setEmployeer_age(23);
employeer1.setEmployeer_department("产品一部");
employeer1.setEmployeer_worktype("开发工程师");
Employeer employeer2=new Employeer();
employeer2.setEmployeer_name("张三");
employeer2.setEmployeer_age(30);
employeer2.setEmployeer_department("产品二部");
employeer2.setEmployeer_worktype("测试工程师");
Employeer employeer3=new Employeer();
employeer3.setEmployeer_name("小王");
employeer3.setEmployeer_age(22);
employeer3.setEmployeer_department("产品三部");
employeer3.setEmployeer_worktype("数据分析师");
Employeer employeer4=new Employeer();
employeer4.setEmployeer_name("明明");
employeer4.setEmployeer_age(22);
employeer4.setEmployeer_department("财会部");
employeer4.setEmployeer_worktype("财务人员");
//插入
addEmployeer(employeer1);
addEmployeer(employeer2);
addEmployeer(employeer3);
addEmployeer(employeer4);
findEmployeerById(26);
deleteEmployeer(27);
//更改
employeer2.setEmployeer_id(28);
employeer2.setEmployeer_age(21);
employeer2.setEmployeer_department("产品四部");
updateEmployeer(employeer2);
}
}
测试结果:
插入了4条数据,ID为25~28
然后27号被删除
29号被修改
本文示例工程免费下载
[java]
view plain
copy
print?
session.selectOne("com.mucfc.model.EmployeerMapper.findEmployeerByID", 1);
session.selectOne("com.mucfc.model.EmployeerMapper.findEmployeerByID", 1);
其实还有更简单的方法,而且是更好的方法,使用合理描述参数和SQL语句返回值的接口(比如EmployeerMapper.java),这样现在就可以至此那个更简单,更安全的代码,没有容易发生的字符串文字和转换的错误.下面是详细过程:
本文要改成以接口类来实现增删改查
整个工程目录 :
本文示例工程免费下载
1、首先还是mybatis的配置文件mybatis-config.xml
[html]
view plain
copy
print?
<?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">
<!-- 这是根标签 -->
<configuration>
<!-- 元素允许在主配置文件之外提供一个properties格式对应文件,从而使得主配置文件更加通用。这样对部署非常有用 -->
<properties resource="mysql.properties" />
<!-- 设置别名,一定要放在properties下面 -->
<typeAliases>
<typeAlias alias="Employeer" type="com.mucfc.model.Employeer" />
</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: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="${username}" />
<property name="password" value="${password}" />
</dataSource>
</environment>
</environments>
<!-- 列出映射文件 -->
<mappers>
<mapper resource="com/mucfc/model/Employeer.xml" />
</mappers>
</configuration>
<?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"> <!-- 这是根标签 --> <configuration> <!-- 元素允许在主配置文件之外提供一个properties格式对应文件,从而使得主配置文件更加通用。这样对部署非常有用 --> <properties resource="mysql.properties" /> <!-- 设置别名,一定要放在properties下面 --> <typeAliases> <typeAlias alias="Employeer" type="com.mucfc.model.Employeer" /> </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: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="${username}" /> <property name="password" value="${password}" /> </dataSource> </environment> </environments> <!-- 列出映射文件 --> <mappers> <mapper resource="com/mucfc/model/Employeer.xml" /> </mappers> </configuration>
其中配置文件mysql.properties
[html]
view plain
copy
print?
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/test?charset=utf8
username=root
password=christmas258@
driver=com.mysql.jdbc.Driver url=jdbc:mysql://localhost:3306/test?charset=utf8 username=root password=christmas258@
2、数据表对应的类Employeer.JAVA
[java]
view plain
copy
print?
package com.mucfc.model;
import java.io.Serializable;
/**
* 雇员信息类
*@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="
+ employeer_name + ", employeer_age=" + employeer_age
+ ", employeer_department=" + employeer_department
+ ", employeer_worktype=" + employeer_worktype + "]";
}
}
package com.mucfc.model; import java.io.Serializable; /** * 雇员信息类 *@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=" + employeer_name + ", employeer_age=" + employeer_age + ", employeer_department=" + employeer_department + ", employeer_worktype=" + employeer_worktype + "]"; } }然后是SQL语句的配置Employeer.xml:
[html]
view plain
copy
print?
<?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">
<!-- 查找 -->
<select id="findEmployeerByID" parameterType="int" resultType="Employeer">
select* from `t_employeer` where employeer_id =#{employeer_id}
</select>
<!-- 插入 -->
<!-- useGeneratedKeys设置为"true"表明要MyBatis获取由数据库自动生成的主键;keyProperty="id"指定把获取到的主键值注入到Employeer的id属性 -->
<insert id="addEmployeer" parameterType="Employeer"
useGeneratedKeys="true" keyProperty="employeer_id">
insert into `t_employeer`(employeer_name,employeer_age,employeer_department,employeer_worktype)
values(#{employeer_name},#{employeer_age},#{employeer_department},#{employeer_worktype})
</insert>
<!-- 删除 -->
<delete id="deleteEmployeer" parameterType="int">
delete from `t_employeer` where employeer_id = #{employeer_id}
</delete>
<!-- 修改 -->
<update id="updateEmployeer" parameterType="Employeer">
update t_employeer set employeer_name = #{employeer_name},employeer_age= #{employeer_age},employeer_department = #{employeer_department}
,employeer_worktype=#{employeer_worktype} where employeer_id = #{employeer_id}
</update>
</mapper>
<?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"> <!-- 查找 --> <select id="findEmployeerByID" parameterType="int" resultType="Employeer"> select* from `t_employeer` where employeer_id =#{employeer_id} </select> <!-- 插入 --> <!-- useGeneratedKeys设置为"true"表明要MyBatis获取由数据库自动生成的主键;keyProperty="id"指定把获取到的主键值注入到Employeer的id属性 --> <insert id="addEmployeer" parameterType="Employeer" useGeneratedKeys="true" keyProperty="employeer_id"> insert into `t_employeer`(employeer_name,employeer_age,employeer_department,employeer_worktype) values(#{employeer_name},#{employeer_age},#{employeer_department},#{employeer_worktype}) </insert> <!-- 删除 --> <delete id="deleteEmployeer" parameterType="int"> delete from `t_employeer` where employeer_id = #{employeer_id} </delete> <!-- 修改 --> <update id="updateEmployeer" parameterType="Employeer"> update t_employeer set employeer_name = #{employeer_name},employeer_age= #{employeer_age},employeer_department = #{employeer_department} ,employeer_worktype=#{employeer_worktype} where employeer_id = #{employeer_id} </update> </mapper>
注意com.mucfc.mapper.EmployeerMapper这个类是存在的,它是一个接口类,上一讲我们是使用com.mucfc.model.EmployeerMapper,而上一讲的这个类是不存在的
4、SQL语句映射类EmployeerMapper.java
[java]
view plain
copy
print?
package com.mucfc.mapper;
import com.mucfc.model.Employeer;
/**
* SQL语句映射类
* @author linbingwen
* @time 2015.5.11
*/
public interface EmployeerMapper {
/**
* 注意要和Employeer.xml的方法名对应
*/
public Employeer findEmployeerByID(int id);
/**
* 注意要和Employeer.xml的方法名对应
*/
public void addEmployeer(Employeer employeer);
/**
* 注意要和Employeer.xml的方法名对应
*/
public void deleteEmployeer(int id);
/**
* 注意要和Employeer.xml的方法名对应
*/
public void updateEmployeer(Employeer employeer);
}
package com.mucfc.mapper; import com.mucfc.model.Employeer; /** * SQL语句映射类 * @author linbingwen * @time 2015.5.11 */ public interface EmployeerMapper { /** * 注意要和Employeer.xml的方法名对应 */ public Employeer findEmployeerByID(int id); /** * 注意要和Employeer.xml的方法名对应 */ public void addEmployeer(Employeer employeer); /** * 注意要和Employeer.xml的方法名对应 */ public void deleteEmployeer(int id); /** * 注意要和Employeer.xml的方法名对应 */ public void updateEmployeer(Employeer employeer); }5、测试:
(1)增加命令
上一讲中的方式:
[java]
view plain
copy
print?
/**
* 增加
*/
public static void addEmployeer(Employeer employeer){
SqlSession session = null;
try {
session = sqlSessionFactory.openSession();
//返回值是记录条数
int resultCount = session.insert("com.mucfc.model.EmployeerMapper.addEmployeer", employeer );
System.out.printf("当前插入的employeer_id :%d 当前插入数据库中条数:%d " , employeer.getEmployeer_id() ,resultCount); //获取插入对象的id
System.out.println("");
session.commit() ;
} finally {
session.close();
}
}
/** * 增加 */ public static void addEmployeer(Employeer employeer){ SqlSession session = null; try { session = sqlSessionFactory.openSession(); //返回值是记录条数 int resultCount = session.insert("com.mucfc.model.EmployeerMapper.addEmployeer", employeer ); System.out.printf("当前插入的employeer_id :%d 当前插入数据库中条数:%d " , employeer.getEmployeer_id() ,resultCount); //获取插入对象的id System.out.println(""); session.commit() ; } finally { session.close(); } }
改成以接口编程的方式:
[java]
view plain
copy
print?
/**
* 增加
*/
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();
}
}
/** * 增加 */ 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)删除命令
上一讲中的方式:
[java]
view plain
copy
print?
/**
* 删除
*
*/
public static void deleteEmployeer(int id){
SqlSession session = null;
try {
session = sqlSessionFactory.openSession();
//返回值是记录条数
int resultCount=session.delete("com.mucfc.model.EmployeerMapper.deleteEmployeer",id);
System.out.println("当前删除数据库中条数: "+resultCount); //获取插入对象的id
session.commit() ;
} finally {
session.close();
}
}
/** * 删除 * */ public static void deleteEmployeer(int id){ SqlSession session = null; try { session = sqlSessionFactory.openSession(); //返回值是记录条数 int resultCount=session.delete("com.mucfc.model.EmployeerMapper.deleteEmployeer",id); System.out.println("当前删除数据库中条数: "+resultCount); //获取插入对象的id session.commit() ; } finally { session.close(); } }
改成以接口编程的方式:
[java]
view plain
copy
print?
/**
* 删除
*
*/
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();
}
}
/** * 删除 * */ 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)查找命令
上一讲中的方式:
[java]
view plain
copy
print?
/**
* 查找
*/
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();
}
}
/** * 查找 */ 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(); } }
改成以接口编程的方式:
[java]
view plain
copy
print?
/**
* 查找
*/
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();
}
}
/** * 查找 */ 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)修改命令
上一讲中的方式:
[java]
view plain
copy
print?
/**
* 更改
*/
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();
}
}
/** * 更改 */ 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(); } }
改成以接口编程的方式:
[java]
view plain
copy
print?
/**
* 更改
*/
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 updateEmployeer(Employeer employeer){ SqlSession session = null; try { session = sqlSessionFactory.openSession(); EmployeerMapper employeerMapper=session.getMapper(EmployeerMapper.class); employeerMapper.updateEmployeer(employeer); session.commit() ; } finally { session.close(); } }
这是一个完整的测试:
[java]
view plain
copy
print?
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();
}
}
/**
* 查找
*/
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();
}
}
/**
* 增加
*/
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();
}
}
/**
* 删除
*
*/
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();
}
}
/**
* 更改
*/
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("李四");
employeer1.setEmployeer_age(23);
employeer1.setEmployeer_department("产品一部");
employeer1.setEmployeer_worktype("开发工程师");
Employeer employeer2=new Employeer();
employeer2.setEmployeer_name("张三");
employeer2.setEmployeer_age(30);
employeer2.setEmployeer_department("产品二部");
employeer2.setEmployeer_worktype("测试工程师");
Employeer employeer3=new Employeer();
employeer3.setEmployeer_name("小王");
employeer3.setEmployeer_age(22);
employeer3.setEmployeer_department("产品三部");
employeer3.setEmployeer_worktype("数据分析师");
Employeer employeer4=new Employeer();
employeer4.setEmployeer_name("明明");
employeer4.setEmployeer_age(22);
employeer4.setEmployeer_department("财会部");
employeer4.setEmployeer_worktype("财务人员");
//插入
addEmployeer(employeer1);
addEmployeer(employeer2);
addEmployeer(employeer3);
addEmployeer(employeer4);
findEmployeerById(26);
deleteEmployeer(27);
//更改
employeer2.setEmployeer_id(28);
employeer2.setEmployeer_age(21);
employeer2.setEmployeer_department("产品四部");
updateEmployeer(employeer2);
}
}
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();
}
}
/** * 查找 */ 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(); } }
/**
* 增加
*/
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();
}
}
/**
* 删除
*
*/
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();
}
}
/**
* 更改
*/
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("李四");
employeer1.setEmployeer_age(23);
employeer1.setEmployeer_department("产品一部");
employeer1.setEmployeer_worktype("开发工程师");
Employeer employeer2=new Employeer();
employeer2.setEmployeer_name("张三");
employeer2.setEmployeer_age(30);
employeer2.setEmployeer_department("产品二部");
employeer2.setEmployeer_worktype("测试工程师");
Employeer employeer3=new Employeer();
employeer3.setEmployeer_name("小王");
employeer3.setEmployeer_age(22);
employeer3.setEmployeer_department("产品三部");
employeer3.setEmployeer_worktype("数据分析师");
Employeer employeer4=new Employeer();
employeer4.setEmployeer_name("明明");
employeer4.setEmployeer_age(22);
employeer4.setEmployeer_department("财会部");
employeer4.setEmployeer_worktype("财务人员");
//插入
addEmployeer(employeer1);
addEmployeer(employeer2);
addEmployeer(employeer3);
addEmployeer(employeer4);
findEmployeerById(26);
deleteEmployeer(27);
//更改
employeer2.setEmployeer_id(28);
employeer2.setEmployeer_age(21);
employeer2.setEmployeer_department("产品四部");
updateEmployeer(employeer2);
}
}
测试结果:
插入了4条数据,ID为25~28
然后27号被删除
29号被修改
本文示例工程免费下载
相关文章推荐
- SSM搭建-Mybatis接口编程方式实现增删改查 (17)
- Mybatis接口编程方式实现增删改查
- mybatis实战教程之开发环境搭建、以接口的方式编程、实现数据的增删改查
- SSM框架搭建(Spring+SpringMVC+MyBatis)与easyui集成并实现增删改查实现
- mybatis系列六:使用getMapper方式实现面向接口的编程
- Mybatis接口编程方式实现增删改查
- Mybatis通过接口的方式实现增删改查
- SSM搭建-Mybatis基于注解实现增删查改和多参数列表查询(20)
- 23、SSM框架-Mybatis基于注解实现增删查改和多参数列表查询(5)
- SSM框架搭建(Spring+SpringMVC+MyBatis)与easyui集成并实现增删改查实现
- 搭建ssm框架的详细过程 二 (使用mybatis的接口实现类)
- 整合maven+spring+springmvc+mybatis实现ssm通用增删查改基础开发框架
- SSM框架笔记02:接口方式使用MyBatis
- SSM框架-Mybatis基于注解实现增删查改和多参数列表查询
- SSM框架搭建(Spring+SpringMVC+MyBatis)与easyui集成并实现增删改查实现
- 19、SSM框架-Mybatis入门概述及第一个Mybatis实例实现增删改查(1)
- 整合maven+spring+springmvc+mybatis实现ssm通用增删查改基础开发框架
- 21、SSM框架-Mybatis多参数查询与列表查询不同方式实现(3)
- Mybatis入门(二):以接口的方式编程
- myBatis 实现用户表增删查改操作<方法2 加入接口>(最终版)