现在的位置: 首页 > 综合 > 正文

Mybatis使用学习

2018年05月14日 ⁄ 综合 ⁄ 共 4523字 ⁄ 字号 评论关闭

一、使用步骤

     1、(引入框架)下载相应的包并编写配置文件。

      2、(使用框架)

                定义相关的数据库操作接口;

                在XMl文件中进行映射,用来实现对数据库的对应操作;

                调用相关的接口,操作数据库;

二、实例(MyBatis+Mysql数据库)

       1、下载Mybatis包:mybatis-3.3.0-SNAPSHOT.jar

              Mysql数据库驱动包:mysql-connector-java-5.1.32-bin.jar

             log包:log4j-1.2.17.jar

             ------新建Dynamic web project ,新建lib目录添加上面的包,并添加到Build Path下。

       2、在src目录下,新建Xml文件,名字可为mybatis-config.xml:Mybatis 不能新建数据库,和表,所以需要提前简历好数据库和相应的表,这个例子中为Mybatis数据库,user表。

          

<?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"></transactionManager>
         <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=""/>
         </dataSource>
       </environment>    
   </environments>
   <mappers>
         <mapper resource="com/mybatis/config/UserDaoMapper.xml"/>
   </mappers>
</configuration>

              3、定义相关接口:这里为UserDao.java(定义相关的类User.java)

              User.java类:

package com.mybatis.config;

public class User {
    private int userId;
    private String userName;
    private String password;
    private String comment;
    public int getUserId() {
        return userId;
    }
    public void setUserId(int userId) {
        this.userId = userId;
    }
    public String getUserName() {
        return userName;
    }
    public void setUserName(String userName) {
        this.userName = userName;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
    public String getComment() {
        return comment;
    }
    public void setComment(String comment) {
        this.comment = comment;
    }
}

       UserDao.java

package com.mybatis.config;

import java.util.List;

public interface UserDao {
    
    public int insert(User user);
    
    public int update(User user);
    
    public int delete(String userName);
    
    public List<User> selectAll();
    
    public int countAll();
    
    public User findByUserName(String userName);
}

        4.在Xml文件中实现接口功能:UserDaoMapper.xml  并在Mybatis-confi.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.mybatis.config.UserDao">
    <select id="countAll" resultType="int">
        select count(*) c from user;
    </select>
    
    <select id="selectAll" resultType="com.mybatis.config.User">
        select * from user order by userName asc
    </select>
    
    <insert id="insert" parameterType="com.mybatis.config.User">
        insert into user(userName,password,comment) values(#{userName},#{password},#{comment})
    </insert>
    
    <update id="update" parameterType="com.mybatis.config.User">
        update user set userName=#{userName},password=#{password},comment=#{comment} where userName=#{userName}
    </update>
    
    <delete id="delete" parameterType="int">
        delete from user where userName=#{userName}
    </delete>
    
    <select id="findByUserName" parameterType="String" resultType="com.mybatis.config.User">
        select * from user where userName=#{userName}
    </select>
</mapper>

       5、在程序中使用:

                 步骤:获取SqlSessionFactory;

                             获取SqlSession

                             执行Sql语句

                            关闭Session

           Mybatis工具类:MybatisUtil.java

       

package com.mybatis.config;

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.mysql.jdbc.interceptors.SessionAssociationInterceptor;

public class MybatisUtil {

	private static String resource = "mybatis-config.xml";
	private static SqlSessionFactory factory;

	static {
		try {
			Reader reader = Resources.getResourceAsReader(resource);
			SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
			factory = builder.build(reader);
		} catch (IOException e) {
			System.out.println("初始化SqlSessionFactory失败!");
			e.printStackTrace();
		}
	}

	private static SqlSession session;
	/**
	 * 获取SqlSession
	 * @return
	 */
	public static SqlSession getSqlSession() {
		session = factory.openSession();
		return session;
	}

	public static void closeSession(){
		session.close();
	}
}

               测试结果:

package com.mybatis.config;

import java.util.Iterator;
import java.util.List;

public class TestMain {

	public static void main(String[] args) {
		User user=new User();
		user.setUserId(100);
		user.setUserName("wngshipeng");
		user.setPassword("sfasfasf");
		user.setComment("啦啦啦德玛西亚");
		
		UserDao userdao=MybatisUtil.getSqlSession().getMapper(UserDao.class);
		userdao.insert(user);
		List<User> users=userdao.selectAll();
		Iterator<User> iter=users.iterator();
		while(iter.hasNext()){
			User u = iter.next();
			System.out.println(u.getUserName());
		}
		
		MybatisUtil.getSqlSession().commit();
		MybatisUtil.closeSession();
	}
}

网上有很多例子是结合junit使用的,而我没有采用这种方法,如果log4j.jar有警告信息,可上网搜相关的解决方法。

              

抱歉!评论已关闭.