Java Can';在入门指南中找不到要导入的MyBatis类
我是一名初学者,以前从未使用过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 Can';在入门指南中找不到要导入的MyBatis类,java,mybatis,Java,Mybatis,我是一名初学者,以前从未使用过MyBatis,因此决定先在官方Github网站上阅读MyBatis入门指南: 然而,我在早期遇到了一些麻烦,我希望这是一些简单的事情,有人可以帮助我。具体地说,我一直在尝试在标题“Building SqlSessionFactory without XML”下进行示例。示例如下: 如果您更喜欢直接从Java构建配置,而不是 而不是XML,或者创建自己的配置生成器,MyBatis提供了 提供所有相同功能的完整配置类 将配置选项设置为XML文件 然后,我在JavaDo
抱歉,如果这是一个非常愚蠢的问题/我遗漏了一些明显的东西,我也不是一个有经验的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嗨,你介意转载你的评论作为回答,这样我就可以接受了吗?或者,对于我应该如何结束这个问题,你有其他的建议吗?谢谢