mybatis接口方式编程

来源:互联网 发布:c编程思想pdf 编辑:程序博客网 时间:2024/06/05 20:07

上一篇博客是直接对sql语句进行操作,还有一种更简单更安全的方法。

代码:

实体类User.java:

package com.mfc.entity;/* * 实体类 * */public class User {private int id;private String userName;private int userAge;private String userAddress;        //构造方法,set,get方法省略...  }

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="com.mfc.dao.UserDao">    <select id="selectUserByID" parameterType="int" resultType="User">        select * from user where id = #{id}    </select></mapper>

UserDao.java接口:

package com.mfc.dao;import com.mfc.entity.User;public interface UserDao {//这里的selectUserByID名称必须和User.xml里面的id名称一致 public User selectUserByID(int id);}

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><!-- Configuration.xml是 mybatis 用来建立 sessionFactory 用的,里面主要包含了数据库连接相关东西,还有 java 类所对应的别名,比如 <typeAlias alias="User" type="com.yihaomen.mybatis.model.User"/> 这个别名非常重要,你在 具体的类的映射中,比如User.xml 中 resultType 就是对应这里的。要保持一致,当然这里的 resultType 还有另外单独的定义方式-->    <typeAliases>         <typeAlias alias="User" type="com.mfc.entity.User"/>     </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://127.0.0.1:3306/mybatis" />            <property name="username" value="root"/>            <property name="password" value="root"/>            </dataSource>        </environment>    </environments>        <!--要映射的类的xml配置文件-->    <mappers>        <mapper resource="com/mfc/entity/User.xml"/>    </mappers></configuration>

测试类:Test.java:

package com.mfc.test;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.mfc.dao.UserDao;import com.mfc.entity.User;public class Test {private static SqlSessionFactory sqlSessionFactory;    private static Reader reader;     static{        try{            reader = Resources.getResourceAsReader("Configuration.xml");            sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);        }catch(Exception e){            e.printStackTrace();        }    }public static void main(String[] args) {SqlSession session = sqlSessionFactory.openSession();        try {            UserDao userOperation=session.getMapper(UserDao.class);            User user = userOperation.selectUserByID(1);            System.out.println(user.getUserAddress());            System.out.println(user.getUserName());        } finally {            session.close();        }}}

经测试可用!