MyBatis系列01之快速入门
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MyBatis系列01之快速入门相关的知识,希望对你有一定的参考价值。
1、MyBatis介绍
MyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装。MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。
2、MyBatis快速入门
2.1、添加Jar包
mybatis-3.1.1.jar
mysql-connector-java-5.1.7-bin.jar
2.2、创建数据库和数据表
create database mybatis; use mybatis; CREATE TABLE users(id INT PRIMARY KEY AUTO_INCREMENT, NAME VARCHAR(20), age INT); INSERT INTO users(NAME, age) VALUES(‘Tom‘, 12); INSERT INTO users(NAME, age) VALUES(‘Jack‘, 11);
2.3添加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> <!-- 参数详解 1、environments:环境 environment:环境变量 transactionManager:事物管理器 在MyBatis中有两种事务管理器类型(也就是type=”[JDBC|MANAGED]”): ? JDBC – 这个配置直接简单使用了JDBC的提交和回滚设置。它依赖于从数据源得到的连接来管理事务范围。 ? MANAGED – 这个配置几乎没做什么。它从来不提交或回滚一个连接。而它会让容器来管理事务的整个生命周期 (比如Spring或JEE应用服务器的上下文)。默认情况下它会关闭连接。然而一些容器并不希望这样,因此如果你需要从连接中停止它,将closeConnection属性设置为false 2、dataSource:数据源 3、default 1、developent:开发模式 2、work:工作模式 --> <environments default="development"> <environment id="development"> <!-- id值和default值必须一致,否则会导致项目报错 --> <transactionManager type="JDBC" /> <dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver" /> <property name="url" value="jdbc:mysql://localhost:3306/mybatis" /> <property name="username" value="root" /> <property name="password" value="123456" /> </dataSource> </environment> </environments> <mappers> <mapper resource="cn/davidwong/day01/userMapper.xml" /> </mappers> </configuration>
2.4定义表所对应的实体
package cn.davidwong.day01; /** * Created by ww on 2016/10/19. */ public class User { private int id; private String name; private int age; 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 int getAge() { return age; } public void setAge(int age) { this.age = age; } @Override public String toString() { return "User{" + "id=" + id + ", name=‘" + name + ‘\\‘‘ + ", age=" + age + ‘}‘; } }
2.5、定义操作user表的sql映射文件userMapper.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"> <mapper namespace="cn.davidwong.day01.userMapper"> <select id="getUser" parameterType="int" resultType="cn.davidwong.day01.User"> select * from users where id=#{id} </select> </mapper>
2.6在conf.xml 文件中注册userMapper.xml 文件
<mappers> <mapper resource="cn/davidwong/day01/userMapper.xml" /> </mappers>
2.7编写测试类
测试类有两种方法,第一种好像是官方的,但是我个人比较倾向于第二种
2.7.1标准测试类
public class Test { public static void main(String[] args) throws IOException { String resource = "conf.xml"; //加载mybatis 的配置文件(它也加载关联的映射文件) Reader reader = Resources.getResourceAsReader(resource); //构建sqlSession 的工厂 SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader); //创建能执行映射文件中sql 的sqlSession SqlSession session = sessionFactory.openSession(); //映射sql 的标识字符串 String statement = "com.atguigu.mybatis.bean.userMapper"+".selectUser"; //执行查询返回一个唯一user 对象的sql User user = session.selectOne(statement, 1); System.out.println(user); }
2.7.2自定义测试类
package cn.davidwong.day01; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; import java.io.InputStream; public class Main { public static void main(String[] args) { String respurce="conf.xml"; InputStream in = Main.class.getClassLoader().getResourceAsStream(respurce); SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in); SqlSession session=factory.openSession(); String statement="cn.davidwong.day01.userMapper.getUser"; User user=session.selectOne(statement,2); System.out.println(user); } }
2.8项目结构
以上是关于MyBatis系列01之快速入门的主要内容,如果未能解决你的问题,请参考以下文章