(6)MyBatis小总结:一个简单的例子--接口编程改进

日期:2017/12/6

一、回顾 java 的 interface 语法:特殊的抽象类 + 方法必须无实体。(参考   Java(4):基础:面向对象学习的重要点  

二、回顾sql在User.xml的封装(namespace + id):((5)MyBatis小总结:一个简单的例子)


<?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="User">  
    <select id="selectUser" resultType="mybatis.User">  
        select * from employee where id=#{id}  


三、Mybatis的接口编程,恰好是使用 interface_name + method_name 组成唯一的 sql 设定。

3.1 UserImp.java

package mybatis;
//运用OOP编程思想,给xml做过改进 --- 接口编程
public interface UserImp {
	//定义方法,interface 只能定义方法,无法实现方法体。
	public User getUserById(Integer id);
}

3.2 改进后的 User.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="mybatis.UserImp">
    <select id="getUserById" resultType="mybatis.User">
		select * from employee where id=#{id}
    </select>
</mapper>

3.3 configuration.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">
<configuration>
    <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" />
                <property name="username" value="root" />
                <property name="password" value="" />
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <mapper resource="mybatis/User.xml" />
    </mappers>
</configuration>

3.4 testcase2.java


package mybatis;

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;

public class testcase2 {
	public static void main(String [] args) throws IOException{
        String resource = "mybatis/configuration.xml";  
        Reader reader = Resources.getResourceAsReader(resource);  
        SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);  
        SqlSession session = sessionFactory.openSession();  
        try{
        	//获得 接口对象
        	UserImp usermapper = session.getMapper(UserImp.class);
        	User user = usermapper.getUserById(1);
        	System.out.println(user);
        }finally{
        	session.close();
        }
	}
}

测试结果:


log4j:WARN No appenders could be found for logger (org.apache.ibatis.logging.LogFactory).
log4j:WARN Please initialize the log4j system properly.
Employee [id=1, lastName=mmb, email=144@qq.com, gender=0]


效果与此前一样。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

后台技术汇

对你的帮助,是对我的最好鼓励。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值