1.2快速搭建MyBatis 框架
l 导入jar包
l 创建jdbc连接属性文件(jdbc.properties)
l 创建Mybatis 配置文件(MyBatis-config.xml)
l 创建与实体类对应的映射文件(Mapping.xml)
l 创建与数据库表结构对应的JavaBean
1.2.1导入jar包
l Mysql-connection.jar
l Mybatis.jar
1.2.2创建JDBC 连接配置文件(jdbc.properties)
mysql.driver=com.mysql.jdbc.Driver mysql.url=jdbc:mysql://localhost:3306/test mysql.username=root mysql.password=123456 |
1.2.3创建 MyBatis 配置文件(MyBatis-config.xml)
l Properties元素主要是用来定义配置外在化,比如此处的数据库连接属性等。这些属性可外部配置且可动态替换的,既可以在Java属性文件中配置,也可以通过properties元素的子元素来传递。
Ø 通过加载外在化Java配置文件,获取数据库连接信息
<?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> <!-- 加载外在化文件 --> <!--加载jdbc.properties 数据库连接信息配置文件--> <properties resource="jdbc.properties"></properties>
<!-- 配置mybatis的环境模式,添加数据库信息,开启事务 一般development开发模式--> <environments default="development"> <environment id="development"> <!-- 事务管理器 --> <transactionManager type="JDBC"/> <!-- 数据源 --> <dataSource type="POOLED"> <property name="driver" value="${mysql.driver}"/> <property name="url" value="${mysql.url}"/> <property name="username" value="${mysql.username}"/> <property name="password" value="${mysql.password}"/> </dataSource> </environment> </environments>
<!-- 映射器:指定映射文件或者映射类一个映射文件就要多写一个用来加载对应的映射文件--> <mappers> <mapper resource="mapping/UserMapping.xml"/> </mappers> </configuration> |
Ø 通过通过properties元素的子元素来传递。
<properties> <property name="mysql.driver" value="com.mysql.jdbc.Driver"></property> <property name="mysql.url" value="jdbc:mysql://localhost:3306/test"></property> <property name="mysql.username" value="root"></property> <property name="mysql.password" value="123456"></property>
</properties> |
1.2.4创建与实体类对应的映射文件(Mapping.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" > |
<!-- 设置根元素 --> <!-- namespace:提供映射文件的唯一标识,使MyBatis能够找得到这个xml文件 --> <mapper namespace="mapping.UserMappings"> <!-- 写SQL 语句 --> <!-- 查询语句 --> <select id="getAll" resultType="entity.User"> select * from goods </select> <!-- 删除语句 --> <delete id="delAll"></delete> <!-- 插入语句 --> <insert id="insertAll"></insert> <!-- 更新语句 --> <update id="upAll"></update> </mapper> |
l ResultType:
Ø 查询出的数据返回的结果类型
1.2.5创建与数据库表结构对应的JavaBean
l 什么是JavaBean?
Ø JavaBean是一个特殊的Java类,是有默认的构造方法,只有getter,setter 方法的Java类对象
package entity;
publicclass User { privateintid; private String name; privateintprice; publicint getId() { returnid; } publicvoid setId(int id) { this.id = id; } public String getName() { return name; } publicvoid setName(String name) { this.name = name; } publicint getPrice() { returnprice; } publicvoid setPrice(int price) { this.price = price; } |
1.3测试类编写
package test; import java.io.IOException; import java.io.Reader; import java.util.List; 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 org.junit.Test; import entity.User;
publicclass UserTest { privatestatic Reader reader;//定义一个IO流 privatestatic SqlSessionFactory sFactory;//定义一个sql 的会话工厂 static{ try { //读取Mybatis 配置文件 reader = Resources.getResourceAsReader("mybatis-cofig.xml"); //实例化SQL会话工厂SqlSessionFactory sFactory = new SqlSessionFactoryBuilder().build(reader);
} catch (IOException e) { e.printStackTrace(); } } |
@Test publicvoid test01(){ //打开会话 SqlSession session = sFactory.openSession(); //和对象映射文件的命名空间相同,加上要执行的语句的id String sql="UserMappings.getAll"; List<User> list = session.selectList(sql); for(User :list){ System.out.println(user.getName()); } } } |