mybatis入门程序

it2022-05-09  24

mybatis 是一个持久层的框架, 是对 JDBC 操作数据库的封装, 使开发者只需要关注业务 本身, 不需要花费精力去处理加载驱动、 创建数据库连接对象、 创建 statement 语句对象、 参数设置、 结果集处理等一系列繁杂的过程代码。

mybatis 通过 xml 或注解进行配置, 将 java 对象与 sql 语句中的参数自动映射生成最终 执行的 sql 语句, 并将 sql 语句执行结果自动映射成 java 对象, 返回给业务层(service) 应用。 入门程序流程分析 1.创建项目,导入相关依赖(mysql驱动,mybatis) 2.编写SqlMapConfig.xml(***) 3.创建User实体 4.编写UserDao接口和UserDao接口映射文件(***) 5.测试

编写SqlMapConfig.xml(放在resource目录下)
<?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> <!-- 1.数据库连接相关信息 --> <!-- environments default: 默认数据库环境 environment: 一个数据库连接就配置一个environment id: 环境的唯一别名 transactionManager: 事务管理器 type: 指定事务管理器类型 jdbc: 使用mybatis自带的事务管理器 dataSource: 数据源(连接池) type:指定连接池类型 pooled: 使用mybatis自带的连接池 --> <environments default="mysql"> <environment id="mysql"> <transactionManager type="jdbc"></transactionManager> <dataSource type="pooled"> <property name="url" value="jdbc:mysql://localhost:3306/spring?characterEncoding=UTF8"/> <property name="driver" value="com.mysql.jdbc.Driver"/> <property name="username" value="root"/> <property name="password" value="root"/> </dataSource> </environment> </environments> <!-- 2.关联Dao接口映射 (文件或类)--> <mappers> <mapper resource ="com.huihui.dao/UserDao.xml"/> </mappers> </configuration>

UserDao映射文件:(作用:定义Dao接口的方法所要执行的SQL语句)

注意点:要和映射的接口名称一致。而且要在相同目录下(看编译后的target目录)

<?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"> <!-- namespace: 名称空间,该映射文件对应的Dao接口的名称,通常Dao接口的全名 --> <mapper namespace="com.huihui.dao.UserDao"> <!-- 在这里面写每个方法对应的sql语句 --> <!-- 映射findAll方法 --> <!-- select: 代表查询操作 id: 映射的方法名称 resultType: 结果的类型(输出参数) 注意:如果结果类型是集合类型,只需要定义集合里面的类型即可 --> <select id="findAll" resultType="com.huihui.pojo.User"> SELECT * FROM USER </select> </mapper>

测试类:

import com.huihui.dao.UserDao; import com.huihui.pojo.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.IOException; import java.io.InputStream; import java.util.List; /** * mybatis程序 */ public class Demo1 { public static void main(String[] args) throws IOException { //加载SqlMapConfig.xml,创建字节流 InputStream in = Resources.getResourceAsStream("SqlMapConfig.xml"); //创建SqlSessionFactoryBuilder SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder(); //创建SqlSessionFactory SqlSessionFactory factory = builder.build(in); //1.创建SqlSession对象,生成Dao接口的代理对象 SqlSession sqlSession = factory.openSession(); //2.生成Dao接口的代理 UserDao userDao = sqlSession.getMapper(UserDao.class); System.out.println("代理对象:"+userDao.getClass()); //3.执行具体业务方法 List<User> list = userDao.findAll(); //4.遍历数据 for(User u:list){ System.out.println(u); } //释放资源 sqlSession.close(); in.close(); } }

最新回复(0)