mybatis第一章

    科技2022-08-28  103

    mybatis第一章学习

    mybatis的概念如何使用mybatis

    mybatis的概念

    Mybatis是基于java的持久层框架 持久化:是数据从瞬时状态变为持久状态 持久层:完成持久化工作的代码—dao Mybatis:就是帮助程序员将数据存入数据库中,和从数据库中取数据 传统的jdbc操作:有很多重复代码,通过框架可以减少重复代码,提高开发效率 Mybatis是半自动化的org框架。 Mybatis的作用:MyBatis 是支持普通 SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis 消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis 使用简单的 XML或注解用于配置和原始映射,将接口和 Java 的POJOs(Plain Ordinary Java Objects,普通的 Java对象)映射成数据库中的记录。

    如何使用mybatis

    步骤:1)导入mybatis相关jar包 核心包:mybatis-3.2.7.jar . MyBatis依赖的 jar包: asm-3.3.1.jar 字节码解析包, 被 cglib 依赖 cglib-2.2.2.jar 动态代理的实现 commons-logging-1.1.1.jar 日志包 javassist-3.17.1-GA.jar 字节码解析包 log4j-1.2.17.jar 日志包 log4j-api-2.0-rc1.jar 日志 log4j-core-2.0-rc1.jar 日志 slf4j-api-1.7.5.jar 日志 slf4j-log4j12-1.7.5.jar 日志 驱动 jar:mysql-connector-java-5.1.48.jar (2)编写mybatis的核心配置文件

    <?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> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/lyh"/> <property name="username" value="root"/> <property name="password" value="123"/> </dataSource> </environment> </environments> <!-- <mappers> <mapper resource="org/mybatis/example/BlogMapper.xml"/> </mappers> --> </configuration>

    (3)创建SqlSessionFactory,以及获得SqlSession

    package cn.sxt.util; import java.io.IOException; import java.io.InputStream; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; public class MyBatisUtil { public static SqlSessionFactory getSqlSessionFactory() throws IOException { String resource = "mybatis.cfg.xml"; InputStream inputStream = Resources.getResourceAsStream(resource); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); return sqlSessionFactory; } public static SqlSession getSession() throws IOException { SqlSessionFactory sqlSessionFactory =getSqlSessionFactory(); return sqlSessionFactory.openSession(); } }

    (4)创建实体类

    package cn.sxt.entity; public class User { private int id; private String name; private String pwd; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPwd() { return pwd; } public void setPwd(String pwd) { this.pwd = pwd; } }

    ( 5)编写sql语句的映射文件

    <?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="cn.sxt.entity.UserMapper"> <select id="selectUser" resultType="cn.sxt.entity.User"> select * from user where id = #{id} </select> </mapper>

    (6)测试

    package cn.sxt.test; import java.io.IOException; import org.apache.ibatis.session.SqlSession; import cn.sxt.entity.User; import cn.sxt.util.MyBatisUtil; public class Test { public static void main(String[] args) throws IOException{ SqlSession session =MyBatisUtil.getSession(); User user=session.selectOne("cn.sxt.entity.UserMapper.selectUser", 2); System.out.println("id="+user.getId()+",name"+user.getName()+"pwd="+user.getPwd()); session.close(); } }

    结果· 、

    Processed: 0.010, SQL: 10