Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/378.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Can';在入门指南中找不到要导入的MyBatis类_Java_Mybatis - Fatal编程技术网

Java Can';在入门指南中找不到要导入的MyBatis类

Java Can';在入门指南中找不到要导入的MyBatis类,java,mybatis,Java,Mybatis,我是一名初学者,以前从未使用过MyBatis,因此决定先在官方Github网站上阅读MyBatis入门指南: 然而,我在早期遇到了一些麻烦,我希望这是一些简单的事情,有人可以帮助我。具体地说,我一直在尝试在标题“Building SqlSessionFactory without XML”下进行示例。示例如下: 如果您更喜欢直接从Java构建配置,而不是 而不是XML,或者创建自己的配置生成器,MyBatis提供了 提供所有相同功能的完整配置类 将配置选项设置为XML文件 然后,我在JavaDo

我是一名初学者,以前从未使用过MyBatis,因此决定先在官方Github网站上阅读MyBatis入门指南:

然而,我在早期遇到了一些麻烦,我希望这是一些简单的事情,有人可以帮助我。具体地说,我一直在尝试在标题“Building SqlSessionFactory without XML”下进行示例。示例如下:

如果您更喜欢直接从Java构建配置,而不是 而不是XML,或者创建自己的配置生成器,MyBatis提供了 提供所有相同功能的完整配置类 将配置选项设置为XML文件

然后,我在JavaDoc中查找最新的mybatis-3.2.5版本,没有找到我要查找的一些类,比如BlogDataSourceFactory和BlogMapper。此外,所有内容都在org.apache.ibatis下,而我本以为它在org.mybatis下(显然,ibatis是apache维护时的旧项目名称)。我还检查了发布前的mybatis-3.2.6-SNAPSHOT,但它有相同的包结构,我仍然找不到缺少的类


抱歉,如果这是一个非常愚蠢的问题/我遗漏了一些明显的东西,我也不是一个有经验的Java开发人员,我感谢任何帮助

嗯,我不确定我是否应该删除这个问题,但基本上maba在评论中的答案似乎是正确的。我将文档误解为BlogMapper是库中提供的一个实现示例,但事实似乎并非如此,它的实现由读者决定

嗯,我不确定我是否应该删除这个问题,但基本上maba在评论中的答案似乎是正确的。我将文档误解为BlogMapper是库中提供的一个实现示例,但事实似乎并非如此,它的实现由读者决定

我以为我会找到一些关于
BlogDataSourceFactory.getBlogDataSource()
的示例代码,但是没有。但我已经成功创建了自己的实现:

package com.zetcode.jconfig;

import org.apache.ibatis.annotations.Select;

public interface MyMapper {

    @Select("SELECT COUNT(*) FROM MyBooks")
    public int getNumberOfBooks();
}
这是一个具有一条SELECT语句的
MyMapper

package com.zetcode.jconfig;

import java.util.Properties;
import javax.sql.DataSource;
import org.apache.ibatis.datasource.DataSourceFactory;
import org.apache.ibatis.datasource.pooled.PooledDataSource;

public class MyDataSourceFactory implements DataSourceFactory {

    private Properties prop;

    @Override
    public DataSource getDataSource() {

        PooledDataSource ds = new PooledDataSource();

        ds.setDriver(prop.getProperty("driver"));
        ds.setUrl(prop.getProperty("url"));
        ds.setUsername(prop.getProperty("user"));
        ds.setPassword(prop.getProperty("password"));

        return ds;
    }

    @Override
    public void setProperties(Properties prprts) {

        prop = prprts;
    }
}
MyDataSourceFactory
创建一个
PooledDataSource
。它实现了MyBatis的
DataSourceFactory
接口

package com.zetcode.client;

import com.zetcode.jconfig.MyDataSourceFactory;
import com.zetcode.jconfig.MyMapper;
import java.io.IOException;
import java.util.Properties;
import javax.sql.DataSource;
import org.apache.ibatis.mapping.Environment;
import org.apache.ibatis.session.Configuration;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.apache.ibatis.transaction.TransactionFactory;
import org.apache.ibatis.transaction.jdbc.JdbcTransactionFactory;

public class MyBatisJavaConfClient {

    private static SqlSessionFactory sesFact = null;

    public static void main(String[] args) throws IOException {

        Properties prop = new Properties();
        prop.setProperty("driver", "com.mysql.jdbc.Driver");
        prop.setProperty("url", "jdbc:mysql://localhost:3306/testdb");
        prop.setProperty("user", "testuser");
        prop.setProperty("password", "test623");

        MyDataSourceFactory mdsf = new MyDataSourceFactory();
        mdsf.setProperties(prop);
        DataSource ds = mdsf.getDataSource();

        TransactionFactory trFact = new JdbcTransactionFactory();
        Environment environment = new Environment("development", trFact, ds);
        Configuration config = new Configuration(environment);
        config.addMapper(MyMapper.class);

        sesFact = new SqlSessionFactoryBuilder().build(config);

        try (SqlSession session = sesFact.openSession()) {

            int numOfBooks = session.selectOne("getNumberOfBooks");
            System.out.format("There are %d books", numOfBooks);
        }
    }
}
MyBatisJavaConfClient
包含替换XML配置并构建执行SQL代码的会话的代码。
您可以在my中找到有关MyBatis的更多信息。

我以为我会找到一些使用
BlogDataSourceFactory.getBlogDataSource()
的示例代码,但没有。但我已经成功创建了自己的实现:

package com.zetcode.jconfig;

import org.apache.ibatis.annotations.Select;

public interface MyMapper {

    @Select("SELECT COUNT(*) FROM MyBooks")
    public int getNumberOfBooks();
}
这是一个具有一条SELECT语句的
MyMapper

package com.zetcode.jconfig;

import java.util.Properties;
import javax.sql.DataSource;
import org.apache.ibatis.datasource.DataSourceFactory;
import org.apache.ibatis.datasource.pooled.PooledDataSource;

public class MyDataSourceFactory implements DataSourceFactory {

    private Properties prop;

    @Override
    public DataSource getDataSource() {

        PooledDataSource ds = new PooledDataSource();

        ds.setDriver(prop.getProperty("driver"));
        ds.setUrl(prop.getProperty("url"));
        ds.setUsername(prop.getProperty("user"));
        ds.setPassword(prop.getProperty("password"));

        return ds;
    }

    @Override
    public void setProperties(Properties prprts) {

        prop = prprts;
    }
}
MyDataSourceFactory
创建一个
PooledDataSource
。它实现了MyBatis的
DataSourceFactory
接口

package com.zetcode.client;

import com.zetcode.jconfig.MyDataSourceFactory;
import com.zetcode.jconfig.MyMapper;
import java.io.IOException;
import java.util.Properties;
import javax.sql.DataSource;
import org.apache.ibatis.mapping.Environment;
import org.apache.ibatis.session.Configuration;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.apache.ibatis.transaction.TransactionFactory;
import org.apache.ibatis.transaction.jdbc.JdbcTransactionFactory;

public class MyBatisJavaConfClient {

    private static SqlSessionFactory sesFact = null;

    public static void main(String[] args) throws IOException {

        Properties prop = new Properties();
        prop.setProperty("driver", "com.mysql.jdbc.Driver");
        prop.setProperty("url", "jdbc:mysql://localhost:3306/testdb");
        prop.setProperty("user", "testuser");
        prop.setProperty("password", "test623");

        MyDataSourceFactory mdsf = new MyDataSourceFactory();
        mdsf.setProperties(prop);
        DataSource ds = mdsf.getDataSource();

        TransactionFactory trFact = new JdbcTransactionFactory();
        Environment environment = new Environment("development", trFact, ds);
        Configuration config = new Configuration(environment);
        config.addMapper(MyMapper.class);

        sesFact = new SqlSessionFactoryBuilder().build(config);

        try (SqlSession session = sesFact.openSession()) {

            int numOfBooks = session.selectOne("getNumberOfBooks");
            System.out.format("There are %d books", numOfBooks);
        }
    }
}
MyBatisJavaConfClient
包含替换XML配置并构建执行SQL代码的会话的代码。
您可以在my中找到有关MyBatis的更多信息。

博客类就是例子。它们不会存在于任何jar文件中。。那就更有意义了。当我读到它时,我并不清楚,我认为它是一个提供的示例类。我将阅读更多有关文档的内容,以了解如何继续。谢谢大家!@maba嗨,你介意转载你的评论作为回答,这样我就可以接受了吗?或者,对于我应该如何结束这个问题,你有其他的建议吗?谢谢。
博客
课程就是例子。它们不会存在于任何jar文件中。。那就更有意义了。当我读到它时,我并不清楚,我认为它是一个提供的示例类。我将阅读更多有关文档的内容,以了解如何继续。谢谢大家!@maba嗨,你介意转载你的评论作为回答,这样我就可以接受了吗?或者,对于我应该如何结束这个问题,你有其他的建议吗?谢谢