**IDEA创建Mybatis项目**
首先呢我们需要无限制版本的Idea以及Mysql数据库
打开Idea并选择新建项目,创建一个Maven工程,项目名称自己取
得到的项目结构应该如下图所示
编写pom.xml文件
首先声明打包方式为jar <packaging>jar</packaging>
然后依次导入mybatis mysql log4j junit所依赖的jar包
所导入的版本依自己软件具体版本而定
然后在resources下编写一个log4j.properties文件用于打印日志
(这里直接new 可能找不到properties 没关系直接新建file后缀名为properties)
我的文件内容如下 ,小伙伴们可以根据自己需求改
好啦 到这里我们就已经完成了基本的配置了,现在开始编写与数据库进行连接的配置文件,也是最为重要的一步
在resources目录下新建SqlMapConfig.xml
代码如下,其中所需连接的数据库名称 username password每个人不一样的哦
代码有简单的注释,表明各部分的作用
<?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">
<!--mybatis的主要配置文件-->
<configuration>
<!---配置环境-->
<environments default="mysql">
<!--配置mysql环境-->
<environment id="mysql">
<!--配置事物的类型-->
<transactionManager type="JDBC"></transactionManager>
<!--配置数据源 和连接池-->
<dataSource type="POOLED">
<!--配置数据库的四个基本信息-->
<property name="driver" value="com.mysql.cj.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/yiibaidb ?characterEncoding=utf-8&serverTimezone=GMT%2B8"/>
<property name="username" value="root"/>
<property name="password" value="767799"/>
</dataSource>
</environment>
</environments>
<!--指定映射配置文件的位置 映射配置文件是每个dao独立的配置文件-->
<mappers>
<mapper resource="com/yys/dao/UserDao.xml"/>
</mappers>
</configuration>
到现在我们已经完成了所有的预备条件,可以动手编写简单实际项目了
在src/main包下新建一个两级目录com/yys,在yys下依次新建包dao domain test
其中dao包下保存dao接口 domain保存了实体类
为了让我们不需要创建实际实现dao接口的类,我们在resources目录下新建com/yys/dao并在此目录下新建dao的配置文件xml,这样mybatis就可以帮我们实现dao接口的实现类
创建完毕后项目结构如下图所
其中dao包下的UserDao接口
package com.yys.dao;
import com.yys.domain.User;
import java.util.List;
public interface UserDao {
List<User> findAll();
}
实体类User 这里的实体类依据你所需查询实际数据库中的数据所编写
package com.yys.domain;
import java.io.Serializable;
public class User implements Serializable {
private Integer employeeNumber;
private String firstName;
private String lastName;
private Integer officeCode;
public Integer getEmployeeNumber() {
return employeeNumber;
}
public void setEmployeeNumber(Integer employeeNumber) {
this.employeeNumber = employeeNumber;
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public Integer getOfficeCode() {
return officeCode;
}
public void setOfficeCode(Integer officeCode) {
this.officeCode = officeCode;
}
@Override
public String toString() {
return "User{" +
"employeeNumber=" + employeeNumber +
", firstName='" + firstName + '\'' +
", lastName='" + lastName + '\'' +
", officeCode=" + officeCode +
'}';
}
}
resources/com/yys/dao目录下所对应的dao接口配置文件
<?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.yys.dao.UserDao">
<!--配置查询所有-->
<select id="findAll" resultType="com.yys.domain.User">
select *from employees;
</select>
</mapper>
现在我们已经基本完成了一个mybatis项目,来测试一下结果吧
在src/main/com/yys/test包下新建class MybatisTest
package com.yys.test;
import com.yys.domain.*;
import com.yys.dao.UserDao;
import com.yys.domain.User;
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 java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
/*
入门案例
*/
public class MybatisTest {
public static void main(String[] args) throws Exception {
// 第一步读取配置文件
InputStream in= Resources.getResourceAsStream("SqlMapConfig.xml" );
//第二步创建一个SqlSessionFactory工厂
SqlSessionFactoryBuilder builder= new SqlSessionFactoryBuilder();
SqlSessionFactory factory= builder.build(in);
// 第三步使用工厂生产一个SqlSession对象
SqlSession session= factory.openSession();
//第四步使用SqlSession创建Dao接口的代理对象
UserDao userDao= session.getMapper(UserDao.class);
//第五步使用代理对象执行方法
List<com.yys.domain.User> users= userDao.findAll();
for(User user :users)
{
System.out.println(user);
}
//最后一步释放对象
session.close();
in.close();
}
}
运行结果如下
大功告成233333
当然啦 博主作为一个新手
遇到了很多错误
比如编译提示 不支持的Java发行版本,这里把项目所有jdk换成自己本机运行的即可
还有就是找不到SqlMapConfig.xml文件,这是因为目录结构和文件位置有问题哦
撒花 ~~~~~~~~~~~~~