mybatis 初始
接下来带着大家建立一个mybatis的初级项目
首先我们利用idea利用maven建立一个空项目
然后输入名称什么的就会创建一个空的maven项目了
然后我们需要在项目总得pom.xml中进行配置信息
pom.xml
<packaging>jar</packaging> <!--打包方式--> <dependencies> <dependency> <!--mybatis的配置--> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.0</version> </dependency> <dependency> <groupId>mysql</groupId> <!--配置mysql信息--> <artifactId>mysql-connector-java</artifactId> <version>5.1.47</version> </dependency> </dependencies>
然后点击右下角的:import Changes进行导入信息
这个时候项目中就显示了你的导入的包了
然后在src中的main下的java下点击建立javaclass
User:
package com.itheima.domain; import java.io.Serializable; import java.util.Date; public class User implements Serializable { // 然后配置你的数据库表中的字段的信息 private Integer id; private String username; private Date birsthday; private String sex; private String address; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public Date getBirsthday() { return birsthday; } public void setBirsthday(Date birsthday) { this.birsthday = birsthday; } public void setSex(String sex){ this.sex = sex; } public String getSex(){ return sex; } public void setAddress(String address){ this.address = address; } public String getAddress(){ return address; } @Override public String toString() { return "User{" + "id=" + id + ", username='" + username + '\'' + ", birsthday=" + birsthday + ", sex='" + sex + '\'' + ", address='" + address + '\'' + '}'; } }
然后选择:
使用getset来把字段信息的属性全部生成之后再选择toString()来进行信息的生成
然后在itheima下再建立一个dao包 然后在包内建立一个IUserDao.java接口文件
IUserDao.java
package com.itheima.dao; import com.itheima.domain.User; import java.util.List; public interface IUserDao { List<User> findAll(); }
当缺少使用的类和包的时候把箭头指向这个参数后面,然后按alt+enter就可以补全自动导入了
然后在项目下的resources下建立一个主的mybatis的配置文件:SqlMapConfig.xml
首先要先导入mybatis的xml配置
<?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">
SqlMapConfig.xml文件
<?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"> <!-- 配置连接数据库的4个基本信息 --> <property name="driver" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://ip:端口/库名"/> <property name="username" value="root"/> <property name="password" value="123456"/> </dataSource> </environment> </environments> <!-- 指定映射配置文件的位置,映射配置文件指的是每个dao独立的配置文件 --> <mappers> <mapper resource="com/itheima/dao/IUserDao.xml"/> </mappers> </configuration>
数据库ip和名字别配置错了
然后在resource中配置我们的映射的类xml文件
这个映射文件的mybatis的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">
文件内容:
<?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.itheima.dao.IUserDao"> <!--配置查询所有--> <select id="findAll" resultType="com.itheima.domain.User"> select * from user </select> </mapper>
xml的注释只能是<!--->不然就会报错 并且xml上面必须定格不然那就会报错
然后在src下的test/java中建立一个java文件
然后建立mybatis的启动文件
package com.itheima.test; import com.itheima.dao.IUserDao; import com.itheima.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.InputStream; import java.util.List; public class MybatisTest { public static void main(String[] args)throws Exception { //1.读取配置文件 InputStream in = Resources.getResourceAsStream("SqlMapConfig.xml"); //2.创建SqlSessionFactory工厂 SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder(); SqlSessionFactory factory = builder.build(in); //3.使用工厂生产SqlSession对象 SqlSession session = factory.openSession(); //4.使用SqlSession创建Dao接口的代理对象 IUserDao userDao = session.getMapper(IUserDao.class); //5.使用代理对象执行方法 List<User> users = userDao.findAll(); for(User user : users){ System.out.println(user); } //6.释放资源 session.close(); in.close(); } }
。