zoukankan      html  css  js  c++  java
  • Mybatis

    Maven环境下的Mybatis-HelloWorld

    (单独学mybatis参考:http://www.mybatis.org/mybatis-3/zh/index.html ,学spring与mybatis:http://www.mybatis.org/spring/zh/index.html

    1.首先,新建Maven工程,在pom.xml文件中添加依赖(mybatis,mysql,junit...暂时只用这么多)

      

    <project xmlns="http://maven.apache.org/POM/4.0.0"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
        <groupId>mybatis3</groupId>
        <artifactId>com</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <dependencies>
            <!-- mybatis依赖 -->
            <dependency>
                <groupId>org.mybatis</groupId>
                <artifactId>mybatis</artifactId>
                <version>3.5.2</version>
            </dependency>
            <!-- mysql连接依赖 -->
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>5.1.47</version>
            </dependency>
            <!-- junit单元测试 -->
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>4.12</version>
                <scope>test</scope>
            </dependency>
        </dependencies>
    </project>

    2.准备mybatis配置文件,mybatis-config.xml,在mybatis中文网上拷贝

      

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

      

    3.写bean与Mapper

      

    package com.entity;
    
    public class Blog {
    	private Integer id;
    	private String name;
    	public Integer getId() {
    		return id;
    	}
    	public void setId(Integer id) {
    		this.id = id;
    	}
    	public String getName() {
    		return name;
    	}
    	public void setName(String name) {
    		this.name = name;
    	}
    	public Blog() {
    	}
    	public Blog(Integer id, String name) {
    		this.id = id;
    		this.name = name;
    	}
    	@Override
    	public String toString() {
    		return "Blog [id=" + id + ", name=" + name + "]";
    	}
    
    }
    

      

    package com.mapper;
    
    import com.entity.Blog;
    
    public interface BlogMapper {
    	public Blog selectBlog(Integer id);
    }
    
    
    <?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.mapper.BlogMapper">
      <select id="selectBlog" resultType="com.entity.Blog">
        select * from blog where id = #{id}
      </select>
    </mapper>

      

    4.写测试类进行测试

      

    package com.test;
    
    import java.io.IOException;
    import java.io.InputStream;
    
    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 org.junit.Test;
    
    import com.entity.Blog;
    import com.mapper.BlogMapper;
    
    public class BlogTest {
    	private SqlSessionFactory getSqlSessionFactory() throws IOException {
    		InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");
    		SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
    		return sqlSessionFactory;
    	}
    	@Test
    	public void test() throws Exception {
    		SqlSessionFactory sqlSessionFactory = getSqlSessionFactory();
    		SqlSession openSession = sqlSessionFactory.openSession();
    		try {
    			BlogMapper mapper = openSession.getMapper(BlogMapper.class);
    			Blog blog = mapper.selectBlog(1);
    			System.out.println(blog);
    		} finally {
    			openSession.close();
    		}
    	}
    }
    

      需提前准备Mysql数据库,Bolg表(id,name)两个字段

      遇到的问题:

        1.找不到mybatis-config配置文件

           解决办法,将配置文件放在/com/src/main/resources目录下,访问时,直接给名称即可

        2.BlogMapper.xml文件放在com.mapper下得不到加载,找不到mapper.xml文件问题

          解决办法,将配置文件放在/com/src/main/resources目录下,访问时,直接给名称即可

        3.mapper.xml文件的命名空间名称与mapper.java文件包名不匹配(Type interface com.mapper.XMapper is not known to the MapperRegistry)问题

          解决方法,将mapper.xml的namespace属性值写成与之对应的mapper.java文件的所在包名即可

  • 相关阅读:
    Android Studio自动排版的两种方法
    面向对象语言为什么要有访问权限控制
    2017年蓝桥杯省赛A组c++第7题(正则问题)
    2017年蓝桥杯省赛A组c++第1题(走迷宫)
    2017年蓝桥杯省赛A组c++第6题(字符串匹配算法填空)
    2017年蓝桥杯省赛A组c++第5题(递归算法填空)
    2016年蓝桥杯省赛A组c++第9题(逆序串问题)
    2016年蓝桥杯省赛A组c++第7题(图论)
    2016年蓝桥杯省赛A组c++第3题(图论)
    Java的四种内部类(含代码实例)
  • 原文地址:https://www.cnblogs.com/superhonors/p/11291585.html
Copyright © 2011-2022 走看看